
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void link_stabs_sections(Layout * this) */

void __thiscall gold::Layout::link_stabs_sections(Layout *this)

{
  uint uVar1;
  _Alloc_hider _Var2;
  size_t sVar3;
  Output_section *pOVar4;
  int iVar5;
  byte *pbVar6;
  byte *pbVar7;
  byte *pbVar8;
  bool bVar9;
  bool bVar10;
  byte bVar11;
  pointer local_40;
  string stab_name;
  
  bVar11 = 0;
  if ((this->have_stabstr_section_ != false) &&
     (local_40 = (this->section_list_).
                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
                 _M_impl._M_start,
     local_40 !=
     (this->section_list_).
     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.
     _M_finish)) {
    do {
      uVar1 = (*local_40)->type_;
      bVar9 = uVar1 < 3;
      bVar10 = uVar1 == 3;
      if (bVar10) {
        pbVar7 = (byte *)(*local_40)->name_;
        iVar5 = 5;
        pbVar6 = pbVar7;
        pbVar8 = (byte *)".stab";
        do {
          if (iVar5 == 0) break;
          iVar5 = iVar5 + -1;
          bVar9 = *pbVar6 < *pbVar8;
          bVar10 = *pbVar6 == *pbVar8;
          pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;
          pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;
        } while (bVar10);
        if ((!bVar9 && !bVar10) == bVar9) {
          sVar3 = strlen((char *)pbVar7);
          iVar5 = 4;
          bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;
          bVar10 = &stack0x00000000 == (undefined1 *)0x5c;
          pbVar7 = pbVar7 + (sVar3 - 3);
          pbVar6 = (byte *)0x30565e;
          do {
            if (iVar5 == 0) break;
            iVar5 = iVar5 + -1;
            bVar9 = *pbVar7 < *pbVar6;
            bVar10 = *pbVar7 == *pbVar6;
            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;
            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;
          } while (bVar10);
          if ((!bVar9 && !bVar10) == bVar9) {
            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;
            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
            _M_construct<char_const*>();
            _Var2._M_p = stab_name._M_dataplus._M_p;
            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);
            if (pOVar4 != (Output_section *)0x0) {
              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||
                 ((pOVar4->field_0x90 & 8) != 0)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */
                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");
              }
              pOVar4->link_section_ = &(*local_40)->super_Output_data;
            }
            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                 *)_Var2._M_p != &stab_name.field_2) {
              operator_delete(_Var2._M_p);
            }
          }
        }
      }
      local_40 = local_40 + 1;
    } while ((this->section_list_).
             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
             _M_impl._M_finish != local_40);
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Removing unreachable block (ram,0x0010ed06) */

void FUN_0010ec10(int param_1)

{
  uint uVar1;
  size_t sVar2;
  int iVar3;
  byte *pbVar4;
  byte *pbVar5;
  byte *pbVar6;
  bool bVar7;
  bool bVar8;
  byte bVar9;
  int *local_40;
  
  bVar9 = 0;
  if ((*(char *)(param_1 + 0x1cc) != '\0') &&
     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {
    do {
      uVar1 = *(uint *)(*local_40 + 0x50);
      bVar7 = uVar1 < 3;
      bVar8 = uVar1 == 3;
      if (bVar8) {
        pbVar5 = *(byte **)(*local_40 + 0x20);
        iVar3 = 5;
        pbVar4 = pbVar5;
        pbVar6 = (byte *)".stab";
        do {
          if (iVar3 == 0) break;
          iVar3 = iVar3 + -1;
          bVar7 = *pbVar4 < *pbVar6;
          bVar8 = *pbVar4 == *pbVar6;
          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;
          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;
        } while (bVar8);
        if ((!bVar7 && !bVar8) == bVar7) {
          sVar2 = strlen((char *)pbVar5);
          iVar3 = 4;
          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;
          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;
          pbVar5 = pbVar5 + (sVar2 - 3);
          pbVar4 = (byte *)0x30565e;
          do {
            if (iVar3 == 0) break;
            iVar3 = iVar3 + -1;
            bVar7 = *pbVar5 < *pbVar4;
            bVar8 = *pbVar5 == *pbVar4;
            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;
            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;
          } while (bVar8);
          if ((!bVar7 && !bVar8) == bVar7) {
            FUN_000a8880();
            iVar3 = FUN_001079e0();
            if (iVar3 != 0) {
              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||
                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */
                FUN_000da200();
              }
              *(int *)(iVar3 + 0x3c) = *local_40;
            }
          }
        }
      }
      local_40 = local_40 + 1;
    } while (*(int **)(param_1 + 0x134) != local_40);
  }
  return;
}


