
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: bool operator()(Weak_alias_sorter<64> * this, Sized_symbol<64> * s1,
   Sized_symbol<64> * s2) */

bool __thiscall
gold::Weak_alias_sorter<64>::operator()
          (Weak_alias_sorter<64> *this,Sized_symbol<64> *s1,Sized_symbol<64> *s2)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  char *pcVar7;
  _Alloc_hider _Var8;
  byte bVar9;
  difference_type __d;
  char *pcVar10;
  size_t sVar11;
  size_type __n;
  int iVar12;
  byte bVar13;
  byte bVar14;
  _Alloc_hider _Var15;
  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_4c;
  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_34;
  
  if (((s1->super_Symbol).field_0x2a & 7) == 0) {
    uVar3 = (s1->super_Symbol).u2_.shndx;
    if (((s1->super_Symbol).field_0x2b & 0x20) == 0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/symtab.cc",0x6af,"operator()");
    }
    if (((s2->super_Symbol).field_0x2a & 7) == 0) {
      uVar4 = (s2->super_Symbol).u2_.shndx;
      bVar9 = (byte)(s2->super_Symbol).field_0x2b >> 5;
      if ((bVar9 & 1) == 0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.cc",0x6b1,"operator()");
      }
      if (uVar4 != uVar3) {
        return uVar3 < uVar4;
      }
      uVar3 = (uint)s1->value_;
      uVar4 = *(uint *)((int)&s1->value_ + 4);
      uVar5 = (uint)s2->value_;
      uVar6 = *(uint *)((int)&s2->value_ + 4);
      if (uVar4 != uVar6 || uVar5 != uVar3) {
        return uVar4 < uVar6 || uVar4 - uVar6 < (uint)(uVar3 < uVar5);
      }
      bVar13 = (byte)(s1->super_Symbol).field_0x28 >> 4;
      bVar14 = (byte)(s2->super_Symbol).field_0x28 >> 4;
      if (bVar13 != bVar14) {
        if (bVar13 == 2) {
          return (bool)(bVar9 & 1);
        }
        if (bVar14 == 2) {
          return false;
        }
      }
      pcVar7 = (s2->super_Symbol).name_;
      paVar1 = &local_34.field_2;
      pcVar10 = (char *)0xffffffff;
      local_34._M_dataplus._M_p = (pointer)paVar1;
      if (pcVar7 != (char *)0x0) {
        sVar11 = strlen(pcVar7);
        pcVar10 = pcVar7 + sVar11;
      }
      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
      _M_construct<char_const*>(&local_34,pcVar7,pcVar10,0);
      pcVar7 = (s1->super_Symbol).name_;
      paVar2 = &local_4c.field_2;
      pcVar10 = (char *)0xffffffff;
      local_4c._M_dataplus._M_p = (pointer)paVar2;
      if (pcVar7 != (char *)0x0) {
        sVar11 = strlen(pcVar7);
        pcVar10 = pcVar7 + sVar11;
      }
                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */
      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
      _M_construct<char_const*>(&local_4c,pcVar7,pcVar10,0);
      _Var15._M_p = local_34._M_dataplus._M_p;
      _Var8._M_p = local_4c._M_dataplus._M_p;
      __n = local_34._M_string_length;
      if (local_4c._M_string_length <= local_34._M_string_length) {
        __n = local_4c._M_string_length;
      }
      if ((__n == 0) ||
         (iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0)) {
        iVar12 = local_4c._M_string_length - local_34._M_string_length;
      }
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)_Var8._M_p != paVar2) {
        operator_delete(_Var8._M_p);
        _Var15._M_p = local_34._M_dataplus._M_p;
      }
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)_Var15._M_p != paVar1) {
        operator_delete(_Var15._M_p);
      }
      return SUB41((uint)iVar12 >> 0x1f,0);
    }
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

uint __regparm3
FUN_0018ce10(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,
            undefined4 *param_5,undefined4 *param_6)

{
  uint uVar1;
  uint uVar2;
  char *pcVar3;
  undefined1 *puVar4;
  byte bVar5;
  uint uVar6;
  char *pcVar7;
  size_t sVar8;
  undefined1 *puVar9;
  undefined1 *local_4c;
  uint local_48;
  undefined1 local_44 [16];
  undefined1 *local_34;
  uint local_30;
  undefined1 local_2c [28];
  
  if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {
    param_3 = param_5[3];
    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);
    }
    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {
      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;
      uVar6 = bVar5 & 1;
      if ((bVar5 & 1) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);
      }
      if (param_6[3] != param_3) {
        return (uint)(param_3 < (uint)param_6[3]);
      }
      uVar1 = param_5[0xd];
      uVar2 = param_6[0xd];
      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {
        return (uint)(uVar1 < uVar2 ||
                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));
      }
      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {
        if (*(byte *)(param_5 + 10) >> 4 == 2) {
          return uVar6;
        }
        if (*(byte *)(param_6 + 10) >> 4 == 2) {
          return 0;
        }
      }
      pcVar3 = (char *)*param_6;
      pcVar7 = (char *)0xffffffff;
      local_34 = local_2c;
      if (pcVar3 != (char *)0x0) {
        sVar8 = strlen(pcVar3);
        pcVar7 = pcVar3 + sVar8;
      }
      FUN_00050e40(&local_34,pcVar3,pcVar7,0);
      pcVar3 = (char *)*param_5;
      pcVar7 = (char *)0xffffffff;
      local_4c = local_44;
      if (pcVar3 != (char *)0x0) {
        sVar8 = strlen(pcVar3);
        pcVar7 = pcVar3 + sVar8;
      }
                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */
      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);
      puVar9 = local_34;
      puVar4 = local_4c;
      uVar6 = local_30;
      if (local_48 <= local_30) {
        uVar6 = local_48;
      }
      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {
        uVar6 = local_48 - local_30;
      }
      if (puVar4 != local_44) {
        FUN_001e6db0(puVar4);
        puVar9 = local_34;
      }
      if (puVar9 != local_2c) {
        FUN_001e6db0(puVar9);
      }
      return uVar6 >> 0x1f;
    }
  }
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);
}


CALL 0x000559e6
ADD EAX,0x2021eb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x5c
MOV ESI,dword ptr [EBP + 0xc]
MOV EDX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x4c],EAX
TEST byte ptr [ESI + 0x2a],0x7
JNZ 0x0018cfd7
MOV ECX,dword ptr [ESI + 0xc]
TEST byte ptr [ESI + 0x2b],0x20
JZ 0x0018d00f
TEST byte ptr [EDX + 0x2a],0x7
JNZ 0x0018cfd7
MOVZX EAX,byte ptr [EDX + 0x2b]
MOV EBX,dword ptr [EDX + 0xc]
SHR AL,0x5
AND EAX,0x1
JZ 0x0018cff3
CMP EBX,ECX
JNZ 0x0018cea0
MOV EDI,dword ptr [ESI + 0x30]
MOV EBX,dword ptr [ESI + 0x34]
MOV dword ptr [EBP + -0x50],EDI
MOV EDI,dword ptr [EDX + 0x30]
MOV dword ptr [EBP + -0x54],EBX
MOV ECX,EDI
MOV EDI,dword ptr [EDX + 0x34]
MOV dword ptr [EBP + -0x58],ECX
XOR ECX,dword ptr [EBP + -0x50]
XOR EBX,EDI
OR EBX,ECX
JZ 0x0018ceb0
MOV ECX,dword ptr [EBP + -0x54]
MOV EDX,dword ptr [EBP + -0x58]
CMP dword ptr [EBP + -0x50],EDX
SBB ECX,EDI
SETC AL
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SETA AL
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOVZX ECX,byte ptr [ESI + 0x28]
MOVZX EBX,byte ptr [EDX + 0x28]
SHR CL,0x4
SHR BL,0x4
CMP CL,BL
JZ 0x0018ced0
CMP CL,0x2
JZ 0x0018ce92
CMP BL,0x2
JZ 0x0018cfd0
MOV EDI,dword ptr [EDX]
LEA EAX,[EBP + -0x28]
MOV dword ptr [EBP + -0x50],EAX
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,0xffffffff
TEST EDI,EDI
JZ 0x0018cef5
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x4c]
PUSH EDI
CALL 0x000295f0
ADD ESP,0x10
ADD EAX,EDI
PUSH 0x0
PUSH EAX
LEA EAX,[EBP + -0x30]
PUSH EDI
PUSH EAX
CALL 0x00050e40
MOV ESI,dword ptr [ESI]
LEA EAX,[EBP + -0x40]
ADD ESP,0x10
MOV dword ptr [EBP + -0x54],EAX
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,0xffffffff
TEST ESI,ESI
JZ 0x0018cf2a
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x4c]
PUSH ESI
CALL 0x000295f0
ADD ESP,0x10
ADD EAX,ESI
PUSH 0x0
PUSH EAX
LEA EAX,[EBP + -0x48]
PUSH ESI
PUSH EAX
CALL 0x00050e40
MOV EDX,dword ptr [EBP + -0x44]
MOV EDI,dword ptr [EBP + -0x2c]
ADD ESP,0x10
MOV ESI,dword ptr [EBP + -0x30]
MOV ECX,dword ptr [EBP + -0x48]
CMP EDX,EDI
MOV EAX,EDI
CMOVBE EAX,EDX
TEST EAX,EAX
JZ 0x0018cfc0
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x4c]
MOV dword ptr [EBP + -0x5c],EDX
PUSH EAX
PUSH ESI
PUSH ECX
MOV dword ptr [EBP + -0x58],ECX
CALL 0x00029130
ADD ESP,0x10
MOV ECX,dword ptr [EBP + -0x58]
MOV EDX,dword ptr [EBP + -0x5c]
TEST EAX,EAX
JZ 0x0018cfc0
SHR EAX,0x1f
CMP ECX,dword ptr [EBP + -0x54]
JZ 0x0018cf93
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x4c]
MOV byte ptr [EBP + -0x54],AL
PUSH ECX
CALL 0x001e6db0
MOV ESI,dword ptr [EBP + -0x30]
MOVZX EAX,byte ptr [EBP + -0x54]
ADD ESP,0x10
CMP ESI,dword ptr [EBP + -0x50]
JZ 0x0018ce92
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x4c]
MOV byte ptr [EBP + -0x50],AL
PUSH ESI
CALL 0x001e6db0
ADD ESP,0x10
MOVZX EAX,byte ptr [EBP + -0x50]
JMP 0x0018ce92
MOV EAX,EDX
SUB EAX,EDI
JMP 0x0018cf72
XOR EAX,EAX
JMP 0x0018ce92
MOV EBX,dword ptr [EBP + -0x4c]
PUSH ECX
LEA EAX,[EBX + 0xfff0b468]
PUSH EAX
LEA EAX,[EBX + 0xffef822d]
PUSH 0xaa
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + -0x4c]
PUSH EAX
LEA EAX,[EBX + 0xfff0ae20]
PUSH EAX
LEA EAX,[EBX + 0xfff0a871]
PUSH 0x6b1
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + -0x4c]
PUSH EDX
LEA EAX,[EBX + 0xfff0ae20]
PUSH EAX
LEA EAX,[EBX + 0xfff0a871]
PUSH 0x6af
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nuint __regparm3\nFUN_0018ce10(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 *param_5,undefined4 *param_6)\n\n{\n  uint uVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined1 *puVar4;\n  byte bVar5;\n  uint uVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined1 *puVar9;\n  undefined1 *local_4c;\n  uint local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34;\n  uint local_30;\n  undefined1 local_2c [28];\n  \n  if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);\n}\n\n" comment (function_definition "uint __regparm3\nFUN_0018ce10(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 *param_5,undefined4 *param_6)\n\n{\n  uint uVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined1 *puVar4;\n  byte bVar5;\n  uint uVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined1 *puVar9;\n  undefined1 *local_4c;\n  uint local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34;\n  uint local_30;\n  undefined1 local_2c [28];\n  \n  if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0018ce10(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 *param_5,undefined4 *param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 *param_5,undefined4 *param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined1 *puVar4;\n  byte bVar5;\n  uint uVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined1 *puVar9;\n  undefined1 *local_4c;\n  uint local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34;\n  uint local_30;\n  undefined1 local_2c [28];\n  \n  if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined1 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "undefined1 local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (if_statement "if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }" if (parenthesized_expression "((*(byte *)((int)param_5 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_5 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_5 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_5 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_5 + 0x2a)" * (cast_expression "(byte *)((int)param_5 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_5 + 0x2a)" ( (binary_expression "(int)param_5 + 0x2a" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }" { (expression_statement "param_3 = param_5[3];" (assignment_expression "param_3 = param_5[3]" identifier = (subscript_expression "param_5[3]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }" if (parenthesized_expression "((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)param_5 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)param_5 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)param_5 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)param_5 + 0x2b)" * (cast_expression "(byte *)((int)param_5 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_5 + 0x2b)" ( (binary_expression "(int)param_5 + 0x2b" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }" { comment (expression_statement "FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);" (call_expression "FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6)" identifier (argument_list "("../../gold/symtab.cc",0x6af,"operator()",param_6)" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""operator()"" " string_content ") , identifier ))) ;) })) (if_statement "if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }" if (parenthesized_expression "((*(byte *)((int)param_6 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_6 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_6 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_6 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_6 + 0x2a)" * (cast_expression "(byte *)((int)param_6 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_6 + 0x2a)" ( (binary_expression "(int)param_6 + 0x2a" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }" { (expression_statement "bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;" (assignment_expression "bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5" identifier = (binary_expression "*(byte *)((int)param_6 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_6 + 0x2b)" * (cast_expression "(byte *)((int)param_6 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_6 + 0x2b)" ( (binary_expression "(int)param_6 + 0x2b" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "uVar6 = bVar5 & 1;" (assignment_expression "uVar6 = bVar5 & 1" identifier = (binary_expression "bVar5 & 1" identifier & number_literal)) ;) (if_statement "if ((bVar5 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }" if (parenthesized_expression "((bVar5 & 1) == 0)" ( (binary_expression "(bVar5 & 1) == 0" (parenthesized_expression "(bVar5 & 1)" ( (binary_expression "bVar5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }" { comment (expression_statement "FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);" (call_expression "FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6)" identifier (argument_list "("../../gold/symtab.cc",0x6b1,"operator()",uVar6)" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""operator()"" " string_content ") , identifier ))) ;) })) (if_statement "if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }" if (parenthesized_expression "(param_6[3] != param_3)" ( (binary_expression "param_6[3] != param_3" (subscript_expression "param_6[3]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        return (uint)(param_3 < (uint)param_6[3]);\n      }" { (return_statement "return (uint)(param_3 < (uint)param_6[3]);" return (call_expression "(uint)(param_3 < (uint)param_6[3])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_3 < (uint)param_6[3])" ( (binary_expression "param_3 < (uint)param_6[3]" identifier < (cast_expression "(uint)param_6[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_6[3]" identifier [ number_literal ]))) ))) ;) })) (expression_statement "uVar1 = param_5[0xd];" (assignment_expression "uVar1 = param_5[0xd]" identifier = (subscript_expression "param_5[0xd]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = param_6[0xd];" (assignment_expression "uVar2 = param_6[0xd]" identifier = (subscript_expression "param_6[0xd]" identifier [ number_literal ])) ;) (if_statement "if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }" if (parenthesized_expression "(uVar1 != uVar2 || param_6[0xc] != param_5[0xc])" ( (binary_expression "uVar1 != uVar2 || param_6[0xc] != param_5[0xc]" (binary_expression "uVar1 != uVar2" identifier != identifier) || (binary_expression "param_6[0xc] != param_5[0xc]" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) != (subscript_expression "param_5[0xc]" identifier [ number_literal ]))) )) (compound_statement "{\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }" { (return_statement "return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));" return (call_expression "(uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]))" ( (binary_expression "uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc])" (binary_expression "uVar1 < uVar2" identifier < identifier) || (binary_expression "uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc])" (binary_expression "uVar1 - uVar2" identifier - identifier) < (call_expression "(uint)((uint)param_5[0xc] < (uint)param_6[0xc])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)param_5[0xc] < (uint)param_6[0xc])" ( (binary_expression "(uint)param_5[0xc] < (uint)param_6[0xc]" (cast_expression "(uint)param_5[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[0xc]" identifier [ number_literal ])) < (cast_expression "(uint)param_6[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_6[0xc]" identifier [ number_literal ]))) ))))) ))) ;) })) (if_statement "if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }" if (parenthesized_expression "(*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4)" ( (binary_expression "*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4" (binary_expression "*(byte *)(param_5 + 10) >> 4" (pointer_expression "*(byte *)(param_5 + 10)" * (cast_expression "(byte *)(param_5 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 10)" ( (binary_expression "param_5 + 10" identifier + number_literal) )))) >> number_literal) != (binary_expression "*(byte *)(param_6 + 10) >> 4" (pointer_expression "*(byte *)(param_6 + 10)" * (cast_expression "(byte *)(param_6 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 10)" ( (binary_expression "param_6 + 10" identifier + number_literal) )))) >> number_literal)) )) (compound_statement "{\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }" { (if_statement "if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }" if (parenthesized_expression "(*(byte *)(param_5 + 10) >> 4 == 2)" ( (binary_expression "*(byte *)(param_5 + 10) >> 4 == 2" (binary_expression "*(byte *)(param_5 + 10) >> 4" (pointer_expression "*(byte *)(param_5 + 10)" * (cast_expression "(byte *)(param_5 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 10)" ( (binary_expression "param_5 + 10" identifier + number_literal) )))) >> number_literal) == number_literal) )) (compound_statement "{\n          return uVar6;\n        }" { (return_statement "return uVar6;" return identifier ;) })) (if_statement "if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }" if (parenthesized_expression "(*(byte *)(param_6 + 10) >> 4 == 2)" ( (binary_expression "*(byte *)(param_6 + 10) >> 4 == 2" (binary_expression "*(byte *)(param_6 + 10) >> 4" (pointer_expression "*(byte *)(param_6 + 10)" * (cast_expression "(byte *)(param_6 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 10)" ( (binary_expression "param_6 + 10" identifier + number_literal) )))) >> number_literal) == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "pcVar3 = (char *)*param_6;" (assignment_expression "pcVar3 = (char *)*param_6" identifier = (cast_expression "(char *)*param_6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" identifier = identifier) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }" { (expression_statement "sVar8 = strlen(pcVar3);" (assignment_expression "sVar8 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "pcVar7 = pcVar3 + sVar8;" (assignment_expression "pcVar7 = pcVar3 + sVar8" identifier = (binary_expression "pcVar3 + sVar8" identifier + identifier)) ;) })) (expression_statement "FUN_00050e40(&local_34,pcVar3,pcVar7,0);" (call_expression "FUN_00050e40(&local_34,pcVar3,pcVar7,0)" identifier (argument_list "(&local_34,pcVar3,pcVar7,0)" ( (pointer_expression "&local_34" & identifier) , identifier , identifier , number_literal ))) ;) (expression_statement "pcVar3 = (char *)*param_5;" (assignment_expression "pcVar3 = (char *)*param_5" identifier = (cast_expression "(char *)*param_5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = local_44;" (assignment_expression "local_4c = local_44" identifier = identifier) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }" { (expression_statement "sVar8 = strlen(pcVar3);" (assignment_expression "sVar8 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "pcVar7 = pcVar3 + sVar8;" (assignment_expression "pcVar7 = pcVar3 + sVar8" identifier = (binary_expression "pcVar3 + sVar8" identifier + identifier)) ;) })) comment (expression_statement "FUN_00050e40(&local_4c,pcVar3,pcVar7,0);" (call_expression "FUN_00050e40(&local_4c,pcVar3,pcVar7,0)" identifier (argument_list "(&local_4c,pcVar3,pcVar7,0)" ( (pointer_expression "&local_4c" & identifier) , identifier , identifier , number_literal ))) ;) (expression_statement "puVar9 = local_34;" (assignment_expression "puVar9 = local_34" identifier = identifier) ;) (expression_statement "puVar4 = local_4c;" (assignment_expression "puVar4 = local_4c" identifier = identifier) ;) (expression_statement "uVar6 = local_30;" (assignment_expression "uVar6 = local_30" identifier = identifier) ;) (if_statement "if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }" if (parenthesized_expression "(local_48 <= local_30)" ( (binary_expression "local_48 <= local_30" identifier <= identifier) )) (compound_statement "{\n        uVar6 = local_48;\n      }" { (expression_statement "uVar6 = local_48;" (assignment_expression "uVar6 = local_48" identifier = identifier) ;) })) (if_statement "if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }" if (parenthesized_expression "((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0))" ( (binary_expression "(uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)" ( (comma_expression "uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0" (assignment_expression "uVar6 = memcmp(local_4c,local_34,uVar6)" identifier = (call_expression "memcmp(local_4c,local_34,uVar6)" identifier (argument_list "(local_4c,local_34,uVar6)" ( identifier , identifier , identifier )))) , (binary_expression "uVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        uVar6 = local_48 - local_30;\n      }" { (expression_statement "uVar6 = local_48 - local_30;" (assignment_expression "uVar6 = local_48 - local_30" identifier = (binary_expression "local_48 - local_30" identifier - identifier)) ;) })) (if_statement "if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }" if (parenthesized_expression "(puVar4 != local_44)" ( (binary_expression "puVar4 != local_44" identifier != identifier) )) (compound_statement "{\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }" { (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "puVar9 = local_34;" (assignment_expression "puVar9 = local_34" identifier = identifier) ;) })) (if_statement "if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }" if (parenthesized_expression "(puVar9 != local_2c)" ( (binary_expression "puVar9 != local_2c" identifier != identifier) )) (compound_statement "{\n        FUN_001e6db0(puVar9);\n      }" { (expression_statement "FUN_001e6db0(puVar9);" (call_expression "FUN_001e6db0(puVar9)" identifier (argument_list "(puVar9)" ( identifier ))) ;) })) (return_statement "return uVar6 >> 0x1f;" return (binary_expression "uVar6 >> 0x1f" identifier >> number_literal) ;) })) })) comment (expression_statement "FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);" (call_expression "FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3)" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx",param_3)" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") , identifier ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* DWARF original prototype: bool operator()(Weak_alias_sorter<64> * this, Sized_symbol<64> * s1,\n   Sized_symbol<64> * s2) */\n\nbool __thiscall\ngold::Weak_alias_sorter<64>::operator()\n          (Weak_alias_sorter<64> *this,Sized_symbol<64> *s1,Sized_symbol<64> *s2)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  char *pcVar7;\n  _Alloc_hider _Var8;\n  byte bVar9;\n  difference_type __d;\n  char *pcVar10;\n  size_t sVar11;\n  size_type __n;\n  int iVar12;\n  byte bVar13;\n  byte bVar14;\n  _Alloc_hider _Var15;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_4c;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_34;\n  \n  if (((s1->super_Symbol).field_0x2a & 7) == 0) {\n    uVar3 = (s1->super_Symbol).u2_.shndx;\n    if (((s1->super_Symbol).field_0x2b & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0x6af,"operator()");\n    }\n    if (((s2->super_Symbol).field_0x2a & 7) == 0) {\n      uVar4 = (s2->super_Symbol).u2_.shndx;\n      bVar9 = (byte)(s2->super_Symbol).field_0x2b >> 5;\n      if ((bVar9 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x6b1,"operator()");\n      }\n      if (uVar4 != uVar3) {\n        return uVar3 < uVar4;\n      }\n      uVar3 = (uint)s1->value_;\n      uVar4 = *(uint *)((int)&s1->value_ + 4);\n      uVar5 = (uint)s2->value_;\n      uVar6 = *(uint *)((int)&s2->value_ + 4);\n      if (uVar4 != uVar6 || uVar5 != uVar3) {\n        return uVar4 < uVar6 || uVar4 - uVar6 < (uint)(uVar3 < uVar5);\n      }\n      bVar13 = (byte)(s1->super_Symbol).field_0x28 >> 4;\n      bVar14 = (byte)(s2->super_Symbol).field_0x28 >> 4;\n      if (bVar13 != bVar14) {\n        if (bVar13 == 2) {\n          return (bool)(bVar9 & 1);\n        }\n        if (bVar14 == 2) {\n          return false;\n        }\n      }\n      pcVar7 = (s2->super_Symbol).name_;\n      paVar1 = &local_34.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_34._M_dataplus._M_p = (pointer)paVar1;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_34,pcVar7,pcVar10,0);\n      pcVar7 = (s1->super_Symbol).name_;\n      paVar2 = &local_4c.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_4c._M_dataplus._M_p = (pointer)paVar2;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_4c,pcVar7,pcVar10,0);\n      _Var15._M_p = local_34._M_dataplus._M_p;\n      _Var8._M_p = local_4c._M_dataplus._M_p;\n      __n = local_34._M_string_length;\n      if (local_4c._M_string_length <= local_34._M_string_length) {\n        __n = local_4c._M_string_length;\n      }\n      if ((__n == 0) ||\n         (iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0)) {\n        iVar12 = local_4c._M_string_length - local_34._M_string_length;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var8._M_p != paVar2) {\n        operator_delete(_Var8._M_p);\n        _Var15._M_p = local_34._M_dataplus._M_p;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var15._M_p != paVar1) {\n        operator_delete(_Var15._M_p);\n      }\n      return SUB41((uint)iVar12 >> 0x1f,0);\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n}\n\n" comment comment (function_definition "bool __thiscall\ngold::Weak_alias_sorter<64>::operator()\n          (Weak_alias_sorter<64> *this,Sized_symbol<64> *s1,Sized_symbol<64> *s2)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  char *pcVar7;\n  _Alloc_hider _Var8;\n  byte bVar9;\n  difference_type __d;\n  char *pcVar10;\n  size_t sVar11;\n  size_type __n;\n  int iVar12;\n  byte bVar13;\n  byte bVar14;\n  _Alloc_hider _Var15;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_4c;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_34;\n  \n  if (((s1->super_Symbol).field_0x2a & 7) == 0) {\n    uVar3 = (s1->super_Symbol).u2_.shndx;\n    if (((s1->super_Symbol).field_0x2b & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0x6af,"operator()");\n    }\n    if (((s2->super_Symbol).field_0x2a & 7) == 0) {\n      uVar4 = (s2->super_Symbol).u2_.shndx;\n      bVar9 = (byte)(s2->super_Symbol).field_0x2b >> 5;\n      if ((bVar9 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x6b1,"operator()");\n      }\n      if (uVar4 != uVar3) {\n        return uVar3 < uVar4;\n      }\n      uVar3 = (uint)s1->value_;\n      uVar4 = *(uint *)((int)&s1->value_ + 4);\n      uVar5 = (uint)s2->value_;\n      uVar6 = *(uint *)((int)&s2->value_ + 4);\n      if (uVar4 != uVar6 || uVar5 != uVar3) {\n        return uVar4 < uVar6 || uVar4 - uVar6 < (uint)(uVar3 < uVar5);\n      }\n      bVar13 = (byte)(s1->super_Symbol).field_0x28 >> 4;\n      bVar14 = (byte)(s2->super_Symbol).field_0x28 >> 4;\n      if (bVar13 != bVar14) {\n        if (bVar13 == 2) {\n          return (bool)(bVar9 & 1);\n        }\n        if (bVar14 == 2) {\n          return false;\n        }\n      }\n      pcVar7 = (s2->super_Symbol).name_;\n      paVar1 = &local_34.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_34._M_dataplus._M_p = (pointer)paVar1;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_34,pcVar7,pcVar10,0);\n      pcVar7 = (s1->super_Symbol).name_;\n      paVar2 = &local_4c.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_4c._M_dataplus._M_p = (pointer)paVar2;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_4c,pcVar7,pcVar10,0);\n      _Var15._M_p = local_34._M_dataplus._M_p;\n      _Var8._M_p = local_4c._M_dataplus._M_p;\n      __n = local_34._M_string_length;\n      if (local_4c._M_string_length <= local_34._M_string_length) {\n        __n = local_4c._M_string_length;\n      }\n      if ((__n == 0) ||\n         (iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0)) {\n        iVar12 = local_4c._M_string_length - local_34._M_string_length;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var8._M_p != paVar2) {\n        operator_delete(_Var8._M_p);\n        _Var15._M_p = local_34._M_dataplus._M_p;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var15._M_p != paVar1) {\n        operator_delete(_Var15._M_p);\n      }\n      return SUB41((uint)iVar12 >> 0x1f,0);\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Weak_alias_sorter<64>::" identifier : : identifier < number_literal > : :) (function_declarator "operator()\n          (Weak_alias_sorter<64> *this,Sized_symbol<64> *s1,Sized_symbol<64> *s2)" (function_declarator "operator()" identifier (parameter_list "()" ( ))) (parameter_list "(Weak_alias_sorter<64> *this,Sized_symbol<64> *s1,Sized_symbol<64> *s2)" ( (parameter_declaration "Weak_alias_sorter<64> *this" type_identifier (ERROR "<64>" < number_literal >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol<64> *s1" type_identifier (ERROR "<64>" < number_literal >) (pointer_declarator "*s1" * identifier)) , (parameter_declaration "Sized_symbol<64> *s2" type_identifier (ERROR "<64>" < number_literal >) (pointer_declarator "*s2" * identifier)) ))) (compound_statement "{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  char *pcVar7;\n  _Alloc_hider _Var8;\n  byte bVar9;\n  difference_type __d;\n  char *pcVar10;\n  size_t sVar11;\n  size_type __n;\n  int iVar12;\n  byte bVar13;\n  byte bVar14;\n  _Alloc_hider _Var15;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_4c;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_34;\n  \n  if (((s1->super_Symbol).field_0x2a & 7) == 0) {\n    uVar3 = (s1->super_Symbol).u2_.shndx;\n    if (((s1->super_Symbol).field_0x2b & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0x6af,"operator()");\n    }\n    if (((s2->super_Symbol).field_0x2a & 7) == 0) {\n      uVar4 = (s2->super_Symbol).u2_.shndx;\n      bVar9 = (byte)(s2->super_Symbol).field_0x2b >> 5;\n      if ((bVar9 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x6b1,"operator()");\n      }\n      if (uVar4 != uVar3) {\n        return uVar3 < uVar4;\n      }\n      uVar3 = (uint)s1->value_;\n      uVar4 = *(uint *)((int)&s1->value_ + 4);\n      uVar5 = (uint)s2->value_;\n      uVar6 = *(uint *)((int)&s2->value_ + 4);\n      if (uVar4 != uVar6 || uVar5 != uVar3) {\n        return uVar4 < uVar6 || uVar4 - uVar6 < (uint)(uVar3 < uVar5);\n      }\n      bVar13 = (byte)(s1->super_Symbol).field_0x28 >> 4;\n      bVar14 = (byte)(s2->super_Symbol).field_0x28 >> 4;\n      if (bVar13 != bVar14) {\n        if (bVar13 == 2) {\n          return (bool)(bVar9 & 1);\n        }\n        if (bVar14 == 2) {\n          return false;\n        }\n      }\n      pcVar7 = (s2->super_Symbol).name_;\n      paVar1 = &local_34.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_34._M_dataplus._M_p = (pointer)paVar1;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_34,pcVar7,pcVar10,0);\n      pcVar7 = (s1->super_Symbol).name_;\n      paVar2 = &local_4c.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_4c._M_dataplus._M_p = (pointer)paVar2;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_4c,pcVar7,pcVar10,0);\n      _Var15._M_p = local_34._M_dataplus._M_p;\n      _Var8._M_p = local_4c._M_dataplus._M_p;\n      __n = local_34._M_string_length;\n      if (local_4c._M_string_length <= local_34._M_string_length) {\n        __n = local_4c._M_string_length;\n      }\n      if ((__n == 0) ||\n         (iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0)) {\n        iVar12 = local_4c._M_string_length - local_34._M_string_length;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var8._M_p != paVar2) {\n        operator_delete(_Var8._M_p);\n        _Var15._M_p = local_34._M_dataplus._M_p;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var15._M_p != paVar1) {\n        operator_delete(_Var15._M_p);\n      }\n      return SUB41((uint)iVar12 >> 0x1f,0);\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n}" { (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar1;" (binary_expression "allocator<char>_>_9\n  *paVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar1" identifier * identifier)) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar2;" (binary_expression "allocator<char>_>_9\n  *paVar2" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar2" identifier * identifier)) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "_Alloc_hider _Var8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "difference_type __d;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "size_type __n;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "_Alloc_hider _Var15;" type_identifier identifier ;) (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_> local_4c;" (binary_expression "allocator<char>_> local_4c" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) ;) (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_> local_34;" (binary_expression "allocator<char>_> local_34" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) ;) (if_statement "if (((s1->super_Symbol).field_0x2a & 7) == 0) {\n    uVar3 = (s1->super_Symbol).u2_.shndx;\n    if (((s1->super_Symbol).field_0x2b & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0x6af,"operator()");\n    }\n    if (((s2->super_Symbol).field_0x2a & 7) == 0) {\n      uVar4 = (s2->super_Symbol).u2_.shndx;\n      bVar9 = (byte)(s2->super_Symbol).field_0x2b >> 5;\n      if ((bVar9 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x6b1,"operator()");\n      }\n      if (uVar4 != uVar3) {\n        return uVar3 < uVar4;\n      }\n      uVar3 = (uint)s1->value_;\n      uVar4 = *(uint *)((int)&s1->value_ + 4);\n      uVar5 = (uint)s2->value_;\n      uVar6 = *(uint *)((int)&s2->value_ + 4);\n      if (uVar4 != uVar6 || uVar5 != uVar3) {\n        return uVar4 < uVar6 || uVar4 - uVar6 < (uint)(uVar3 < uVar5);\n      }\n      bVar13 = (byte)(s1->super_Symbol).field_0x28 >> 4;\n      bVar14 = (byte)(s2->super_Symbol).field_0x28 >> 4;\n      if (bVar13 != bVar14) {\n        if (bVar13 == 2) {\n          return (bool)(bVar9 & 1);\n        }\n        if (bVar14 == 2) {\n          return false;\n        }\n      }\n      pcVar7 = (s2->super_Symbol).name_;\n      paVar1 = &local_34.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_34._M_dataplus._M_p = (pointer)paVar1;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_34,pcVar7,pcVar10,0);\n      pcVar7 = (s1->super_Symbol).name_;\n      paVar2 = &local_4c.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_4c._M_dataplus._M_p = (pointer)paVar2;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_4c,pcVar7,pcVar10,0);\n      _Var15._M_p = local_34._M_dataplus._M_p;\n      _Var8._M_p = local_4c._M_dataplus._M_p;\n      __n = local_34._M_string_length;\n      if (local_4c._M_string_length <= local_34._M_string_length) {\n        __n = local_4c._M_string_length;\n      }\n      if ((__n == 0) ||\n         (iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0)) {\n        iVar12 = local_4c._M_string_length - local_34._M_string_length;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var8._M_p != paVar2) {\n        operator_delete(_Var8._M_p);\n        _Var15._M_p = local_34._M_dataplus._M_p;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var15._M_p != paVar1) {\n        operator_delete(_Var15._M_p);\n      }\n      return SUB41((uint)iVar12 >> 0x1f,0);\n    }\n  }" if (parenthesized_expression "(((s1->super_Symbol).field_0x2a & 7) == 0)" ( (binary_expression "((s1->super_Symbol).field_0x2a & 7) == 0" (parenthesized_expression "((s1->super_Symbol).field_0x2a & 7)" ( (binary_expression "(s1->super_Symbol).field_0x2a & 7" (field_expression "(s1->super_Symbol).field_0x2a" (parenthesized_expression "(s1->super_Symbol)" ( (field_expression "s1->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar3 = (s1->super_Symbol).u2_.shndx;\n    if (((s1->super_Symbol).field_0x2b & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0x6af,"operator()");\n    }\n    if (((s2->super_Symbol).field_0x2a & 7) == 0) {\n      uVar4 = (s2->super_Symbol).u2_.shndx;\n      bVar9 = (byte)(s2->super_Symbol).field_0x2b >> 5;\n      if ((bVar9 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x6b1,"operator()");\n      }\n      if (uVar4 != uVar3) {\n        return uVar3 < uVar4;\n      }\n      uVar3 = (uint)s1->value_;\n      uVar4 = *(uint *)((int)&s1->value_ + 4);\n      uVar5 = (uint)s2->value_;\n      uVar6 = *(uint *)((int)&s2->value_ + 4);\n      if (uVar4 != uVar6 || uVar5 != uVar3) {\n        return uVar4 < uVar6 || uVar4 - uVar6 < (uint)(uVar3 < uVar5);\n      }\n      bVar13 = (byte)(s1->super_Symbol).field_0x28 >> 4;\n      bVar14 = (byte)(s2->super_Symbol).field_0x28 >> 4;\n      if (bVar13 != bVar14) {\n        if (bVar13 == 2) {\n          return (bool)(bVar9 & 1);\n        }\n        if (bVar14 == 2) {\n          return false;\n        }\n      }\n      pcVar7 = (s2->super_Symbol).name_;\n      paVar1 = &local_34.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_34._M_dataplus._M_p = (pointer)paVar1;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_34,pcVar7,pcVar10,0);\n      pcVar7 = (s1->super_Symbol).name_;\n      paVar2 = &local_4c.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_4c._M_dataplus._M_p = (pointer)paVar2;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_4c,pcVar7,pcVar10,0);\n      _Var15._M_p = local_34._M_dataplus._M_p;\n      _Var8._M_p = local_4c._M_dataplus._M_p;\n      __n = local_34._M_string_length;\n      if (local_4c._M_string_length <= local_34._M_string_length) {\n        __n = local_4c._M_string_length;\n      }\n      if ((__n == 0) ||\n         (iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0)) {\n        iVar12 = local_4c._M_string_length - local_34._M_string_length;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var8._M_p != paVar2) {\n        operator_delete(_Var8._M_p);\n        _Var15._M_p = local_34._M_dataplus._M_p;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var15._M_p != paVar1) {\n        operator_delete(_Var15._M_p);\n      }\n      return SUB41((uint)iVar12 >> 0x1f,0);\n    }\n  }" { (expression_statement "uVar3 = (s1->super_Symbol).u2_.shndx;" (assignment_expression "uVar3 = (s1->super_Symbol).u2_.shndx" identifier = (field_expression "(s1->super_Symbol).u2_.shndx" (field_expression "(s1->super_Symbol).u2_" (parenthesized_expression "(s1->super_Symbol)" ( (field_expression "s1->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (((s1->super_Symbol).field_0x2b & 0x20) == 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0x6af,"operator()");\n    }" if (parenthesized_expression "(((s1->super_Symbol).field_0x2b & 0x20) == 0)" ( (binary_expression "((s1->super_Symbol).field_0x2b & 0x20) == 0" (parenthesized_expression "((s1->super_Symbol).field_0x2b & 0x20)" ( (binary_expression "(s1->super_Symbol).field_0x2b & 0x20" (field_expression "(s1->super_Symbol).field_0x2b" (parenthesized_expression "(s1->super_Symbol)" ( (field_expression "s1->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.cc",0x6af,"operator()");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x6af,"operator()");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x6af,"operator()")" identifier (argument_list "("../../gold/symtab.cc",0x6af,"operator()")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""operator()"" " string_content ") ))) ;) })) (if_statement "if (((s2->super_Symbol).field_0x2a & 7) == 0) {\n      uVar4 = (s2->super_Symbol).u2_.shndx;\n      bVar9 = (byte)(s2->super_Symbol).field_0x2b >> 5;\n      if ((bVar9 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x6b1,"operator()");\n      }\n      if (uVar4 != uVar3) {\n        return uVar3 < uVar4;\n      }\n      uVar3 = (uint)s1->value_;\n      uVar4 = *(uint *)((int)&s1->value_ + 4);\n      uVar5 = (uint)s2->value_;\n      uVar6 = *(uint *)((int)&s2->value_ + 4);\n      if (uVar4 != uVar6 || uVar5 != uVar3) {\n        return uVar4 < uVar6 || uVar4 - uVar6 < (uint)(uVar3 < uVar5);\n      }\n      bVar13 = (byte)(s1->super_Symbol).field_0x28 >> 4;\n      bVar14 = (byte)(s2->super_Symbol).field_0x28 >> 4;\n      if (bVar13 != bVar14) {\n        if (bVar13 == 2) {\n          return (bool)(bVar9 & 1);\n        }\n        if (bVar14 == 2) {\n          return false;\n        }\n      }\n      pcVar7 = (s2->super_Symbol).name_;\n      paVar1 = &local_34.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_34._M_dataplus._M_p = (pointer)paVar1;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_34,pcVar7,pcVar10,0);\n      pcVar7 = (s1->super_Symbol).name_;\n      paVar2 = &local_4c.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_4c._M_dataplus._M_p = (pointer)paVar2;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_4c,pcVar7,pcVar10,0);\n      _Var15._M_p = local_34._M_dataplus._M_p;\n      _Var8._M_p = local_4c._M_dataplus._M_p;\n      __n = local_34._M_string_length;\n      if (local_4c._M_string_length <= local_34._M_string_length) {\n        __n = local_4c._M_string_length;\n      }\n      if ((__n == 0) ||\n         (iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0)) {\n        iVar12 = local_4c._M_string_length - local_34._M_string_length;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var8._M_p != paVar2) {\n        operator_delete(_Var8._M_p);\n        _Var15._M_p = local_34._M_dataplus._M_p;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var15._M_p != paVar1) {\n        operator_delete(_Var15._M_p);\n      }\n      return SUB41((uint)iVar12 >> 0x1f,0);\n    }" if (parenthesized_expression "(((s2->super_Symbol).field_0x2a & 7) == 0)" ( (binary_expression "((s2->super_Symbol).field_0x2a & 7) == 0" (parenthesized_expression "((s2->super_Symbol).field_0x2a & 7)" ( (binary_expression "(s2->super_Symbol).field_0x2a & 7" (field_expression "(s2->super_Symbol).field_0x2a" (parenthesized_expression "(s2->super_Symbol)" ( (field_expression "s2->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar4 = (s2->super_Symbol).u2_.shndx;\n      bVar9 = (byte)(s2->super_Symbol).field_0x2b >> 5;\n      if ((bVar9 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x6b1,"operator()");\n      }\n      if (uVar4 != uVar3) {\n        return uVar3 < uVar4;\n      }\n      uVar3 = (uint)s1->value_;\n      uVar4 = *(uint *)((int)&s1->value_ + 4);\n      uVar5 = (uint)s2->value_;\n      uVar6 = *(uint *)((int)&s2->value_ + 4);\n      if (uVar4 != uVar6 || uVar5 != uVar3) {\n        return uVar4 < uVar6 || uVar4 - uVar6 < (uint)(uVar3 < uVar5);\n      }\n      bVar13 = (byte)(s1->super_Symbol).field_0x28 >> 4;\n      bVar14 = (byte)(s2->super_Symbol).field_0x28 >> 4;\n      if (bVar13 != bVar14) {\n        if (bVar13 == 2) {\n          return (bool)(bVar9 & 1);\n        }\n        if (bVar14 == 2) {\n          return false;\n        }\n      }\n      pcVar7 = (s2->super_Symbol).name_;\n      paVar1 = &local_34.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_34._M_dataplus._M_p = (pointer)paVar1;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_34,pcVar7,pcVar10,0);\n      pcVar7 = (s1->super_Symbol).name_;\n      paVar2 = &local_4c.field_2;\n      pcVar10 = (char *)0xffffffff;\n      local_4c._M_dataplus._M_p = (pointer)paVar2;\n      if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }\n                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_4c,pcVar7,pcVar10,0);\n      _Var15._M_p = local_34._M_dataplus._M_p;\n      _Var8._M_p = local_4c._M_dataplus._M_p;\n      __n = local_34._M_string_length;\n      if (local_4c._M_string_length <= local_34._M_string_length) {\n        __n = local_4c._M_string_length;\n      }\n      if ((__n == 0) ||\n         (iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0)) {\n        iVar12 = local_4c._M_string_length - local_34._M_string_length;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var8._M_p != paVar2) {\n        operator_delete(_Var8._M_p);\n        _Var15._M_p = local_34._M_dataplus._M_p;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var15._M_p != paVar1) {\n        operator_delete(_Var15._M_p);\n      }\n      return SUB41((uint)iVar12 >> 0x1f,0);\n    }" { (expression_statement "uVar4 = (s2->super_Symbol).u2_.shndx;" (assignment_expression "uVar4 = (s2->super_Symbol).u2_.shndx" identifier = (field_expression "(s2->super_Symbol).u2_.shndx" (field_expression "(s2->super_Symbol).u2_" (parenthesized_expression "(s2->super_Symbol)" ( (field_expression "s2->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "bVar9 = (byte)(s2->super_Symbol).field_0x2b >> 5;" (assignment_expression "bVar9 = (byte)(s2->super_Symbol).field_0x2b >> 5" identifier = (binary_expression "(byte)(s2->super_Symbol).field_0x2b >> 5" (field_expression "(byte)(s2->super_Symbol).field_0x2b" (call_expression "(byte)(s2->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(s2->super_Symbol)" ( (field_expression "s2->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal)) ;) (if_statement "if ((bVar9 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x6b1,"operator()");\n      }" if (parenthesized_expression "((bVar9 & 1) == 0)" ( (binary_expression "(bVar9 & 1) == 0" (parenthesized_expression "(bVar9 & 1)" ( (binary_expression "bVar9 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0x6b1,"operator()");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0x6b1,"operator()");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0x6b1,"operator()")" identifier (argument_list "("../../gold/symtab.cc",0x6b1,"operator()")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""operator()"" " string_content ") ))) ;) })) (if_statement "if (uVar4 != uVar3) {\n        return uVar3 < uVar4;\n      }" if (parenthesized_expression "(uVar4 != uVar3)" ( (binary_expression "uVar4 != uVar3" identifier != identifier) )) (compound_statement "{\n        return uVar3 < uVar4;\n      }" { (return_statement "return uVar3 < uVar4;" return (binary_expression "uVar3 < uVar4" identifier < identifier) ;) })) (expression_statement "uVar3 = (uint)s1->value_;" (assignment_expression "uVar3 = (uint)s1->value_" identifier = (cast_expression "(uint)s1->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "s1->value_" identifier -> field_identifier))) ;) (expression_statement "uVar4 = *(uint *)((int)&s1->value_ + 4);" (assignment_expression "uVar4 = *(uint *)((int)&s1->value_ + 4)" identifier = (pointer_expression "*(uint *)((int)&s1->value_ + 4)" * (cast_expression "(uint *)((int)&s1->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&s1->value_ + 4)" ( (binary_expression "(int)&s1->value_ + 4" (cast_expression "(int)&s1->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&s1->value_" & (field_expression "s1->value_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar5 = (uint)s2->value_;" (assignment_expression "uVar5 = (uint)s2->value_" identifier = (cast_expression "(uint)s2->value_" ( (type_descriptor "uint" type_identifier) ) (field_expression "s2->value_" identifier -> field_identifier))) ;) (expression_statement "uVar6 = *(uint *)((int)&s2->value_ + 4);" (assignment_expression "uVar6 = *(uint *)((int)&s2->value_ + 4)" identifier = (pointer_expression "*(uint *)((int)&s2->value_ + 4)" * (cast_expression "(uint *)((int)&s2->value_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&s2->value_ + 4)" ( (binary_expression "(int)&s2->value_ + 4" (cast_expression "(int)&s2->value_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&s2->value_" & (field_expression "s2->value_" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (uVar4 != uVar6 || uVar5 != uVar3) {\n        return uVar4 < uVar6 || uVar4 - uVar6 < (uint)(uVar3 < uVar5);\n      }" if (parenthesized_expression "(uVar4 != uVar6 || uVar5 != uVar3)" ( (binary_expression "uVar4 != uVar6 || uVar5 != uVar3" (binary_expression "uVar4 != uVar6" identifier != identifier) || (binary_expression "uVar5 != uVar3" identifier != identifier)) )) (compound_statement "{\n        return uVar4 < uVar6 || uVar4 - uVar6 < (uint)(uVar3 < uVar5);\n      }" { (return_statement "return uVar4 < uVar6 || uVar4 - uVar6 < (uint)(uVar3 < uVar5);" return (binary_expression "uVar4 < uVar6 || uVar4 - uVar6 < (uint)(uVar3 < uVar5)" (binary_expression "uVar4 < uVar6" identifier < identifier) || (binary_expression "uVar4 - uVar6 < (uint)(uVar3 < uVar5)" (binary_expression "uVar4 - uVar6" identifier - identifier) < (call_expression "(uint)(uVar3 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < uVar5)" ( (binary_expression "uVar3 < uVar5" identifier < identifier) ))))) ;) })) (expression_statement "bVar13 = (byte)(s1->super_Symbol).field_0x28 >> 4;" (assignment_expression "bVar13 = (byte)(s1->super_Symbol).field_0x28 >> 4" identifier = (binary_expression "(byte)(s1->super_Symbol).field_0x28 >> 4" (field_expression "(byte)(s1->super_Symbol).field_0x28" (call_expression "(byte)(s1->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(s1->super_Symbol)" ( (field_expression "s1->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal)) ;) (expression_statement "bVar14 = (byte)(s2->super_Symbol).field_0x28 >> 4;" (assignment_expression "bVar14 = (byte)(s2->super_Symbol).field_0x28 >> 4" identifier = (binary_expression "(byte)(s2->super_Symbol).field_0x28 >> 4" (field_expression "(byte)(s2->super_Symbol).field_0x28" (call_expression "(byte)(s2->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(s2->super_Symbol)" ( (field_expression "s2->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal)) ;) (if_statement "if (bVar13 != bVar14) {\n        if (bVar13 == 2) {\n          return (bool)(bVar9 & 1);\n        }\n        if (bVar14 == 2) {\n          return false;\n        }\n      }" if (parenthesized_expression "(bVar13 != bVar14)" ( (binary_expression "bVar13 != bVar14" identifier != identifier) )) (compound_statement "{\n        if (bVar13 == 2) {\n          return (bool)(bVar9 & 1);\n        }\n        if (bVar14 == 2) {\n          return false;\n        }\n      }" { (if_statement "if (bVar13 == 2) {\n          return (bool)(bVar9 & 1);\n        }" if (parenthesized_expression "(bVar13 == 2)" ( (binary_expression "bVar13 == 2" identifier == number_literal) )) (compound_statement "{\n          return (bool)(bVar9 & 1);\n        }" { (return_statement "return (bool)(bVar9 & 1);" return (cast_expression "(bool)(bVar9 & 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar9 & 1)" ( (binary_expression "bVar9 & 1" identifier & number_literal) ))) ;) })) (if_statement "if (bVar14 == 2) {\n          return false;\n        }" if (parenthesized_expression "(bVar14 == 2)" ( (binary_expression "bVar14 == 2" identifier == number_literal) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) })) (expression_statement "pcVar7 = (s2->super_Symbol).name_;" (assignment_expression "pcVar7 = (s2->super_Symbol).name_" identifier = (field_expression "(s2->super_Symbol).name_" (parenthesized_expression "(s2->super_Symbol)" ( (field_expression "s2->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "paVar1 = &local_34.field_2;" (assignment_expression "paVar1 = &local_34.field_2" identifier = (pointer_expression "&local_34.field_2" & (field_expression "local_34.field_2" identifier . field_identifier))) ;) (expression_statement "pcVar10 = (char *)0xffffffff;" (assignment_expression "pcVar10 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34._M_dataplus._M_p = (pointer)paVar1;" (assignment_expression "local_34._M_dataplus._M_p = (pointer)paVar1" (field_expression "local_34._M_dataplus._M_p" (field_expression "local_34._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar1" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }" { (expression_statement "sVar11 = strlen(pcVar7);" (assignment_expression "sVar11 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (expression_statement "pcVar10 = pcVar7 + sVar11;" (assignment_expression "pcVar10 = pcVar7 + sVar11" identifier = (binary_expression "pcVar7 + sVar11" identifier + identifier)) ;) })) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_34,pcVar7,pcVar10,0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&local_34,pcVar7,pcVar10,0);" (binary_expression "_M_construct<char_const*>(&local_34,pcVar7,pcVar10,0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&local_34,pcVar7,pcVar10,0)" ( (comma_expression "&local_34,pcVar7,pcVar10,0" (pointer_expression "&local_34" & identifier) , (comma_expression "pcVar7,pcVar10,0" identifier , (comma_expression "pcVar10,0" identifier , number_literal))) ))) ;)) (expression_statement "pcVar7 = (s1->super_Symbol).name_;" (assignment_expression "pcVar7 = (s1->super_Symbol).name_" identifier = (field_expression "(s1->super_Symbol).name_" (parenthesized_expression "(s1->super_Symbol)" ( (field_expression "s1->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "paVar2 = &local_4c.field_2;" (assignment_expression "paVar2 = &local_4c.field_2" identifier = (pointer_expression "&local_4c.field_2" & (field_expression "local_4c.field_2" identifier . field_identifier))) ;) (expression_statement "pcVar10 = (char *)0xffffffff;" (assignment_expression "pcVar10 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c._M_dataplus._M_p = (pointer)paVar2;" (assignment_expression "local_4c._M_dataplus._M_p = (pointer)paVar2" (field_expression "local_4c._M_dataplus._M_p" (field_expression "local_4c._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar2" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sVar11 = strlen(pcVar7);\n        pcVar10 = pcVar7 + sVar11;\n      }" { (expression_statement "sVar11 = strlen(pcVar7);" (assignment_expression "sVar11 = strlen(pcVar7)" identifier = (call_expression "strlen(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (expression_statement "pcVar10 = pcVar7 + sVar11;" (assignment_expression "pcVar10 = pcVar7 + sVar11" identifier = (binary_expression "pcVar7 + sVar11" identifier + identifier)) ;) })) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char_const*>(&local_4c,pcVar7,pcVar10,0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&local_4c,pcVar7,pcVar10,0);" (binary_expression "_M_construct<char_const*>(&local_4c,pcVar7,pcVar10,0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&local_4c,pcVar7,pcVar10,0)" ( (comma_expression "&local_4c,pcVar7,pcVar10,0" (pointer_expression "&local_4c" & identifier) , (comma_expression "pcVar7,pcVar10,0" identifier , (comma_expression "pcVar10,0" identifier , number_literal))) ))) ;)) (expression_statement "_Var15._M_p = local_34._M_dataplus._M_p;" (assignment_expression "_Var15._M_p = local_34._M_dataplus._M_p" (field_expression "_Var15._M_p" identifier . field_identifier) = (field_expression "local_34._M_dataplus._M_p" (field_expression "local_34._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "_Var8._M_p = local_4c._M_dataplus._M_p;" (assignment_expression "_Var8._M_p = local_4c._M_dataplus._M_p" (field_expression "_Var8._M_p" identifier . field_identifier) = (field_expression "local_4c._M_dataplus._M_p" (field_expression "local_4c._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__n = local_34._M_string_length;" (assignment_expression "__n = local_34._M_string_length" identifier = (field_expression "local_34._M_string_length" identifier . field_identifier)) ;) (if_statement "if (local_4c._M_string_length <= local_34._M_string_length) {\n        __n = local_4c._M_string_length;\n      }" if (parenthesized_expression "(local_4c._M_string_length <= local_34._M_string_length)" ( (binary_expression "local_4c._M_string_length <= local_34._M_string_length" (field_expression "local_4c._M_string_length" identifier . field_identifier) <= (field_expression "local_34._M_string_length" identifier . field_identifier)) )) (compound_statement "{\n        __n = local_4c._M_string_length;\n      }" { (expression_statement "__n = local_4c._M_string_length;" (assignment_expression "__n = local_4c._M_string_length" identifier = (field_expression "local_4c._M_string_length" identifier . field_identifier)) ;) })) (if_statement "if ((__n == 0) ||\n         (iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0)) {\n        iVar12 = local_4c._M_string_length - local_34._M_string_length;\n      }" if (parenthesized_expression "((__n == 0) ||\n         (iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0))" ( (binary_expression "(__n == 0) ||\n         (iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0)" (parenthesized_expression "(__n == 0)" ( (binary_expression "__n == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0)" ( (comma_expression "iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n), iVar12 == 0" (assignment_expression "iVar12 = memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n)" identifier = (call_expression "memcmp(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n)" identifier (argument_list "(local_4c._M_dataplus._M_p,local_34._M_dataplus._M_p,__n)" ( (field_expression "local_4c._M_dataplus._M_p" (field_expression "local_4c._M_dataplus" identifier . field_identifier) . field_identifier) , (field_expression "local_34._M_dataplus._M_p" (field_expression "local_34._M_dataplus" identifier . field_identifier) . field_identifier) , identifier )))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        iVar12 = local_4c._M_string_length - local_34._M_string_length;\n      }" { (expression_statement "iVar12 = local_4c._M_string_length - local_34._M_string_length;" (assignment_expression "iVar12 = local_4c._M_string_length - local_34._M_string_length" identifier = (binary_expression "local_4c._M_string_length - local_34._M_string_length" (field_expression "local_4c._M_string_length" identifier . field_identifier) - (field_expression "local_34._M_string_length" identifier . field_identifier))) ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var8._M_p != paVar2) {\n        operator_delete(_Var8._M_p);\n        _Var15._M_p = local_34._M_dataplus._M_p;\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var8._M_p != paVar2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var8._M_p != paVar2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)_Var8._M_p != paVar2" (binary_expression "allocator<char>_>_9\n           *)_Var8._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)_Var8._M_p" identifier * (ERROR ")" )) (field_expression "_Var8._M_p" identifier . field_identifier))) != identifier) )) )) (compound_statement "{\n        operator_delete(_Var8._M_p);\n        _Var15._M_p = local_34._M_dataplus._M_p;\n      }" { (expression_statement "operator_delete(_Var8._M_p);" (call_expression "operator_delete(_Var8._M_p)" identifier (argument_list "(_Var8._M_p)" ( (field_expression "_Var8._M_p" identifier . field_identifier) ))) ;) (expression_statement "_Var15._M_p = local_34._M_dataplus._M_p;" (assignment_expression "_Var15._M_p = local_34._M_dataplus._M_p" (field_expression "_Var15._M_p" identifier . field_identifier) = (field_expression "local_34._M_dataplus._M_p" (field_expression "local_34._M_dataplus" identifier . field_identifier) . field_identifier)) ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var15._M_p != paVar1) {\n        operator_delete(_Var15._M_p);\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var15._M_p != paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)_Var15._M_p != paVar1)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)_Var15._M_p != paVar1" (binary_expression "allocator<char>_>_9\n           *)_Var15._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)_Var15._M_p" identifier * (ERROR ")" )) (field_expression "_Var15._M_p" identifier . field_identifier))) != identifier) )) )) (compound_statement "{\n        operator_delete(_Var15._M_p);\n      }" { (expression_statement "operator_delete(_Var15._M_p);" (call_expression "operator_delete(_Var15._M_p)" identifier (argument_list "(_Var15._M_p)" ( (field_expression "_Var15._M_p" identifier . field_identifier) ))) ;) })) (return_statement "return SUB41((uint)iVar12 >> 0x1f,0);" return (call_expression "SUB41((uint)iVar12 >> 0x1f,0)" identifier (argument_list "((uint)iVar12 >> 0x1f,0)" ( (binary_expression "(uint)iVar12 >> 0x1f" (cast_expression "(uint)iVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) , number_literal ))) ;) })) })) comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })))
(translation_unit "uint __regparm3\nFUN_0018ce10(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 *param_5,undefined4 *param_6)\n\n{\n  uint uVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined1 *puVar4;\n  byte bVar5;\n  uint uVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined1 *puVar9;\n  undefined1 *local_4c;\n  uint local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34;\n  uint local_30;\n  undefined1 local_2c [28];\n  \n  if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }\n                    \n  FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);\n}\n\n" (function_definition "uint __regparm3\nFUN_0018ce10(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 *param_5,undefined4 *param_6)\n\n{\n  uint uVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined1 *puVar4;\n  byte bVar5;\n  uint uVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined1 *puVar9;\n  undefined1 *local_4c;\n  uint local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34;\n  uint local_30;\n  undefined1 local_2c [28];\n  \n  if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }\n                    \n  FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0018ce10(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 *param_5,undefined4 *param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 *param_5,undefined4 *param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined1 *puVar4;\n  byte bVar5;\n  uint uVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined1 *puVar9;\n  undefined1 *local_4c;\n  uint local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34;\n  uint local_30;\n  undefined1 local_2c [28];\n  \n  if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }\n                    \n  FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined1 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "undefined1 local_44 [16];" type_identifier (array_declarator "local_44 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "undefined1 local_2c [28];" type_identifier (array_declarator "local_2c [28]" identifier [ number_literal ]) ;) (if_statement "if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }" if (parenthesized_expression "((*(byte *)((int)param_5 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_5 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_5 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_5 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_5 + 0x2a)" * (cast_expression "(byte *)((int)param_5 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_5 + 0x2a)" ( (binary_expression "(int)param_5 + 0x2a" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }" { (expression_statement "param_3 = param_5[3];" (assignment_expression "param_3 = param_5[3]" identifier = (subscript_expression "param_5[3]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }" if (parenthesized_expression "((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)param_5 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)param_5 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)((int)param_5 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)param_5 + 0x2b)" * (cast_expression "(byte *)((int)param_5 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_5 + 0x2b)" ( (binary_expression "(int)param_5 + 0x2b" (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }" { (expression_statement "FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);" (call_expression "FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6)" identifier (argument_list "("../../gold/symtab.cc",0x6af,"operator()",param_6)" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""operator()"" " string_content ") , identifier ))) ;) })) (if_statement "if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }" if (parenthesized_expression "((*(byte *)((int)param_6 + 0x2a) & 7) == 0)" ( (binary_expression "(*(byte *)((int)param_6 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_6 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_6 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_6 + 0x2a)" * (cast_expression "(byte *)((int)param_6 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_6 + 0x2a)" ( (binary_expression "(int)param_6 + 0x2a" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }" { (expression_statement "bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;" (assignment_expression "bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5" identifier = (binary_expression "*(byte *)((int)param_6 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_6 + 0x2b)" * (cast_expression "(byte *)((int)param_6 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_6 + 0x2b)" ( (binary_expression "(int)param_6 + 0x2b" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "uVar6 = bVar5 & 1;" (assignment_expression "uVar6 = bVar5 & 1" identifier = (binary_expression "bVar5 & 1" identifier & number_literal)) ;) (if_statement "if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }" if (parenthesized_expression "((bVar5 & 1) == 0)" ( (binary_expression "(bVar5 & 1) == 0" (parenthesized_expression "(bVar5 & 1)" ( (binary_expression "bVar5 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }" { (expression_statement "FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);" (call_expression "FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6)" identifier (argument_list "("../../gold/symtab.cc",0x6b1,"operator()",uVar6)" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""operator()"" " string_content ") , identifier ))) ;) })) (if_statement "if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }" if (parenthesized_expression "(param_6[3] != param_3)" ( (binary_expression "param_6[3] != param_3" (subscript_expression "param_6[3]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        return (uint)(param_3 < (uint)param_6[3]);\n      }" { (return_statement "return (uint)(param_3 < (uint)param_6[3]);" return (call_expression "(uint)(param_3 < (uint)param_6[3])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_3 < (uint)param_6[3])" ( (binary_expression "param_3 < (uint)param_6[3]" identifier < (cast_expression "(uint)param_6[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_6[3]" identifier [ number_literal ]))) ))) ;) })) (expression_statement "uVar1 = param_5[0xd];" (assignment_expression "uVar1 = param_5[0xd]" identifier = (subscript_expression "param_5[0xd]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = param_6[0xd];" (assignment_expression "uVar2 = param_6[0xd]" identifier = (subscript_expression "param_6[0xd]" identifier [ number_literal ])) ;) (if_statement "if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }" if (parenthesized_expression "(uVar1 != uVar2 || param_6[0xc] != param_5[0xc])" ( (binary_expression "uVar1 != uVar2 || param_6[0xc] != param_5[0xc]" (binary_expression "uVar1 != uVar2" identifier != identifier) || (binary_expression "param_6[0xc] != param_5[0xc]" (subscript_expression "param_6[0xc]" identifier [ number_literal ]) != (subscript_expression "param_5[0xc]" identifier [ number_literal ]))) )) (compound_statement "{\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }" { (return_statement "return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));" return (call_expression "(uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]))" ( (binary_expression "uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc])" (binary_expression "uVar1 < uVar2" identifier < identifier) || (binary_expression "uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc])" (binary_expression "uVar1 - uVar2" identifier - identifier) < (call_expression "(uint)((uint)param_5[0xc] < (uint)param_6[0xc])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)param_5[0xc] < (uint)param_6[0xc])" ( (binary_expression "(uint)param_5[0xc] < (uint)param_6[0xc]" (cast_expression "(uint)param_5[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[0xc]" identifier [ number_literal ])) < (cast_expression "(uint)param_6[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_6[0xc]" identifier [ number_literal ]))) ))))) ))) ;) })) (if_statement "if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }" if (parenthesized_expression "(*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4)" ( (binary_expression "*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4" (binary_expression "*(byte *)(param_5 + 10) >> 4" (pointer_expression "*(byte *)(param_5 + 10)" * (cast_expression "(byte *)(param_5 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 10)" ( (binary_expression "param_5 + 10" identifier + number_literal) )))) >> number_literal) != (binary_expression "*(byte *)(param_6 + 10) >> 4" (pointer_expression "*(byte *)(param_6 + 10)" * (cast_expression "(byte *)(param_6 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 10)" ( (binary_expression "param_6 + 10" identifier + number_literal) )))) >> number_literal)) )) (compound_statement "{\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }" { (if_statement "if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }" if (parenthesized_expression "(*(byte *)(param_5 + 10) >> 4 == 2)" ( (binary_expression "*(byte *)(param_5 + 10) >> 4 == 2" (binary_expression "*(byte *)(param_5 + 10) >> 4" (pointer_expression "*(byte *)(param_5 + 10)" * (cast_expression "(byte *)(param_5 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 10)" ( (binary_expression "param_5 + 10" identifier + number_literal) )))) >> number_literal) == number_literal) )) (compound_statement "{\n          return uVar6;\n        }" { (return_statement "return uVar6;" return identifier ;) })) (if_statement "if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }" if (parenthesized_expression "(*(byte *)(param_6 + 10) >> 4 == 2)" ( (binary_expression "*(byte *)(param_6 + 10) >> 4 == 2" (binary_expression "*(byte *)(param_6 + 10) >> 4" (pointer_expression "*(byte *)(param_6 + 10)" * (cast_expression "(byte *)(param_6 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 10)" ( (binary_expression "param_6 + 10" identifier + number_literal) )))) >> number_literal) == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "pcVar3 = (char *)*param_6;" (assignment_expression "pcVar3 = (char *)*param_6" identifier = (cast_expression "(char *)*param_6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_6" * identifier))) ;) (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" identifier = identifier) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }" { (expression_statement "sVar8 = strlen(pcVar3);" (assignment_expression "sVar8 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "pcVar7 = pcVar3 + sVar8;" (assignment_expression "pcVar7 = pcVar3 + sVar8" identifier = (binary_expression "pcVar3 + sVar8" identifier + identifier)) ;) })) (expression_statement "FUN_00050e40(&local_34,pcVar3,pcVar7,0);" (call_expression "FUN_00050e40(&local_34,pcVar3,pcVar7,0)" identifier (argument_list "(&local_34,pcVar3,pcVar7,0)" ( (pointer_expression "&local_34" & identifier) , identifier , identifier , number_literal ))) ;) (expression_statement "pcVar3 = (char *)*param_5;" (assignment_expression "pcVar3 = (char *)*param_5" identifier = (cast_expression "(char *)*param_5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_5" * identifier))) ;) (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = local_44;" (assignment_expression "local_4c = local_44" identifier = identifier) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }" { (expression_statement "sVar8 = strlen(pcVar3);" (assignment_expression "sVar8 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "pcVar7 = pcVar3 + sVar8;" (assignment_expression "pcVar7 = pcVar3 + sVar8" identifier = (binary_expression "pcVar3 + sVar8" identifier + identifier)) ;) })) (expression_statement "FUN_00050e40(&local_4c,pcVar3,pcVar7,0);" (call_expression "FUN_00050e40(&local_4c,pcVar3,pcVar7,0)" identifier (argument_list "(&local_4c,pcVar3,pcVar7,0)" ( (pointer_expression "&local_4c" & identifier) , identifier , identifier , number_literal ))) ;) (expression_statement "puVar9 = local_34;" (assignment_expression "puVar9 = local_34" identifier = identifier) ;) (expression_statement "puVar4 = local_4c;" (assignment_expression "puVar4 = local_4c" identifier = identifier) ;) (expression_statement "uVar6 = local_30;" (assignment_expression "uVar6 = local_30" identifier = identifier) ;) (if_statement "if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }" if (parenthesized_expression "(local_48 <= local_30)" ( (binary_expression "local_48 <= local_30" identifier <= identifier) )) (compound_statement "{\n        uVar6 = local_48;\n      }" { (expression_statement "uVar6 = local_48;" (assignment_expression "uVar6 = local_48" identifier = identifier) ;) })) (if_statement "if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }" if (parenthesized_expression "((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0))" ( (binary_expression "(uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)" ( (comma_expression "uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0" (assignment_expression "uVar6 = memcmp(local_4c,local_34,uVar6)" identifier = (call_expression "memcmp(local_4c,local_34,uVar6)" identifier (argument_list "(local_4c,local_34,uVar6)" ( identifier , identifier , identifier )))) , (binary_expression "uVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        uVar6 = local_48 - local_30;\n      }" { (expression_statement "uVar6 = local_48 - local_30;" (assignment_expression "uVar6 = local_48 - local_30" identifier = (binary_expression "local_48 - local_30" identifier - identifier)) ;) })) (if_statement "if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }" if (parenthesized_expression "(puVar4 != local_44)" ( (binary_expression "puVar4 != local_44" identifier != identifier) )) (compound_statement "{\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }" { (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" identifier (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "puVar9 = local_34;" (assignment_expression "puVar9 = local_34" identifier = identifier) ;) })) (if_statement "if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }" if (parenthesized_expression "(puVar9 != local_2c)" ( (binary_expression "puVar9 != local_2c" identifier != identifier) )) (compound_statement "{\n        FUN_001e6db0(puVar9);\n      }" { (expression_statement "FUN_001e6db0(puVar9);" (call_expression "FUN_001e6db0(puVar9)" identifier (argument_list "(puVar9)" ( identifier ))) ;) })) (return_statement "return uVar6 >> 0x1f;" return (binary_expression "uVar6 >> 0x1f" identifier >> number_literal) ;) })) })) (expression_statement "FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);" (call_expression "FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3)" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx",param_3)" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") , identifier ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) != (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) == LIT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return (binary_expression IDENT >> LIT) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })))
(function_definition "uint __regparm3\nFUN_0018ce10(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 *param_5,undefined4 *param_6)\n\n{\n  uint uVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined1 *puVar4;\n  byte bVar5;\n  uint uVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined1 *puVar9;\n  undefined1 *local_4c;\n  uint local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34;\n  uint local_30;\n  undefined1 local_2c [28];\n  \n  if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }\n                    \n  FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);\n}" (type_identifier "uint") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0018ce10(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 *param_5,undefined4 *param_6)" (identifier "FUN_0018ce10") (parameter_list "(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,\n            undefined4 *param_5,undefined4 *param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 *param_5" (type_identifier "undefined4") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined4 *param_6" (type_identifier "undefined4") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  char *pcVar3;\n  undefined1 *puVar4;\n  byte bVar5;\n  uint uVar6;\n  char *pcVar7;\n  size_t sVar8;\n  undefined1 *puVar9;\n  undefined1 *local_4c;\n  uint local_48;\n  undefined1 local_44 [16];\n  undefined1 *local_34;\n  uint local_30;\n  undefined1 local_2c [28];\n  \n  if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }\n                    \n  FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined1 *puVar4;" (type_identifier "undefined1") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (declaration "undefined1 *puVar9;" (type_identifier "undefined1") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined1 *local_4c;" (type_identifier "undefined1") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "uint local_48;" (type_identifier "uint") (identifier "local_48") (; ";")) (declaration "undefined1 local_44 [16];" (type_identifier "undefined1") (array_declarator "local_44 [16]" (identifier "local_44") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 *local_34;" (type_identifier "undefined1") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "undefined1 local_2c [28];" (type_identifier "undefined1") (array_declarator "local_2c [28]" (identifier "local_2c") ([ "[") (number_literal "28") (] "]")) (; ";")) (if_statement "if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }" (if "if") (parenthesized_expression "((*(byte *)((int)param_5 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_5 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_5 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_5 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_5 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_5 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_5 + 0x2a)" (( "(") (binary_expression "(int)param_5 + 0x2a" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_3 = param_5[3];\n    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }\n    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }\n  }" ({ "{") (expression_statement "param_3 = param_5[3];" (assignment_expression "param_3 = param_5[3]" (identifier "param_3") (= "=") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }" (if "if") (parenthesized_expression "((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_5 + 0x2b) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)param_5 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)((int)param_5 + 0x2b) & 0x20" (pointer_expression "*(byte *)((int)param_5 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_5 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_5 + 0x2b)" (( "(") (binary_expression "(int)param_5 + 0x2b" (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);\n    }" ({ "{") (expression_statement "FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);" (call_expression "FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6)" (identifier "FUN_00069d00") (argument_list "("../../gold/symtab.cc",0x6af,"operator()",param_6)" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x6af") (, ",") (string_literal ""operator()"" (" """) (string_content "operator()") (" """)) (, ",") (identifier "param_6") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }" (if "if") (parenthesized_expression "((*(byte *)((int)param_6 + 0x2a) & 7) == 0)" (( "(") (binary_expression "(*(byte *)((int)param_6 + 0x2a) & 7) == 0" (parenthesized_expression "(*(byte *)((int)param_6 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_6 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_6 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_6 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_6 + 0x2a)" (( "(") (binary_expression "(int)param_6 + 0x2a" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;\n      uVar6 = bVar5 & 1;\n      if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }\n      if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }\n      uVar1 = param_5[0xd];\n      uVar2 = param_6[0xd];\n      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }\n      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }\n      pcVar3 = (char *)*param_6;\n      pcVar7 = (char *)0xffffffff;\n      local_34 = local_2c;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n      FUN_00050e40(&local_34,pcVar3,pcVar7,0);\n      pcVar3 = (char *)*param_5;\n      pcVar7 = (char *)0xffffffff;\n      local_4c = local_44;\n      if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }\n                    \n      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);\n      puVar9 = local_34;\n      puVar4 = local_4c;\n      uVar6 = local_30;\n      if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }\n      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }\n      if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }\n      if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }\n      return uVar6 >> 0x1f;\n    }" ({ "{") (expression_statement "bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;" (assignment_expression "bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5" (identifier "bVar5") (= "=") (binary_expression "*(byte *)((int)param_6 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_6 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_6 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_6 + 0x2b)" (( "(") (binary_expression "(int)param_6 + 0x2b" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "uVar6 = bVar5 & 1;" (assignment_expression "uVar6 = bVar5 & 1" (identifier "uVar6") (= "=") (binary_expression "bVar5 & 1" (identifier "bVar5") (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((bVar5 & 1) == 0) {\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }" (if "if") (parenthesized_expression "((bVar5 & 1) == 0)" (( "(") (binary_expression "(bVar5 & 1) == 0" (parenthesized_expression "(bVar5 & 1)" (( "(") (binary_expression "bVar5 & 1" (identifier "bVar5") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);\n      }" ({ "{") (expression_statement "FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);" (call_expression "FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6)" (identifier "FUN_00069d00") (argument_list "("../../gold/symtab.cc",0x6b1,"operator()",uVar6)" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0x6b1") (, ",") (string_literal ""operator()"" (" """) (string_content "operator()") (" """)) (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_6[3] != param_3) {\n        return (uint)(param_3 < (uint)param_6[3]);\n      }" (if "if") (parenthesized_expression "(param_6[3] != param_3)" (( "(") (binary_expression "param_6[3] != param_3" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (!= "!=") (identifier "param_3")) () ")")) (compound_statement "{\n        return (uint)(param_3 < (uint)param_6[3]);\n      }" ({ "{") (return_statement "return (uint)(param_3 < (uint)param_6[3]);" (return "return") (call_expression "(uint)(param_3 < (uint)param_6[3])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_3 < (uint)param_6[3])" (( "(") (binary_expression "param_3 < (uint)param_6[3]" (identifier "param_3") (< "<") (cast_expression "(uint)param_6[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")))) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar1 = param_5[0xd];" (assignment_expression "uVar1 = param_5[0xd]" (identifier "uVar1") (= "=") (subscript_expression "param_5[0xd]" (identifier "param_5") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "uVar2 = param_6[0xd];" (assignment_expression "uVar2 = param_6[0xd]" (identifier "uVar2") (= "=") (subscript_expression "param_6[0xd]" (identifier "param_6") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (if_statement "if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }" (if "if") (parenthesized_expression "(uVar1 != uVar2 || param_6[0xc] != param_5[0xc])" (( "(") (binary_expression "uVar1 != uVar2 || param_6[0xc] != param_5[0xc]" (binary_expression "uVar1 != uVar2" (identifier "uVar1") (!= "!=") (identifier "uVar2")) (|| "||") (binary_expression "param_6[0xc] != param_5[0xc]" (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")) (!= "!=") (subscript_expression "param_5[0xc]" (identifier "param_5") ([ "[") (number_literal "0xc") (] "]")))) () ")")) (compound_statement "{\n        return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));\n      }" ({ "{") (return_statement "return (uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));" (return "return") (call_expression "(uint)(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]))" (( "(") (binary_expression "uVar1 < uVar2 ||\n                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc])" (binary_expression "uVar1 < uVar2" (identifier "uVar1") (< "<") (identifier "uVar2")) (|| "||") (binary_expression "uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc])" (binary_expression "uVar1 - uVar2" (identifier "uVar1") (- "-") (identifier "uVar2")) (< "<") (call_expression "(uint)((uint)param_5[0xc] < (uint)param_6[0xc])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)param_5[0xc] < (uint)param_6[0xc])" (( "(") (binary_expression "(uint)param_5[0xc] < (uint)param_6[0xc]" (cast_expression "(uint)param_5[0xc]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[0xc]" (identifier "param_5") ([ "[") (number_literal "0xc") (] "]"))) (< "<") (cast_expression "(uint)param_6[0xc]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_6[0xc]" (identifier "param_6") ([ "[") (number_literal "0xc") (] "]")))) () ")"))))) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }" (if "if") (parenthesized_expression "(*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4)" (( "(") (binary_expression "*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4" (binary_expression "*(byte *)(param_5 + 10) >> 4" (pointer_expression "*(byte *)(param_5 + 10)" (* "*") (cast_expression "(byte *)(param_5 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 10)" (( "(") (binary_expression "param_5 + 10" (identifier "param_5") (+ "+") (number_literal "10")) () ")")))) (>> ">>") (number_literal "4")) (!= "!=") (binary_expression "*(byte *)(param_6 + 10) >> 4" (pointer_expression "*(byte *)(param_6 + 10)" (* "*") (cast_expression "(byte *)(param_6 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 10)" (( "(") (binary_expression "param_6 + 10" (identifier "param_6") (+ "+") (number_literal "10")) () ")")))) (>> ">>") (number_literal "4"))) () ")")) (compound_statement "{\n        if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }\n        if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }\n      }" ({ "{") (if_statement "if (*(byte *)(param_5 + 10) >> 4 == 2) {\n          return uVar6;\n        }" (if "if") (parenthesized_expression "(*(byte *)(param_5 + 10) >> 4 == 2)" (( "(") (binary_expression "*(byte *)(param_5 + 10) >> 4 == 2" (binary_expression "*(byte *)(param_5 + 10) >> 4" (pointer_expression "*(byte *)(param_5 + 10)" (* "*") (cast_expression "(byte *)(param_5 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 10)" (( "(") (binary_expression "param_5 + 10" (identifier "param_5") (+ "+") (number_literal "10")) () ")")))) (>> ">>") (number_literal "4")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          return uVar6;\n        }" ({ "{") (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}"))) (if_statement "if (*(byte *)(param_6 + 10) >> 4 == 2) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(*(byte *)(param_6 + 10) >> 4 == 2)" (( "(") (binary_expression "*(byte *)(param_6 + 10) >> 4 == 2" (binary_expression "*(byte *)(param_6 + 10) >> 4" (pointer_expression "*(byte *)(param_6 + 10)" (* "*") (cast_expression "(byte *)(param_6 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 10)" (( "(") (binary_expression "param_6 + 10" (identifier "param_6") (+ "+") (number_literal "10")) () ")")))) (>> ">>") (number_literal "4")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar3 = (char *)*param_6;" (assignment_expression "pcVar3 = (char *)*param_6" (identifier "pcVar3") (= "=") (cast_expression "(char *)*param_6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_6" (* "*") (identifier "param_6")))) (; ";")) (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" (identifier "pcVar7") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "local_34 = local_2c;" (assignment_expression "local_34 = local_2c" (identifier "local_34") (= "=") (identifier "local_2c")) (; ";")) (if_statement "if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }" (if "if") (parenthesized_expression "(pcVar3 != (char *)0x0)" (( "(") (binary_expression "pcVar3 != (char *)0x0" (identifier "pcVar3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }" ({ "{") (expression_statement "sVar8 = strlen(pcVar3);" (assignment_expression "sVar8 = strlen(pcVar3)" (identifier "sVar8") (= "=") (call_expression "strlen(pcVar3)" (identifier "strlen") (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")")))) (; ";")) (expression_statement "pcVar7 = pcVar3 + sVar8;" (assignment_expression "pcVar7 = pcVar3 + sVar8" (identifier "pcVar7") (= "=") (binary_expression "pcVar3 + sVar8" (identifier "pcVar3") (+ "+") (identifier "sVar8"))) (; ";")) (} "}"))) (expression_statement "FUN_00050e40(&local_34,pcVar3,pcVar7,0);" (call_expression "FUN_00050e40(&local_34,pcVar3,pcVar7,0)" (identifier "FUN_00050e40") (argument_list "(&local_34,pcVar3,pcVar7,0)" (( "(") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (identifier "pcVar3") (, ",") (identifier "pcVar7") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "pcVar3 = (char *)*param_5;" (assignment_expression "pcVar3 = (char *)*param_5" (identifier "pcVar3") (= "=") (cast_expression "(char *)*param_5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_5" (* "*") (identifier "param_5")))) (; ";")) (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" (identifier "pcVar7") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "local_4c = local_44;" (assignment_expression "local_4c = local_44" (identifier "local_4c") (= "=") (identifier "local_44")) (; ";")) (if_statement "if (pcVar3 != (char *)0x0) {\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }" (if "if") (parenthesized_expression "(pcVar3 != (char *)0x0)" (( "(") (binary_expression "pcVar3 != (char *)0x0" (identifier "pcVar3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        sVar8 = strlen(pcVar3);\n        pcVar7 = pcVar3 + sVar8;\n      }" ({ "{") (expression_statement "sVar8 = strlen(pcVar3);" (assignment_expression "sVar8 = strlen(pcVar3)" (identifier "sVar8") (= "=") (call_expression "strlen(pcVar3)" (identifier "strlen") (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")")))) (; ";")) (expression_statement "pcVar7 = pcVar3 + sVar8;" (assignment_expression "pcVar7 = pcVar3 + sVar8" (identifier "pcVar7") (= "=") (binary_expression "pcVar3 + sVar8" (identifier "pcVar3") (+ "+") (identifier "sVar8"))) (; ";")) (} "}"))) (expression_statement "FUN_00050e40(&local_4c,pcVar3,pcVar7,0);" (call_expression "FUN_00050e40(&local_4c,pcVar3,pcVar7,0)" (identifier "FUN_00050e40") (argument_list "(&local_4c,pcVar3,pcVar7,0)" (( "(") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) (, ",") (identifier "pcVar3") (, ",") (identifier "pcVar7") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar9 = local_34;" (assignment_expression "puVar9 = local_34" (identifier "puVar9") (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar4 = local_4c;" (assignment_expression "puVar4 = local_4c" (identifier "puVar4") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "uVar6 = local_30;" (assignment_expression "uVar6 = local_30" (identifier "uVar6") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (local_48 <= local_30) {\n        uVar6 = local_48;\n      }" (if "if") (parenthesized_expression "(local_48 <= local_30)" (( "(") (binary_expression "local_48 <= local_30" (identifier "local_48") (<= "<=") (identifier "local_30")) () ")")) (compound_statement "{\n        uVar6 = local_48;\n      }" ({ "{") (expression_statement "uVar6 = local_48;" (assignment_expression "uVar6 = local_48" (identifier "uVar6") (= "=") (identifier "local_48")) (; ";")) (} "}"))) (if_statement "if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {\n        uVar6 = local_48 - local_30;\n      }" (if "if") (parenthesized_expression "((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0))" (( "(") (binary_expression "(uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)" (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)" (( "(") (comma_expression "uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0" (assignment_expression "uVar6 = memcmp(local_4c,local_34,uVar6)" (identifier "uVar6") (= "=") (call_expression "memcmp(local_4c,local_34,uVar6)" (identifier "memcmp") (argument_list "(local_4c,local_34,uVar6)" (( "(") (identifier "local_4c") (, ",") (identifier "local_34") (, ",") (identifier "uVar6") () ")")))) (, ",") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        uVar6 = local_48 - local_30;\n      }" ({ "{") (expression_statement "uVar6 = local_48 - local_30;" (assignment_expression "uVar6 = local_48 - local_30" (identifier "uVar6") (= "=") (binary_expression "local_48 - local_30" (identifier "local_48") (- "-") (identifier "local_30"))) (; ";")) (} "}"))) (if_statement "if (puVar4 != local_44) {\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }" (if "if") (parenthesized_expression "(puVar4 != local_44)" (( "(") (binary_expression "puVar4 != local_44" (identifier "puVar4") (!= "!=") (identifier "local_44")) () ")")) (compound_statement "{\n        FUN_001e6db0(puVar4);\n        puVar9 = local_34;\n      }" ({ "{") (expression_statement "FUN_001e6db0(puVar4);" (call_expression "FUN_001e6db0(puVar4)" (identifier "FUN_001e6db0") (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")"))) (; ";")) (expression_statement "puVar9 = local_34;" (assignment_expression "puVar9 = local_34" (identifier "puVar9") (= "=") (identifier "local_34")) (; ";")) (} "}"))) (if_statement "if (puVar9 != local_2c) {\n        FUN_001e6db0(puVar9);\n      }" (if "if") (parenthesized_expression "(puVar9 != local_2c)" (( "(") (binary_expression "puVar9 != local_2c" (identifier "puVar9") (!= "!=") (identifier "local_2c")) () ")")) (compound_statement "{\n        FUN_001e6db0(puVar9);\n      }" ({ "{") (expression_statement "FUN_001e6db0(puVar9);" (call_expression "FUN_001e6db0(puVar9)" (identifier "FUN_001e6db0") (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")"))) (; ";")) (} "}"))) (return_statement "return uVar6 >> 0x1f;" (return "return") (binary_expression "uVar6 >> 0x1f" (identifier "uVar6") (>> ">>") (number_literal "0x1f")) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);" (call_expression "FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3)" (identifier "FUN_00069d00") (argument_list "("../../gold/symtab.h",0xaa,"shndx",param_3)" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xaa") (, ",") (string_literal ""shndx"" (" """) (string_content "shndx") (" """)) (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: bool operator()(Weak_alias_sorter<64> * this, Sized_symbol<64> * s1,
   Sized_symbol<64> * s2) */

bool __thiscall
gold::type_1<64>::function_1()
          (type_1<64> *this,type_2<64> *s1,type_2<64> *s2)

{
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_6;
  type_3 var_12;
  type_3 var_11;
  type_3 var_14;
  type_3 var_13;
  char *var_17;
  type_4 _Var8;
  type_5 var_10;
  type_6 __d;
  char *pcVar10;
  size_t var_19;
  type_7 var_22;
  int var_24;
  type_5 var_15;
  type_5 var_16;
  type_4 _Var15;
  basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3> var_7;
  basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3> var_8;
  
  if (((s1->super_Symbol).field_0x2a & 7) == 0) {
    var_12 = (s1->super_Symbol).u2_.shndx;
    if (((s1->super_Symbol).field_0x2b & 0x20) == 0) {
                    /* WARNING: Subroutine does not return */
      var_9("../../gold/symtab.cc",0x6af,"operator()");
    }
    if (((s2->super_Symbol).field_0x2a & 7) == 0) {
      var_11 = (s2->super_Symbol).u2_.shndx;
      var_10 = (type_5)(s2->super_Symbol).field_0x2b >> 5;
      if ((var_10 & 1) == 0) {
                    /* WARNING: Subroutine does not return */
        var_9("../../gold/symtab.cc",0x6b1,"operator()");
      }
      if (var_11 != var_12) {
        return var_12 < var_11;
      }
      var_12 = (type_3)s1->value_;
      var_11 = *(type_3 *)((int)&s1->value_ + 4);
      var_14 = (type_3)s2->value_;
      var_13 = *(type_3 *)((int)&s2->value_ + 4);
      if (var_11 != var_13 || var_14 != var_12) {
        return var_11 < var_13 || var_11 - var_13 < (type_3)(var_12 < var_14);
      }
      var_15 = (type_5)(s1->super_Symbol).field_0x28 >> 4;
      var_16 = (type_5)(s2->super_Symbol).field_0x28 >> 4;
      if (var_15 != var_16) {
        if (var_15 == 2) {
          return (bool)(var_10 & 1);
        }
        if (var_16 == 2) {
          return false;
        }
      }
      var_17 = (s2->super_Symbol).name_;
      var_5 = &var_8.field_2;
      pcVar10 = (char *)0xffffffff;
      var_8._M_dataplus._M_p = (type_8)var_5;
      if (var_17 != (char *)0x0) {
        var_19 = var_18(var_17);
        pcVar10 = var_17 + var_19;
      }
      std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
      var_20<var_21*>(&var_8,var_17,pcVar10,0);
      var_17 = (s1->super_Symbol).name_;
      var_6 = &var_7.field_2;
      pcVar10 = (char *)0xffffffff;
      var_7._M_dataplus._M_p = (type_8)var_6;
      if (var_17 != (char *)0x0) {
        var_19 = var_18(var_17);
        pcVar10 = var_17 + var_19;
      }
                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */
      std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
      var_20<var_21*>(&var_7,var_17,pcVar10,0);
      _Var15._M_p = var_8._M_dataplus._M_p;
      _Var8._M_p = var_7._M_dataplus._M_p;
      var_22 = var_8._M_string_length;
      if (var_7._M_string_length <= var_8._M_string_length) {
        var_22 = var_7._M_string_length;
      }
      if ((var_22 == 0) ||
         (var_24 = var_23(var_7._M_dataplus._M_p,var_8._M_dataplus._M_p,var_22), var_24 == 0)) {
        var_24 = var_7._M_string_length - var_8._M_string_length;
      }
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)_Var8._M_p != var_6) {
        var_25(_Var8._M_p);
        _Var15._M_p = var_8._M_dataplus._M_p;
      }
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)_Var15._M_p != var_5) {
        var_25(_Var15._M_p);
      }
      return var_26((type_3)var_24 >> 0x1f,0);
    }
  }
                    /* WARNING: Subroutine does not return */
  var_9("../../gold/symtab.h",0xaa,"shndx");
}


(translation_unit (function_definition type: (type_identifier) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (return_statement (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (return_statement (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (return_statement (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))))

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

uint __regparm3
MASKED(undefined4 param_1,undefined4 param_2,uint param_3,undefined4 param_4,
            undefined4 *param_5,undefined4 *param_6)

{
  uint uVar1;
  uint uVar2;
  char *pcVar3;
  undefined1 *puVar4;
  byte bVar5;
  uint uVar6;
  char *pcVar7;
  size_t sVar8;
  undefined1 *puVar9;
  undefined1 *local_4c;
  uint local_48;
  undefined1 local_44 [16];
  undefined1 *local_34;
  uint local_30;
  undefined1 local_2c [28];
  
  if ((*(byte *)((int)param_5 + 0x2a) & 7) == 0) {
    param_3 = param_5[3];
    if ((*(byte *)((int)param_5 + 0x2b) & 0x20) == 0) {
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/symtab.cc",0x6af,"operator()",param_6);
    }
    if ((*(byte *)((int)param_6 + 0x2a) & 7) == 0) {
      bVar5 = *(byte *)((int)param_6 + 0x2b) >> 5;
      uVar6 = bVar5 & 1;
      if ((bVar5 & 1) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_00069d00("../../gold/symtab.cc",0x6b1,"operator()",uVar6);
      }
      if (param_6[3] != param_3) {
        return (uint)(param_3 < (uint)param_6[3]);
      }
      uVar1 = param_5[0xd];
      uVar2 = param_6[0xd];
      if (uVar1 != uVar2 || param_6[0xc] != param_5[0xc]) {
        return (uint)(uVar1 < uVar2 ||
                     uVar1 - uVar2 < (uint)((uint)param_5[0xc] < (uint)param_6[0xc]));
      }
      if (*(byte *)(param_5 + 10) >> 4 != *(byte *)(param_6 + 10) >> 4) {
        if (*(byte *)(param_5 + 10) >> 4 == 2) {
          return uVar6;
        }
        if (*(byte *)(param_6 + 10) >> 4 == 2) {
          return 0;
        }
      }
      pcVar3 = (char *)*param_6;
      pcVar7 = (char *)0xffffffff;
      local_34 = local_2c;
      if (pcVar3 != (char *)0x0) {
        sVar8 = strlen(pcVar3);
        pcVar7 = pcVar3 + sVar8;
      }
      FUN_00050e40(&local_34,pcVar3,pcVar7,0);
      pcVar3 = (char *)*param_5;
      pcVar7 = (char *)0xffffffff;
      local_4c = local_44;
      if (pcVar3 != (char *)0x0) {
        sVar8 = strlen(pcVar3);
        pcVar7 = pcVar3 + sVar8;
      }
                    /* try { // try from 0018cf32 to 0018cf36 has its CatchHandler @ 0018d02b */
      FUN_00050e40(&local_4c,pcVar3,pcVar7,0);
      puVar9 = local_34;
      puVar4 = local_4c;
      uVar6 = local_30;
      if (local_48 <= local_30) {
        uVar6 = local_48;
      }
      if ((uVar6 == 0) || (uVar6 = memcmp(local_4c,local_34,uVar6), uVar6 == 0)) {
        uVar6 = local_48 - local_30;
      }
      if (puVar4 != local_44) {
        FUN_001e6db0(puVar4);
        puVar9 = local_34;
      }
      if (puVar9 != local_2c) {
        FUN_001e6db0(puVar9);
      }
      return uVar6 >> 0x1f;
    }
  }
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/symtab.h",0xaa,"shndx",param_3);
}