CALL 0x000b4846
ADD EAX,0x3053eb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x4c
MOV ESI,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x44],EAX
CMP byte ptr [ESI + 0x1cc],0x0
JZ 0x0010ed2e
MOV EDX,dword ptr [ESI + 0x130]
CMP EDX,dword ptr [ESI + 0x134]
JZ 0x0010ed2e
LEA ESI,[EAX + 0xffee3121]
LEA EAX,[EAX + 0xffef165e]
MOV dword ptr [EBP + -0x3c],EDX
MOV dword ptr [EBP + -0x48],ESI
MOV dword ptr [EBP + -0x4c],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + -0x3c]
MOV EAX,dword ptr [EAX]
CMP dword ptr [EAX + 0x50],0x3
JNZ 0x0010ed18
MOV EDX,dword ptr [EAX + 0x20]
MOV EDI,dword ptr [EBP + -0x48]
MOV ECX,0x5
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0010ed18
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
MOV dword ptr [EBP + -0x40],EDX
PUSH EDX
CALL 0x0002c330
MOV EDX,dword ptr [EBP + -0x40]
MOV EDI,dword ptr [EBP + -0x4c]
MOV ECX,0x4
ADD ESP,0x10
LEA EAX,[EDX + EAX*0x1 + -0x3]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0010ed18
LEA ECX,[EBP + -0x30]
PUSH 0x0
LEA ESI,[EBP + -0x28]
PUSH EAX
PUSH EDX
PUSH ECX
MOV dword ptr [EBP + -0x30],ESI
CALL 0x000a8880
MOV EDI,dword ptr [EBP + -0x30]
POP ECX
POP EBX
PUSH EDI
PUSH dword ptr [EBP + 0x8]
CALL 0x001079e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0010ed02
MOV EBX,dword ptr [EBP + -0x3c]
MOV EDX,dword ptr [EAX + 0x40]
MOV ECX,dword ptr [EBX]
TEST EDX,EDX
JNZ 0x0010ed36
MOVZX EDX,byte ptr [EAX + 0x90]
TEST DL,0x4
JNZ 0x0010ed36
AND EDX,0x8
JNZ 0x0010ed36
MOV dword ptr [EAX + 0x3c],ECX
CMP EDI,ESI
JZ 0x0010ed18
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
PUSH EDI
CALL 0x00248220
ADD ESP,0x10
LEA ESI,[ESI]
MOV EBX,dword ptr [EBP + 0x8]
ADD dword ptr [EBP + -0x3c],0x4
MOV EAX,dword ptr [EBP + -0x3c]
CMP dword ptr [EBX + 0x134],EAX
JNZ 0x0010ec60
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EBX,dword ptr [EBP + -0x44]
PUSH EAX
LEA EAX,[EBX + 0xffeea5e4]
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0xd07
PUSH EAX
CALL 0x000da200
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Removing unreachable block (ram,0x0010ed06) */\n\nvoid FUN_0010ec10(int param_1)\n\n{\n  uint uVar1;\n  size_t sVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  byte bVar9;\n  int *local_40;\n  \n  bVar9 = 0;\n  if ((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }\n  return;\n}\n\n" comment comment (function_definition "void FUN_0010ec10(int param_1)\n\n{\n  uint uVar1;\n  size_t sVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  byte bVar9;\n  int *local_40;\n  \n  bVar9 = 0;\n  if ((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0010ec10(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  size_t sVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  byte bVar9;\n  int *local_40;\n  \n  bVar9 = 0;\n  if ((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (expression_statement "bVar9 = 0;" (assignment_expression "bVar9 = 0" identifier = number_literal) ;) (if_statement "if ((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }" if (parenthesized_expression "((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134)))" ( (binary_expression "(*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))" (parenthesized_expression "(*(char *)(param_1 + 0x1cc) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x1cc) != '\0'" (pointer_expression "*(char *)(param_1 + 0x1cc)" * (cast_expression "(char *)(param_1 + 0x1cc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1cc)" ( (binary_expression "param_1 + 0x1cc" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))" ( (comma_expression "local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134)" (assignment_expression "local_40 = *(int **)(param_1 + 0x130)" identifier = (pointer_expression "*(int **)(param_1 + 0x130)" * (cast_expression "(int **)(param_1 + 0x130)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x130)" ( (binary_expression "param_1 + 0x130" identifier + number_literal) ))))) , (binary_expression "local_40 != *(int **)(param_1 + 0x134)" identifier != (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))))) ))) )) (compound_statement "{\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }" { (do_statement "do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);" do (compound_statement "{\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    }" { (expression_statement "uVar1 = *(uint *)(*local_40 + 0x50);" (assignment_expression "uVar1 = *(uint *)(*local_40 + 0x50)" identifier = (pointer_expression "*(uint *)(*local_40 + 0x50)" * (cast_expression "(uint *)(*local_40 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_40 + 0x50)" ( (binary_expression "*local_40 + 0x50" (pointer_expression "*local_40" * identifier) + number_literal) ))))) ;) (expression_statement "bVar7 = uVar1 < 3;" (assignment_expression "bVar7 = uVar1 < 3" identifier = (binary_expression "uVar1 < 3" identifier < number_literal)) ;) (expression_statement "bVar8 = uVar1 == 3;" (assignment_expression "bVar8 = uVar1 == 3" identifier = (binary_expression "uVar1 == 3" identifier == number_literal)) ;) (if_statement "if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(bVar8)" ( identifier )) (compound_statement "{\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }" { (expression_statement "pbVar5 = *(byte **)(*local_40 + 0x20);" (assignment_expression "pbVar5 = *(byte **)(*local_40 + 0x20)" identifier = (pointer_expression "*(byte **)(*local_40 + 0x20)" * (cast_expression "(byte **)(*local_40 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_40 + 0x20)" ( (binary_expression "*local_40 + 0x20" (pointer_expression "*local_40" * identifier) + number_literal) ))))) ;) (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar4 = pbVar5;" (assignment_expression "pbVar4 = pbVar5" identifier = identifier) ;) (expression_statement "pbVar6 = (byte *)".stab";" (assignment_expression "pbVar6 = (byte *)".stab"" identifier = (cast_expression "(byte *)".stab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".stab"" " string_content "))) ;) (do_statement "do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);" do (compound_statement "{\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar4 < *pbVar6;" (assignment_expression "bVar7 = *pbVar4 < *pbVar6" identifier = (binary_expression "*pbVar4 < *pbVar6" (pointer_expression "*pbVar4" * identifier) < (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "bVar8 = *pbVar4 == *pbVar6;" (assignment_expression "bVar8 = *pbVar4 == *pbVar6" identifier = (binary_expression "*pbVar4 == *pbVar6" (pointer_expression "*pbVar4" * identifier) == (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;" (assignment_expression "pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1" identifier = (binary_expression "pbVar4 + (uint)bVar9 * -2 + 1" (binary_expression "pbVar4 + (uint)bVar9 * -2" identifier + (binary_expression "(uint)bVar9 * -2" (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1" identifier = (binary_expression "pbVar6 + (uint)bVar9 * -2 + 1" (binary_expression "pbVar6 + (uint)bVar9 * -2" identifier + (binary_expression "(uint)bVar9 * -2" (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (if_statement "if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }" if (parenthesized_expression "((!bVar7 && !bVar8) == bVar7)" ( (binary_expression "(!bVar7 && !bVar8) == bVar7" (parenthesized_expression "(!bVar7 && !bVar8)" ( (binary_expression "!bVar7 && !bVar8" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier) )) (compound_statement "{\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }" { (expression_statement "sVar2 = strlen((char *)pbVar5);" (assignment_expression "sVar2 = strlen((char *)pbVar5)" identifier = (call_expression "strlen((char *)pbVar5)" identifier (argument_list "((char *)pbVar5)" ( (cast_expression "(char *)pbVar5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (expression_statement "bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;" (assignment_expression "bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff94" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff94" & identifier))) ;) (expression_statement "bVar8 = &stack0x00000000 == (undefined1 *)0x5c;" (assignment_expression "bVar8 = &stack0x00000000 == (undefined1 *)0x5c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x5c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x5c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar5 = pbVar5 + (sVar2 - 3);" (assignment_expression "pbVar5 = pbVar5 + (sVar2 - 3)" identifier = (binary_expression "pbVar5 + (sVar2 - 3)" identifier + (parenthesized_expression "(sVar2 - 3)" ( (binary_expression "sVar2 - 3" identifier - number_literal) )))) ;) (expression_statement "pbVar4 = (byte *)0x30565e;" (assignment_expression "pbVar4 = (byte *)0x30565e" identifier = (cast_expression "(byte *)0x30565e" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);" do (compound_statement "{\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar5 < *pbVar4;" (assignment_expression "bVar7 = *pbVar5 < *pbVar4" identifier = (binary_expression "*pbVar5 < *pbVar4" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar4" * identifier))) ;) (expression_statement "bVar8 = *pbVar5 == *pbVar4;" (assignment_expression "bVar8 = *pbVar5 == *pbVar4" identifier = (binary_expression "*pbVar5 == *pbVar4" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar4" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar9 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar9 * -2" identifier + (binary_expression "(uint)bVar9 * -2" (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;" (assignment_expression "pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1" identifier = (binary_expression "pbVar4 + (uint)bVar9 * -2 + 1" (binary_expression "pbVar4 + (uint)bVar9 * -2" identifier + (binary_expression "(uint)bVar9 * -2" (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (if_statement "if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }" if (parenthesized_expression "((!bVar7 && !bVar8) == bVar7)" ( (binary_expression "(!bVar7 && !bVar8) == bVar7" (parenthesized_expression "(!bVar7 && !bVar8)" ( (binary_expression "!bVar7 && !bVar8" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier) )) (compound_statement "{\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }" { (expression_statement "FUN_000a8880();" (call_expression "FUN_000a8880()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar3 = FUN_001079e0();" (assignment_expression "iVar3 = FUN_001079e0()" identifier = (call_expression "FUN_001079e0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }" { (if_statement "if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }" if (parenthesized_expression "(((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0))" ( (binary_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)" (parenthesized_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0))" ( (binary_expression "(*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)" (parenthesized_expression "(*(int *)(iVar3 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x40) != 0" (pointer_expression "*(int *)(iVar3 + 0x40)" * (cast_expression "(int *)(iVar3 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 4" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 8" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                FUN_000da200();\n              }" { comment comment (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(int *)(iVar3 + 0x3c) = *local_40;" (assignment_expression "*(int *)(iVar3 + 0x3c) = *local_40" (pointer_expression "*(int *)(iVar3 + 0x3c)" * (cast_expression "(int *)(iVar3 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x3c)" ( (binary_expression "iVar3 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*local_40" * identifier)) ;) })) })) })) })) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x134) != local_40)" ( (binary_expression "*(int **)(param_1 + 0x134) != local_40" (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void link_stabs_sections(Layout * this) */\n\nvoid __thiscall gold::Layout::link_stabs_sections(Layout *this)\n\n{\n  uint uVar1;\n  _Alloc_hider _Var2;\n  size_t sVar3;\n  Output_section *pOVar4;\n  int iVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  byte bVar11;\n  pointer local_40;\n  string stab_name;\n  \n  bVar11 = 0;\n  if ((this->have_stabstr_section_ != false) &&\n     (local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start,\n     local_40 !=\n     (this->section_list_).\n     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n     _M_finish)) {\n    do {\n      uVar1 = (*local_40)->type_;\n      bVar9 = uVar1 < 3;\n      bVar10 = uVar1 == 3;\n      if (bVar10) {\n        pbVar7 = (byte *)(*local_40)->name_;\n        iVar5 = 5;\n        pbVar6 = pbVar7;\n        pbVar8 = (byte *)".stab";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar9 = *pbVar6 < *pbVar8;\n          bVar10 = *pbVar6 == *pbVar8;\n          pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n        } while (bVar10);\n        if ((!bVar9 && !bVar10) == bVar9) {\n          sVar3 = strlen((char *)pbVar7);\n          iVar5 = 4;\n          bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar10 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar7 = pbVar7 + (sVar3 - 3);\n          pbVar6 = (byte *)0x30565e;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          } while (bVar10);\n          if ((!bVar9 && !bVar10) == bVar9) {\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != local_40);\n  }\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall gold::Layout::link_stabs_sections(Layout *this)\n\n{\n  uint uVar1;\n  _Alloc_hider _Var2;\n  size_t sVar3;\n  Output_section *pOVar4;\n  int iVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  byte bVar11;\n  pointer local_40;\n  string stab_name;\n  \n  bVar11 = 0;\n  if ((this->have_stabstr_section_ != false) &&\n     (local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start,\n     local_40 !=\n     (this->section_list_).\n     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n     _M_finish)) {\n    do {\n      uVar1 = (*local_40)->type_;\n      bVar9 = uVar1 < 3;\n      bVar10 = uVar1 == 3;\n      if (bVar10) {\n        pbVar7 = (byte *)(*local_40)->name_;\n        iVar5 = 5;\n        pbVar6 = pbVar7;\n        pbVar8 = (byte *)".stab";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar9 = *pbVar6 < *pbVar8;\n          bVar10 = *pbVar6 == *pbVar8;\n          pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n        } while (bVar10);\n        if ((!bVar9 && !bVar10) == bVar9) {\n          sVar3 = strlen((char *)pbVar7);\n          iVar5 = 4;\n          bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar10 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar7 = pbVar7 + (sVar3 - 3);\n          pbVar6 = (byte *)0x30565e;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          } while (bVar10);\n          if ((!bVar9 && !bVar10) == bVar9) {\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != local_40);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "link_stabs_sections(Layout *this)" identifier (parameter_list "(Layout *this)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  _Alloc_hider _Var2;\n  size_t sVar3;\n  Output_section *pOVar4;\n  int iVar5;\n  byte *pbVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  bool bVar9;\n  bool bVar10;\n  byte bVar11;\n  pointer local_40;\n  string stab_name;\n  \n  bVar11 = 0;\n  if ((this->have_stabstr_section_ != false) &&\n     (local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start,\n     local_40 !=\n     (this->section_list_).\n     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n     _M_finish)) {\n    do {\n      uVar1 = (*local_40)->type_;\n      bVar9 = uVar1 < 3;\n      bVar10 = uVar1 == 3;\n      if (bVar10) {\n        pbVar7 = (byte *)(*local_40)->name_;\n        iVar5 = 5;\n        pbVar6 = pbVar7;\n        pbVar8 = (byte *)".stab";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar9 = *pbVar6 < *pbVar8;\n          bVar10 = *pbVar6 == *pbVar8;\n          pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n        } while (bVar10);\n        if ((!bVar9 && !bVar10) == bVar9) {\n          sVar3 = strlen((char *)pbVar7);\n          iVar5 = 4;\n          bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar10 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar7 = pbVar7 + (sVar3 - 3);\n          pbVar6 = (byte *)0x30565e;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          } while (bVar10);\n          if ((!bVar9 && !bVar10) == bVar9) {\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != local_40);\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "_Alloc_hider _Var2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "Output_section *pOVar4;" type_identifier (pointer_declarator "*pOVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "bool bVar9;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "pointer local_40;" type_identifier identifier ;) (declaration "string stab_name;" type_identifier identifier ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (if_statement "if ((this->have_stabstr_section_ != false) &&\n     (local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start,\n     local_40 !=\n     (this->section_list_).\n     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n     _M_finish)) {\n    do {\n      uVar1 = (*local_40)->type_;\n      bVar9 = uVar1 < 3;\n      bVar10 = uVar1 == 3;\n      if (bVar10) {\n        pbVar7 = (byte *)(*local_40)->name_;\n        iVar5 = 5;\n        pbVar6 = pbVar7;\n        pbVar8 = (byte *)".stab";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar9 = *pbVar6 < *pbVar8;\n          bVar10 = *pbVar6 == *pbVar8;\n          pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n        } while (bVar10);\n        if ((!bVar9 && !bVar10) == bVar9) {\n          sVar3 = strlen((char *)pbVar7);\n          iVar5 = 4;\n          bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar10 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar7 = pbVar7 + (sVar3 - 3);\n          pbVar6 = (byte *)0x30565e;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          } while (bVar10);\n          if ((!bVar9 && !bVar10) == bVar9) {\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != local_40);\n  }" if (parenthesized_expression "((this->have_stabstr_section_ != false) &&\n     (local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start,\n     local_40 !=\n     (this->section_list_).\n     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n     _M_finish))" ( (binary_expression "(this->have_stabstr_section_ != false) &&\n     (local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start,\n     local_40 !=\n     (this->section_list_).\n     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n     _M_finish)" (parenthesized_expression "(this->have_stabstr_section_ != false)" ( (binary_expression "this->have_stabstr_section_ != false" (field_expression "this->have_stabstr_section_" identifier -> field_identifier) != false) )) && (parenthesized_expression "(local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start,\n     local_40 !=\n     (this->section_list_).\n     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl.\n     _M_finish)" ( (ERROR "local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start,\n     local_40 !=\n     (this->section_list_).\n     super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>." (comma_expression "local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start,\n     local_40 !=\n     (this->section_list_).\n     super__Vector_base<gold" (field_expression "local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl._M_start" (field_expression "local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                 _M_impl" (binary_expression "local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "local_40 = (this->section_list_).\n                 super__Vector_base<gold::Output_section*,_std" (assignment_expression "local_40 = (this->section_list_).\n                 super__Vector_base<gold" identifier = (binary_expression "(this->section_list_).\n                 super__Vector_base<gold" (field_expression "(this->section_list_).\n                 super__Vector_base" (parenthesized_expression "(this->section_list_)" ( (field_expression "this->section_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) , (binary_expression "local_40 !=\n     (this->section_list_).\n     super__Vector_base<gold" identifier != (binary_expression "(this->section_list_).\n     super__Vector_base<gold" (field_expression "(this->section_list_).\n     super__Vector_base" (parenthesized_expression "(this->section_list_)" ( (field_expression "this->section_list_" identifier -> field_identifier) )) . field_identifier) < identifier))) : : identifier * , identifier : : identifier < identifier : : identifier * > identifier > .) (field_expression "_M_impl.\n     _M_finish" identifier . field_identifier) ))) )) (compound_statement "{\n    do {\n      uVar1 = (*local_40)->type_;\n      bVar9 = uVar1 < 3;\n      bVar10 = uVar1 == 3;\n      if (bVar10) {\n        pbVar7 = (byte *)(*local_40)->name_;\n        iVar5 = 5;\n        pbVar6 = pbVar7;\n        pbVar8 = (byte *)".stab";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar9 = *pbVar6 < *pbVar8;\n          bVar10 = *pbVar6 == *pbVar8;\n          pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n        } while (bVar10);\n        if ((!bVar9 && !bVar10) == bVar9) {\n          sVar3 = strlen((char *)pbVar7);\n          iVar5 = 4;\n          bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar10 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar7 = pbVar7 + (sVar3 - 3);\n          pbVar6 = (byte *)0x30565e;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          } while (bVar10);\n          if ((!bVar9 && !bVar10) == bVar9) {\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != local_40);\n  }" { (do_statement "do {\n      uVar1 = (*local_40)->type_;\n      bVar9 = uVar1 < 3;\n      bVar10 = uVar1 == 3;\n      if (bVar10) {\n        pbVar7 = (byte *)(*local_40)->name_;\n        iVar5 = 5;\n        pbVar6 = pbVar7;\n        pbVar8 = (byte *)".stab";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar9 = *pbVar6 < *pbVar8;\n          bVar10 = *pbVar6 == *pbVar8;\n          pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n        } while (bVar10);\n        if ((!bVar9 && !bVar10) == bVar9) {\n          sVar3 = strlen((char *)pbVar7);\n          iVar5 = 4;\n          bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar10 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar7 = pbVar7 + (sVar3 - 3);\n          pbVar6 = (byte *)0x30565e;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          } while (bVar10);\n          if ((!bVar9 && !bVar10) == bVar9) {\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while ((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != local_40);" do (compound_statement "{\n      uVar1 = (*local_40)->type_;\n      bVar9 = uVar1 < 3;\n      bVar10 = uVar1 == 3;\n      if (bVar10) {\n        pbVar7 = (byte *)(*local_40)->name_;\n        iVar5 = 5;\n        pbVar6 = pbVar7;\n        pbVar8 = (byte *)".stab";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar9 = *pbVar6 < *pbVar8;\n          bVar10 = *pbVar6 == *pbVar8;\n          pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n        } while (bVar10);\n        if ((!bVar9 && !bVar10) == bVar9) {\n          sVar3 = strlen((char *)pbVar7);\n          iVar5 = 4;\n          bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar10 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar7 = pbVar7 + (sVar3 - 3);\n          pbVar6 = (byte *)0x30565e;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          } while (bVar10);\n          if ((!bVar9 && !bVar10) == bVar9) {\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    }" { (expression_statement "uVar1 = (*local_40)->type_;" (assignment_expression "uVar1 = (*local_40)->type_" identifier = (field_expression "(*local_40)->type_" (parenthesized_expression "(*local_40)" ( (pointer_expression "*local_40" * identifier) )) -> field_identifier)) ;) (expression_statement "bVar9 = uVar1 < 3;" (assignment_expression "bVar9 = uVar1 < 3" identifier = (binary_expression "uVar1 < 3" identifier < number_literal)) ;) (expression_statement "bVar10 = uVar1 == 3;" (assignment_expression "bVar10 = uVar1 == 3" identifier = (binary_expression "uVar1 == 3" identifier == number_literal)) ;) (if_statement "if (bVar10) {\n        pbVar7 = (byte *)(*local_40)->name_;\n        iVar5 = 5;\n        pbVar6 = pbVar7;\n        pbVar8 = (byte *)".stab";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar9 = *pbVar6 < *pbVar8;\n          bVar10 = *pbVar6 == *pbVar8;\n          pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n        } while (bVar10);\n        if ((!bVar9 && !bVar10) == bVar9) {\n          sVar3 = strlen((char *)pbVar7);\n          iVar5 = 4;\n          bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar10 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar7 = pbVar7 + (sVar3 - 3);\n          pbVar6 = (byte *)0x30565e;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          } while (bVar10);\n          if ((!bVar9 && !bVar10) == bVar9) {\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }\n        }\n      }" if (parenthesized_expression "(bVar10)" ( identifier )) (compound_statement "{\n        pbVar7 = (byte *)(*local_40)->name_;\n        iVar5 = 5;\n        pbVar6 = pbVar7;\n        pbVar8 = (byte *)".stab";\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar9 = *pbVar6 < *pbVar8;\n          bVar10 = *pbVar6 == *pbVar8;\n          pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n        } while (bVar10);\n        if ((!bVar9 && !bVar10) == bVar9) {\n          sVar3 = strlen((char *)pbVar7);\n          iVar5 = 4;\n          bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar10 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar7 = pbVar7 + (sVar3 - 3);\n          pbVar6 = (byte *)0x30565e;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          } while (bVar10);\n          if ((!bVar9 && !bVar10) == bVar9) {\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }\n        }\n      }" { (expression_statement "pbVar7 = (byte *)(*local_40)->name_;" (assignment_expression "pbVar7 = (byte *)(*local_40)->name_" identifier = (cast_expression "(byte *)(*local_40)->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(*local_40)->name_" (parenthesized_expression "(*local_40)" ( (pointer_expression "*local_40" * identifier) )) -> field_identifier))) ;) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar6 = pbVar7;" (assignment_expression "pbVar6 = pbVar7" identifier = identifier) ;) (expression_statement "pbVar8 = (byte *)".stab";" (assignment_expression "pbVar8 = (byte *)".stab"" identifier = (cast_expression "(byte *)".stab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".stab"" " string_content "))) ;) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar9 = *pbVar6 < *pbVar8;\n          bVar10 = *pbVar6 == *pbVar8;\n          pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n        } while (bVar10);" do (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar9 = *pbVar6 < *pbVar8;\n          bVar10 = *pbVar6 == *pbVar8;\n          pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n        }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar6 < *pbVar8;" (assignment_expression "bVar9 = *pbVar6 < *pbVar8" identifier = (binary_expression "*pbVar6 < *pbVar8" (pointer_expression "*pbVar6" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar10 = *pbVar6 == *pbVar8;" (assignment_expression "bVar10 = *pbVar6 == *pbVar8" identifier = (binary_expression "*pbVar6 == *pbVar8" (pointer_expression "*pbVar6" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "pbVar6 + (uint)bVar11 * -2 + 1" (binary_expression "pbVar6 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar11 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (if_statement "if ((!bVar9 && !bVar10) == bVar9) {\n          sVar3 = strlen((char *)pbVar7);\n          iVar5 = 4;\n          bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar10 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar7 = pbVar7 + (sVar3 - 3);\n          pbVar6 = (byte *)0x30565e;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          } while (bVar10);\n          if ((!bVar9 && !bVar10) == bVar9) {\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }\n        }" if (parenthesized_expression "((!bVar9 && !bVar10) == bVar9)" ( (binary_expression "(!bVar9 && !bVar10) == bVar9" (parenthesized_expression "(!bVar9 && !bVar10)" ( (binary_expression "!bVar9 && !bVar10" (unary_expression "!bVar9" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier) )) (compound_statement "{\n          sVar3 = strlen((char *)pbVar7);\n          iVar5 = 4;\n          bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar10 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar7 = pbVar7 + (sVar3 - 3);\n          pbVar6 = (byte *)0x30565e;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          } while (bVar10);\n          if ((!bVar9 && !bVar10) == bVar9) {\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }\n        }" { (expression_statement "sVar3 = strlen((char *)pbVar7);" (assignment_expression "sVar3 = strlen((char *)pbVar7)" identifier = (call_expression "strlen((char *)pbVar7)" identifier (argument_list "((char *)pbVar7)" ( (cast_expression "(char *)pbVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94;" (assignment_expression "bVar9 = (undefined1 *)0xffffffef < &stack0xffffff94" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff94" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff94" & identifier))) ;) (expression_statement "bVar10 = &stack0x00000000 == (undefined1 *)0x5c;" (assignment_expression "bVar10 = &stack0x00000000 == (undefined1 *)0x5c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x5c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x5c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar7 = pbVar7 + (sVar3 - 3);" (assignment_expression "pbVar7 = pbVar7 + (sVar3 - 3)" identifier = (binary_expression "pbVar7 + (sVar3 - 3)" identifier + (parenthesized_expression "(sVar3 - 3)" ( (binary_expression "sVar3 - 3" identifier - number_literal) )))) ;) (expression_statement "pbVar6 = (byte *)0x30565e;" (assignment_expression "pbVar6 = (byte *)0x30565e" identifier = (cast_expression "(byte *)0x30565e" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          } while (bVar10);" do (compound_statement "{\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar9 = *pbVar7 < *pbVar6;\n            bVar10 = *pbVar7 == *pbVar6;\n            pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n            pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;\n          }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar9 = *pbVar7 < *pbVar6;" (assignment_expression "bVar9 = *pbVar7 < *pbVar6" identifier = (binary_expression "*pbVar7 < *pbVar6" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "bVar10 = *pbVar7 == *pbVar6;" (assignment_expression "bVar10 = *pbVar7 == *pbVar6" identifier = (binary_expression "*pbVar7 == *pbVar6" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar11 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "pbVar6 + (uint)bVar11 * -2 + 1" (binary_expression "pbVar6 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (if_statement "if ((!bVar9 && !bVar10) == bVar9) {\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }" if (parenthesized_expression "((!bVar9 && !bVar10) == bVar9)" ( (binary_expression "(!bVar9 && !bVar10) == bVar9" (parenthesized_expression "(!bVar9 && !bVar10)" ( (binary_expression "!bVar9 && !bVar10" (unary_expression "!bVar9" ! identifier) && (unary_expression "!bVar10" ! identifier)) )) == identifier) )) (compound_statement "{\n            stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n            _Var2._M_p = stab_name._M_dataplus._M_p;\n            pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);\n            if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }\n          }" { (expression_statement "stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2;" (assignment_expression "stab_name._M_dataplus._M_p = (pointer)&stab_name.field_2" (field_expression "stab_name._M_dataplus._M_p" (field_expression "stab_name._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&stab_name.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "stab_name.field_2" identifier . field_identifier))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();" 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*>();" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*>()" * > ( )) ;)) (expression_statement "_Var2._M_p = stab_name._M_dataplus._M_p;" (assignment_expression "_Var2._M_p = stab_name._M_dataplus._M_p" (field_expression "_Var2._M_p" identifier . field_identifier) = (field_expression "stab_name._M_dataplus._M_p" (field_expression "stab_name._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p);" (assignment_expression "pOVar4 = find_output_section(this,stab_name._M_dataplus._M_p)" identifier = (call_expression "find_output_section(this,stab_name._M_dataplus._M_p)" identifier (argument_list "(this,stab_name._M_dataplus._M_p)" ( identifier , (field_expression "stab_name._M_dataplus._M_p" (field_expression "stab_name._M_dataplus" identifier . field_identifier) . field_identifier) )))) ;) (if_statement "if (pOVar4 != (Output_section *)0x0) {\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }" if (parenthesized_expression "(pOVar4 != (Output_section *)0x0)" ( (binary_expression "pOVar4 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }\n              pOVar4->link_section_ = &(*local_40)->super_Output_data;\n            }" { (if_statement "if (((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }" if (parenthesized_expression "(((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0))" ( (binary_expression "((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)) ||\n                 ((pOVar4->field_0x90 & 8) != 0)" (parenthesized_expression "((pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0))" ( (binary_expression "(pOVar4->link_ != 0) || ((pOVar4->field_0x90 & 4) != 0)" (parenthesized_expression "(pOVar4->link_ != 0)" ( (binary_expression "pOVar4->link_ != 0" (field_expression "pOVar4->link_" identifier -> field_identifier) != number_literal) )) || (parenthesized_expression "((pOVar4->field_0x90 & 4) != 0)" ( (binary_expression "(pOVar4->field_0x90 & 4) != 0" (parenthesized_expression "(pOVar4->field_0x90 & 4)" ( (binary_expression "pOVar4->field_0x90 & 4" (field_expression "pOVar4->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((pOVar4->field_0x90 & 8) != 0)" ( (binary_expression "(pOVar4->field_0x90 & 8) != 0" (parenthesized_expression "(pOVar4->field_0x90 & 8)" ( (binary_expression "pOVar4->field_0x90 & 8" (field_expression "pOVar4->field_0x90" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */\n                do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");\n              }" { comment comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section");" (call_expression "do_gold_unreachable("../../gold/output.h",0xd07,"set_link_section")" identifier (argument_list "("../../gold/output.h",0xd07,"set_link_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_link_section"" " string_content ") ))) ;) })) (expression_statement "pOVar4->link_section_ = &(*local_40)->super_Output_data;" (assignment_expression "pOVar4->link_section_ = &(*local_40)->super_Output_data" (field_expression "pOVar4->link_section_" identifier -> field_identifier) = (pointer_expression "&(*local_40)->super_Output_data" & (field_expression "(*local_40)->super_Output_data" (parenthesized_expression "(*local_40)" ( (pointer_expression "*local_40" * identifier) )) -> field_identifier))) ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2) {\n              operator_delete(_Var2._M_p);\n            }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var2._M_p != &stab_name.field_2)" ( (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                 *)_Var2._M_p != &stab_name.field_2" (binary_expression "allocator<char>_>_9\n                 *)_Var2._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                 *)_Var2._M_p" identifier * (ERROR ")" )) (field_expression "_Var2._M_p" identifier . field_identifier))) != (pointer_expression "&stab_name.field_2" & (field_expression "stab_name.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n              operator_delete(_Var2._M_p);\n            }" { (expression_statement "operator_delete(_Var2._M_p);" (call_expression "operator_delete(_Var2._M_p)" identifier (argument_list "(_Var2._M_p)" ( (field_expression "_Var2._M_p" identifier . field_identifier) ))) ;) })) })) })) })) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != local_40)" ( (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish != local_40" (field_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish" (field_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl" (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(this->section_list_).\n             super__Vector_base<gold::Output_section*,_std" (binary_expression "(this->section_list_).\n             super__Vector_base<gold" (field_expression "(this->section_list_).\n             super__Vector_base" (parenthesized_expression "(this->section_list_)" ( (field_expression "this->section_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0010ec10(int param_1)\n\n{\n  uint uVar1;\n  size_t sVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  byte bVar9;\n  int *local_40;\n  \n  bVar9 = 0;\n  if ((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0010ec10(int param_1)\n\n{\n  uint uVar1;\n  size_t sVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  byte bVar9;\n  int *local_40;\n  \n  bVar9 = 0;\n  if ((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0010ec10(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  size_t sVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  byte bVar9;\n  int *local_40;\n  \n  bVar9 = 0;\n  if ((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (expression_statement "bVar9 = 0;" (assignment_expression "bVar9 = 0" identifier = number_literal) ;) (if_statement "if ((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }" if (parenthesized_expression "((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134)))" ( (binary_expression "(*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))" (parenthesized_expression "(*(char *)(param_1 + 0x1cc) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x1cc) != '\0'" (pointer_expression "*(char *)(param_1 + 0x1cc)" * (cast_expression "(char *)(param_1 + 0x1cc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1cc)" ( (binary_expression "param_1 + 0x1cc" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))" ( (comma_expression "local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134)" (assignment_expression "local_40 = *(int **)(param_1 + 0x130)" identifier = (pointer_expression "*(int **)(param_1 + 0x130)" * (cast_expression "(int **)(param_1 + 0x130)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x130)" ( (binary_expression "param_1 + 0x130" identifier + number_literal) ))))) , (binary_expression "local_40 != *(int **)(param_1 + 0x134)" identifier != (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))))) ))) )) (compound_statement "{\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }" { (do_statement "do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);" do (compound_statement "{\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    }" { (expression_statement "uVar1 = *(uint *)(*local_40 + 0x50);" (assignment_expression "uVar1 = *(uint *)(*local_40 + 0x50)" identifier = (pointer_expression "*(uint *)(*local_40 + 0x50)" * (cast_expression "(uint *)(*local_40 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_40 + 0x50)" ( (binary_expression "*local_40 + 0x50" (pointer_expression "*local_40" * identifier) + number_literal) ))))) ;) (expression_statement "bVar7 = uVar1 < 3;" (assignment_expression "bVar7 = uVar1 < 3" identifier = (binary_expression "uVar1 < 3" identifier < number_literal)) ;) (expression_statement "bVar8 = uVar1 == 3;" (assignment_expression "bVar8 = uVar1 == 3" identifier = (binary_expression "uVar1 == 3" identifier == number_literal)) ;) (if_statement "if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(bVar8)" ( identifier )) (compound_statement "{\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }" { (expression_statement "pbVar5 = *(byte **)(*local_40 + 0x20);" (assignment_expression "pbVar5 = *(byte **)(*local_40 + 0x20)" identifier = (pointer_expression "*(byte **)(*local_40 + 0x20)" * (cast_expression "(byte **)(*local_40 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_40 + 0x20)" ( (binary_expression "*local_40 + 0x20" (pointer_expression "*local_40" * identifier) + number_literal) ))))) ;) (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" identifier = number_literal) ;) (expression_statement "pbVar4 = pbVar5;" (assignment_expression "pbVar4 = pbVar5" identifier = identifier) ;) (expression_statement "pbVar6 = (byte *)".stab";" (assignment_expression "pbVar6 = (byte *)".stab"" identifier = (cast_expression "(byte *)".stab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".stab"" " string_content "))) ;) (do_statement "do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);" do (compound_statement "{\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar4 < *pbVar6;" (assignment_expression "bVar7 = *pbVar4 < *pbVar6" identifier = (binary_expression "*pbVar4 < *pbVar6" (pointer_expression "*pbVar4" * identifier) < (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "bVar8 = *pbVar4 == *pbVar6;" (assignment_expression "bVar8 = *pbVar4 == *pbVar6" identifier = (binary_expression "*pbVar4 == *pbVar6" (pointer_expression "*pbVar4" * identifier) == (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;" (assignment_expression "pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1" identifier = (binary_expression "pbVar4 + (uint)bVar9 * -2 + 1" (binary_expression "pbVar4 + (uint)bVar9 * -2" identifier + (binary_expression "(uint)bVar9 * -2" (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1" identifier = (binary_expression "pbVar6 + (uint)bVar9 * -2 + 1" (binary_expression "pbVar6 + (uint)bVar9 * -2" identifier + (binary_expression "(uint)bVar9 * -2" (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (if_statement "if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }" if (parenthesized_expression "((!bVar7 && !bVar8) == bVar7)" ( (binary_expression "(!bVar7 && !bVar8) == bVar7" (parenthesized_expression "(!bVar7 && !bVar8)" ( (binary_expression "!bVar7 && !bVar8" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier) )) (compound_statement "{\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }" { (expression_statement "sVar2 = strlen((char *)pbVar5);" (assignment_expression "sVar2 = strlen((char *)pbVar5)" identifier = (call_expression "strlen((char *)pbVar5)" identifier (argument_list "((char *)pbVar5)" ( (cast_expression "(char *)pbVar5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (expression_statement "bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;" (assignment_expression "bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff94" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff94" & identifier))) ;) (expression_statement "bVar8 = &stack0x00000000 == (undefined1 *)0x5c;" (assignment_expression "bVar8 = &stack0x00000000 == (undefined1 *)0x5c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x5c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x5c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar5 = pbVar5 + (sVar2 - 3);" (assignment_expression "pbVar5 = pbVar5 + (sVar2 - 3)" identifier = (binary_expression "pbVar5 + (sVar2 - 3)" identifier + (parenthesized_expression "(sVar2 - 3)" ( (binary_expression "sVar2 - 3" identifier - number_literal) )))) ;) (expression_statement "pbVar4 = (byte *)0x30565e;" (assignment_expression "pbVar4 = (byte *)0x30565e" identifier = (cast_expression "(byte *)0x30565e" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);" do (compound_statement "{\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar5 < *pbVar4;" (assignment_expression "bVar7 = *pbVar5 < *pbVar4" identifier = (binary_expression "*pbVar5 < *pbVar4" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar4" * identifier))) ;) (expression_statement "bVar8 = *pbVar5 == *pbVar4;" (assignment_expression "bVar8 = *pbVar5 == *pbVar4" identifier = (binary_expression "*pbVar5 == *pbVar4" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar4" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar9 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar9 * -2" identifier + (binary_expression "(uint)bVar9 * -2" (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;" (assignment_expression "pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1" identifier = (binary_expression "pbVar4 + (uint)bVar9 * -2 + 1" (binary_expression "pbVar4 + (uint)bVar9 * -2" identifier + (binary_expression "(uint)bVar9 * -2" (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (if_statement "if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }" if (parenthesized_expression "((!bVar7 && !bVar8) == bVar7)" ( (binary_expression "(!bVar7 && !bVar8) == bVar7" (parenthesized_expression "(!bVar7 && !bVar8)" ( (binary_expression "!bVar7 && !bVar8" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier) )) (compound_statement "{\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }" { (expression_statement "FUN_000a8880();" (call_expression "FUN_000a8880()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar3 = FUN_001079e0();" (assignment_expression "iVar3 = FUN_001079e0()" identifier = (call_expression "FUN_001079e0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }" { (if_statement "if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }" if (parenthesized_expression "(((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0))" ( (binary_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)" (parenthesized_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0))" ( (binary_expression "(*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)" (parenthesized_expression "(*(int *)(iVar3 + 0x40) != 0)" ( (binary_expression "*(int *)(iVar3 + 0x40) != 0" (pointer_expression "*(int *)(iVar3 + 0x40)" * (cast_expression "(int *)(iVar3 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x40)" ( (binary_expression "iVar3 + 0x40" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 4) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 4)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 4" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 8)" ( (binary_expression "*(byte *)(iVar3 + 0x90) & 8" (pointer_expression "*(byte *)(iVar3 + 0x90)" * (cast_expression "(byte *)(iVar3 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x90)" ( (binary_expression "iVar3 + 0x90" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    \n                    \n                FUN_000da200();\n              }" { (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(int *)(iVar3 + 0x3c) = *local_40;" (assignment_expression "*(int *)(iVar3 + 0x3c) = *local_40" (pointer_expression "*(int *)(iVar3 + 0x3c)" * (cast_expression "(int *)(iVar3 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x3c)" ( (binary_expression "iVar3 + 0x3c" identifier + number_literal) )))) = (pointer_expression "*local_40" * identifier)) ;) })) })) })) })) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x134) != local_40)" ( (binary_expression "*(int **)(param_1 + 0x134) != local_40" (pointer_expression "*(int **)(param_1 + 0x134)" * (cast_expression "(int **)(param_1 + 0x134)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x134)" ( (binary_expression "param_1 + 0x134" identifier + number_literal) )))) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_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 IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) })) })) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0010ec10(int param_1)\n\n{\n  uint uVar1;\n  size_t sVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  byte bVar9;\n  int *local_40;\n  \n  bVar9 = 0;\n  if ((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0010ec10(int param_1)" (identifier "FUN_0010ec10") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  uint uVar1;\n  size_t sVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  byte bVar9;\n  int *local_40;\n  \n  bVar9 = 0;\n  if ((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "size_t sVar2;" (primitive_type "size_t") (identifier "sVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "byte *pbVar6;" (type_identifier "byte") (pointer_declarator "*pbVar6" (* "*") (identifier "pbVar6")) (; ";")) (declaration "bool bVar7;" (primitive_type "bool") (identifier "bVar7") (; ";")) (declaration "bool bVar8;" (primitive_type "bool") (identifier "bVar8") (; ";")) (declaration "byte bVar9;" (type_identifier "byte") (identifier "bVar9") (; ";")) (declaration "int *local_40;" (primitive_type "int") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (expression_statement "bVar9 = 0;" (assignment_expression "bVar9 = 0" (identifier "bVar9") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }" (if "if") (parenthesized_expression "((*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134)))" (( "(") (binary_expression "(*(char *)(param_1 + 0x1cc) != '\0') &&\n     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))" (parenthesized_expression "(*(char *)(param_1 + 0x1cc) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x1cc) != '\0'" (pointer_expression "*(char *)(param_1 + 0x1cc)" (* "*") (cast_expression "(char *)(param_1 + 0x1cc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1cc)" (( "(") (binary_expression "param_1 + 0x1cc" (identifier "param_1") (+ "+") (number_literal "0x1cc")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))" (( "(") (comma_expression "local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134)" (assignment_expression "local_40 = *(int **)(param_1 + 0x130)" (identifier "local_40") (= "=") (pointer_expression "*(int **)(param_1 + 0x130)" (* "*") (cast_expression "(int **)(param_1 + 0x130)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x130)" (( "(") (binary_expression "param_1 + 0x130" (identifier "param_1") (+ "+") (number_literal "0x130")) () ")"))))) (, ",") (binary_expression "local_40 != *(int **)(param_1 + 0x134)" (identifier "local_40") (!= "!=") (pointer_expression "*(int **)(param_1 + 0x134)" (* "*") (cast_expression "(int **)(param_1 + 0x134)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x134)" (( "(") (binary_expression "param_1 + 0x134" (identifier "param_1") (+ "+") (number_literal "0x134")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n    do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);\n  }" ({ "{") (do_statement "do {\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    } while (*(int **)(param_1 + 0x134) != local_40);" (do "do") (compound_statement "{\n      uVar1 = *(uint *)(*local_40 + 0x50);\n      bVar7 = uVar1 < 3;\n      bVar8 = uVar1 == 3;\n      if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }\n      local_40 = local_40 + 1;\n    }" ({ "{") (expression_statement "uVar1 = *(uint *)(*local_40 + 0x50);" (assignment_expression "uVar1 = *(uint *)(*local_40 + 0x50)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(*local_40 + 0x50)" (* "*") (cast_expression "(uint *)(*local_40 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_40 + 0x50)" (( "(") (binary_expression "*local_40 + 0x50" (pointer_expression "*local_40" (* "*") (identifier "local_40")) (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "bVar7 = uVar1 < 3;" (assignment_expression "bVar7 = uVar1 < 3" (identifier "bVar7") (= "=") (binary_expression "uVar1 < 3" (identifier "uVar1") (< "<") (number_literal "3"))) (; ";")) (expression_statement "bVar8 = uVar1 == 3;" (assignment_expression "bVar8 = uVar1 == 3" (identifier "bVar8") (= "=") (binary_expression "uVar1 == 3" (identifier "uVar1") (== "==") (number_literal "3"))) (; ";")) (if_statement "if (bVar8) {\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(bVar8)" (( "(") (identifier "bVar8") () ")")) (compound_statement "{\n        pbVar5 = *(byte **)(*local_40 + 0x20);\n        iVar3 = 5;\n        pbVar4 = pbVar5;\n        pbVar6 = (byte *)".stab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "pbVar5 = *(byte **)(*local_40 + 0x20);" (assignment_expression "pbVar5 = *(byte **)(*local_40 + 0x20)" (identifier "pbVar5") (= "=") (pointer_expression "*(byte **)(*local_40 + 0x20)" (* "*") (cast_expression "(byte **)(*local_40 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_40 + 0x20)" (( "(") (binary_expression "*local_40 + 0x20" (pointer_expression "*local_40" (* "*") (identifier "local_40")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar3 = 5;" (assignment_expression "iVar3 = 5" (identifier "iVar3") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar4 = pbVar5;" (assignment_expression "pbVar4 = pbVar5" (identifier "pbVar4") (= "=") (identifier "pbVar5")) (; ";")) (expression_statement "pbVar6 = (byte *)".stab";" (assignment_expression "pbVar6 = (byte *)".stab"" (identifier "pbVar6") (= "=") (cast_expression "(byte *)".stab"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".stab"" (" """) (string_content ".stab") (" """)))) (; ";")) (do_statement "do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        } while (bVar8);" (do "do") (compound_statement "{\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar7 = *pbVar4 < *pbVar6;\n          bVar8 = *pbVar4 == *pbVar6;\n          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar7 = *pbVar4 < *pbVar6;" (assignment_expression "bVar7 = *pbVar4 < *pbVar6" (identifier "bVar7") (= "=") (binary_expression "*pbVar4 < *pbVar6" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (< "<") (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")))) (; ";")) (expression_statement "bVar8 = *pbVar4 == *pbVar6;" (assignment_expression "bVar8 = *pbVar4 == *pbVar6" (identifier "bVar8") (= "=") (binary_expression "*pbVar4 == *pbVar6" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (== "==") (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6")))) (; ";")) (expression_statement "pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;" (assignment_expression "pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + (uint)bVar9 * -2 + 1" (binary_expression "pbVar4 + (uint)bVar9 * -2" (identifier "pbVar4") (+ "+") (binary_expression "(uint)bVar9 * -2" (cast_expression "(uint)bVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar9")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;" (assignment_expression "pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1" (identifier "pbVar6") (= "=") (binary_expression "pbVar6 + (uint)bVar9 * -2 + 1" (binary_expression "pbVar6 + (uint)bVar9 * -2" (identifier "pbVar6") (+ "+") (binary_expression "(uint)bVar9 * -2" (cast_expression "(uint)bVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar9")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar8)" (( "(") (identifier "bVar8") () ")")) (; ";")) (if_statement "if ((!bVar7 && !bVar8) == bVar7) {\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((!bVar7 && !bVar8) == bVar7)" (( "(") (binary_expression "(!bVar7 && !bVar8) == bVar7" (parenthesized_expression "(!bVar7 && !bVar8)" (( "(") (binary_expression "!bVar7 && !bVar8" (unary_expression "!bVar7" (! "!") (identifier "bVar7")) (&& "&&") (unary_expression "!bVar8" (! "!") (identifier "bVar8"))) () ")")) (== "==") (identifier "bVar7")) () ")")) (compound_statement "{\n          sVar2 = strlen((char *)pbVar5);\n          iVar3 = 4;\n          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;\n          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;\n          pbVar5 = pbVar5 + (sVar2 - 3);\n          pbVar4 = (byte *)0x30565e;\n          do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }\n        }" ({ "{") (expression_statement "sVar2 = strlen((char *)pbVar5);" (assignment_expression "sVar2 = strlen((char *)pbVar5)" (identifier "sVar2") (= "=") (call_expression "strlen((char *)pbVar5)" (identifier "strlen") (argument_list "((char *)pbVar5)" (( "(") (cast_expression "(char *)pbVar5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar5")) () ")")))) (; ";")) (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" (identifier "iVar3") (= "=") (number_literal "4")) (; ";")) (expression_statement "bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;" (assignment_expression "bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94" (identifier "bVar7") (= "=") (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff94" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (pointer_expression "&stack0xffffff94" (& "&") (identifier "stack0xffffff94")))) (; ";")) (expression_statement "bVar8 = &stack0x00000000 == (undefined1 *)0x5c;" (assignment_expression "bVar8 = &stack0x00000000 == (undefined1 *)0x5c" (identifier "bVar8") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x5c" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x5c" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5c")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (sVar2 - 3);" (assignment_expression "pbVar5 = pbVar5 + (sVar2 - 3)" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (sVar2 - 3)" (identifier "pbVar5") (+ "+") (parenthesized_expression "(sVar2 - 3)" (( "(") (binary_expression "sVar2 - 3" (identifier "sVar2") (- "-") (number_literal "3")) () ")")))) (; ";")) (expression_statement "pbVar4 = (byte *)0x30565e;" (assignment_expression "pbVar4 = (byte *)0x30565e" (identifier "pbVar4") (= "=") (cast_expression "(byte *)0x30565e" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x30565e"))) (; ";")) (do_statement "do {\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          } while (bVar8);" (do "do") (compound_statement "{\n            if (iVar3 == 0) break;\n            iVar3 = iVar3 + -1;\n            bVar7 = *pbVar5 < *pbVar4;\n            bVar8 = *pbVar5 == *pbVar4;\n            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;\n            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar7 = *pbVar5 < *pbVar4;" (assignment_expression "bVar7 = *pbVar5 < *pbVar4" (identifier "bVar7") (= "=") (binary_expression "*pbVar5 < *pbVar4" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")))) (; ";")) (expression_statement "bVar8 = *pbVar5 == *pbVar4;" (assignment_expression "bVar8 = *pbVar5 == *pbVar4" (identifier "bVar8") (= "=") (binary_expression "*pbVar5 == *pbVar4" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar9 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar9 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar9 * -2" (cast_expression "(uint)bVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar9")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;" (assignment_expression "pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + (uint)bVar9 * -2 + 1" (binary_expression "pbVar4 + (uint)bVar9 * -2" (identifier "pbVar4") (+ "+") (binary_expression "(uint)bVar9 * -2" (cast_expression "(uint)bVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar9")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar8)" (( "(") (identifier "bVar8") () ")")) (; ";")) (if_statement "if ((!bVar7 && !bVar8) == bVar7) {\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }" (if "if") (parenthesized_expression "((!bVar7 && !bVar8) == bVar7)" (( "(") (binary_expression "(!bVar7 && !bVar8) == bVar7" (parenthesized_expression "(!bVar7 && !bVar8)" (( "(") (binary_expression "!bVar7 && !bVar8" (unary_expression "!bVar7" (! "!") (identifier "bVar7")) (&& "&&") (unary_expression "!bVar8" (! "!") (identifier "bVar8"))) () ")")) (== "==") (identifier "bVar7")) () ")")) (compound_statement "{\n            FUN_000a8880();\n            iVar3 = FUN_001079e0();\n            if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }\n          }" ({ "{") (expression_statement "FUN_000a8880();" (call_expression "FUN_000a8880()" (identifier "FUN_000a8880") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar3 = FUN_001079e0();" (assignment_expression "iVar3 = FUN_001079e0()" (identifier "iVar3") (= "=") (call_expression "FUN_001079e0()" (identifier "FUN_001079e0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }\n              *(int *)(iVar3 + 0x3c) = *local_40;\n            }" ({ "{") (if_statement "if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {\n                    \n                    \n                FUN_000da200();\n              }" (if "if") (parenthesized_expression "(((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0))" (( "(") (binary_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||\n                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)" (parenthesized_expression "((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0))" (( "(") (binary_expression "(*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)" (parenthesized_expression "(*(int *)(iVar3 + 0x40) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x40) != 0" (pointer_expression "*(int *)(iVar3 + 0x40)" (* "*") (cast_expression "(int *)(iVar3 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x40)" (( "(") (binary_expression "iVar3 + 0x40" (identifier "iVar3") (+ "+") (number_literal "0x40")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(iVar3 + 0x90) & 4) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 4)" (( "(") (binary_expression "*(byte *)(iVar3 + 0x90) & 4" (pointer_expression "*(byte *)(iVar3 + 0x90)" (* "*") (cast_expression "(byte *)(iVar3 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x90)" (( "(") (binary_expression "iVar3 + 0x90" (identifier "iVar3") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(iVar3 + 0x90) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(iVar3 + 0x90) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x90) & 8)" (( "(") (binary_expression "*(byte *)(iVar3 + 0x90) & 8" (pointer_expression "*(byte *)(iVar3 + 0x90)" (* "*") (cast_expression "(byte *)(iVar3 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x90)" (( "(") (binary_expression "iVar3 + 0x90" (identifier "iVar3") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    \n                    \n                FUN_000da200();\n              }" ({ "{") (expression_statement "FUN_000da200();" (call_expression "FUN_000da200()" (identifier "FUN_000da200") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar3 + 0x3c) = *local_40;" (assignment_expression "*(int *)(iVar3 + 0x3c) = *local_40" (pointer_expression "*(int *)(iVar3 + 0x3c)" (* "*") (cast_expression "(int *)(iVar3 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x3c)" (( "(") (binary_expression "iVar3 + 0x3c" (identifier "iVar3") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (pointer_expression "*local_40" (* "*") (identifier "local_40"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" (identifier "local_40") (= "=") (binary_expression "local_40 + 1" (identifier "local_40") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(param_1 + 0x134) != local_40)" (( "(") (binary_expression "*(int **)(param_1 + 0x134) != local_40" (pointer_expression "*(int **)(param_1 + 0x134)" (* "*") (cast_expression "(int **)(param_1 + 0x134)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x134)" (( "(") (binary_expression "param_1 + 0x134" (identifier "param_1") (+ "+") (number_literal "0x134")) () ")")))) (!= "!=") (identifier "local_40")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void link_stabs_sections(Layout * this) */

void __thiscall var_20::type_1::function_1(type_1 *this)

{
  type_2 var_1;
  type_3 _Var2;
  size_t var_8;
  type_4 *var_12;
  int var_2;
  type_5 *var_3;
  type_5 *var_7;
  type_5 *var_4;
  bool var_5;
  bool bVar10;
  type_5 bVar11;
  type_6 var_19;
  type_7 stab_name;
  
  bVar11 = 0;
  if ((this->have_stabstr_section_ != false) &&
     (var_19 = (this->section_list_).
                 super__Vector_base<var_20::type_4*,var_21::var_14<var_20::type_4*>var_16>.
                 _M_impl._M_start,
     var_19 !=
     (this->section_list_).
     super__Vector_base<var_20::type_4*,var_21::var_14<var_20::type_4*>var_16>._M_impl.
     _M_finish)) {
    do {
      var_1 = (*var_19)->type_;
      var_5 = var_1 < 3;
      bVar10 = var_1 == 3;
      if (bVar10) {
        var_7 = (type_5 *)(*var_19)->name_;
        var_2 = 5;
        var_3 = var_7;
        var_4 = (type_5 *)".stab";
        do {
          if (var_2 == 0) break;
          var_2 = var_2 + -1;
          var_5 = *var_3 < *var_4;
          bVar10 = *var_3 == *var_4;
          var_3 = var_3 + (type_2)bVar11 * -2 + 1;
          var_4 = var_4 + (type_2)bVar11 * -2 + 1;
        } while (bVar10);
        if ((!var_5 && !bVar10) == var_5) {
          var_8 = var_6((char *)var_7);
          var_2 = 4;
          var_5 = (type_8 *)0xffffffef < &stack0xffffff94;
          bVar10 = &stack0x00000000 == (type_8 *)0x5c;
          var_7 = var_7 + (var_8 - 3);
          var_3 = (type_5 *)0x30565e;
          do {
            if (var_2 == 0) break;
            var_2 = var_2 + -1;
            var_5 = *var_7 < *var_3;
            bVar10 = *var_7 == *var_3;
            var_7 = var_7 + (type_2)bVar11 * -2 + 1;
            var_3 = var_3 + (type_2)bVar11 * -2 + 1;
          } while (bVar10);
          if ((!var_5 && !bVar10) == var_5) {
            stab_name._M_dataplus._M_p = (type_6)&stab_name.field_2;
            std::__cxx11::basic_string<var_15,var_21::char_traits<var_15>,var_21::var_14<var_15>var_16>::
            var_9<var_10*>();
            _Var2._M_p = stab_name._M_dataplus._M_p;
            var_12 = var_11(this,stab_name._M_dataplus._M_p);
            if (var_12 != (type_4 *)0x0) {
              if (((var_12->link_ != 0) || ((var_12->field_0x90 & 4) != 0)) ||
                 ((var_12->field_0x90 & 8) != 0)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */
                var_13("../../gold/output.h",0xd07,"set_link_section");
              }
              var_12->link_section_ = &(*var_19)->super_Output_data;
            }
            if ((anon_union_16_2_edb7204a_for_basic_string<var_15,var_21::char_traits<var_15>,var_21::var_14<var_15>var_16>var_17
                 *)_Var2._M_p != &stab_name.field_2) {
              var_18(_Var2._M_p);
            }
          }
        }
      }
      var_19 = var_19 + 1;
    } while ((this->section_list_).
             super__Vector_base<var_20::type_4*,var_21::var_14<var_20::type_4*>var_16>.
             _M_impl._M_finish != var_19);
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) right: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Removing unreachable block (ram,0x0010ed06) */

void MASKED(int param_1)

{
  uint uVar1;
  size_t sVar2;
  int iVar3;
  byte *pbVar4;
  byte *pbVar5;
  byte *pbVar6;
  bool bVar7;
  bool bVar8;
  byte bVar9;
  int *local_40;
  
  bVar9 = 0;
  if ((*(char *)(param_1 + 0x1cc) != '\0') &&
     (local_40 = *(int **)(param_1 + 0x130), local_40 != *(int **)(param_1 + 0x134))) {
    do {
      uVar1 = *(uint *)(*local_40 + 0x50);
      bVar7 = uVar1 < 3;
      bVar8 = uVar1 == 3;
      if (bVar8) {
        pbVar5 = *(byte **)(*local_40 + 0x20);
        iVar3 = 5;
        pbVar4 = pbVar5;
        pbVar6 = (byte *)".stab";
        do {
          if (iVar3 == 0) break;
          iVar3 = iVar3 + -1;
          bVar7 = *pbVar4 < *pbVar6;
          bVar8 = *pbVar4 == *pbVar6;
          pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;
          pbVar6 = pbVar6 + (uint)bVar9 * -2 + 1;
        } while (bVar8);
        if ((!bVar7 && !bVar8) == bVar7) {
          sVar2 = strlen((char *)pbVar5);
          iVar3 = 4;
          bVar7 = (undefined1 *)0xffffffef < &stack0xffffff94;
          bVar8 = &stack0x00000000 == (undefined1 *)0x5c;
          pbVar5 = pbVar5 + (sVar2 - 3);
          pbVar4 = (byte *)0x30565e;
          do {
            if (iVar3 == 0) break;
            iVar3 = iVar3 + -1;
            bVar7 = *pbVar5 < *pbVar4;
            bVar8 = *pbVar5 == *pbVar4;
            pbVar5 = pbVar5 + (uint)bVar9 * -2 + 1;
            pbVar4 = pbVar4 + (uint)bVar9 * -2 + 1;
          } while (bVar8);
          if ((!bVar7 && !bVar8) == bVar7) {
            FUN_000a8880();
            iVar3 = FUN_001079e0();
            if (iVar3 != 0) {
              if (((*(int *)(iVar3 + 0x40) != 0) || ((*(byte *)(iVar3 + 0x90) & 4) != 0)) ||
                 ((*(byte *)(iVar3 + 0x90) & 8) != 0)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010ed4d to 0010ed51 has its CatchHandler @ 0010ed52 */
                FUN_000da200();
              }
              *(int *)(iVar3 + 0x3c) = *local_40;
            }
          }
        }
      }
      local_40 = local_40 + 1;
    } while (*(int **)(param_1 + 0x134) != local_40);
  }
  return;
}

