
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void ~Gdb_index(Gdb_index * this, int __in_chrg) */

void __thiscall gold::Gdb_index::~Gdb_index(Gdb_index *this,int __in_chrg)

{
  Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *pGVar1;
  vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_> *pvVar2;
  pointer ppVar3;
  pointer pPVar4;
  pointer pTVar5;
  pointer pCVar6;
  Gdb_symbol **ppGVar7;
  pointer ppvVar8;
  uint uVar9;
  int in_stack_ffffffd8;
  
  pGVar1 = this->gdb_symtab_;
  (this->super_Output_section_data).super_Output_data._vptr_Output_data =
       (_func_int_varargs **)&PTR__Gdb_index_0038bd6c;
  if (pGVar1 != (Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *)0x0) {
    ppGVar7 = pGVar1->hashtab_;
    if (pGVar1->capacity_ != 0) {
      uVar9 = 0;
      do {
        if (ppGVar7[uVar9] != (Gdb_symbol *)0x0) {
          operator_delete(ppGVar7[uVar9],0xc);
          ppGVar7 = pGVar1->hashtab_;
        }
        uVar9 = uVar9 + 1;
      } while (uVar9 < pGVar1->capacity_);
    }
    if (ppGVar7 != (Gdb_symbol **)0x0) {
      operator_delete__(ppGVar7);
    }
    in_stack_ffffffd8 = 0xc;
    operator_delete(pGVar1,0xc);
  }
  ppvVar8 = (this->cu_vector_list_).
            super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>
            ._M_impl._M_start;
  if ((this->cu_vector_list_).
      super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>
      ._M_impl._M_finish != ppvVar8) {
    uVar9 = 0;
    do {
      pvVar2 = ppvVar8[uVar9];
      if (pvVar2 != (vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>
                     *)0x0) {
        ppVar3 = (pvVar2->
                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>
                 )._M_impl._M_start;
        if (ppVar3 != (pointer)0x0) {
          operator_delete(ppVar3);
        }
        in_stack_ffffffd8 = 0xc;
        operator_delete(pvVar2,0xc);
        ppvVar8 = (this->cu_vector_list_).
                  super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>
                  ._M_impl._M_start;
      }
      uVar9 = uVar9 + 1;
    } while (uVar9 < (uint)((int)(this->cu_vector_list_).
                                 super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>
                                 ._M_impl._M_finish - (int)ppvVar8 >> 2));
  }
  Stringpool_template<char>::~Stringpool_template(&this->stringpool_,in_stack_ffffffd8);
  ppvVar8 = (this->cu_vector_list_).
            super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>
            ._M_impl._M_start;
  if (ppvVar8 != (pointer)0x0) {
    operator_delete(ppvVar8);
  }
  pPVar4 = (this->ranges_).
           super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>
           ._M_impl._M_start;
  if (pPVar4 != (pointer)0x0) {
    operator_delete(pPVar4);
  }
  pTVar5 = (this->type_units_).
           super__Vector_base<gold::Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>
           ._M_impl._M_start;
  if (pTVar5 != (pointer)0x0) {
    operator_delete(pTVar5);
  }
  pCVar6 = (this->comp_units_).
           super__Vector_base<gold::Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>
           ._M_impl._M_start;
  if (pCVar6 != (pointer)0x0) {
    operator_delete(pCVar6);
  }
  std::
  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
                 *)&this->cu_pubtype_map_,in_stack_ffffffd8);
  std::
  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
                 *)&this->cu_pubname_map_,in_stack_ffffffd8);
  (this->super_Output_section_data).super_Output_data._vptr_Output_data =
       (_func_int_varargs **)&DAT_0038ab0c;
  Output_data::~Output_data((Output_data *)this,in_stack_ffffffd8);
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_001c1bc0(undefined4 *param_1)

{
  int iVar1;
  int *piVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  
  iVar4 = param_1[0x25];
  *param_1 = &PTR_FUN_0038bd6c;
  if (iVar4 != 0) {
    iVar3 = *(int *)(iVar4 + 8);
    if (*(int *)(iVar4 + 4) != 0) {
      uVar5 = 0;
      do {
        iVar1 = *(int *)(iVar3 + uVar5 * 4);
        if (iVar1 != 0) {
          FUN_001e6d90(iVar1,0xc);
          iVar3 = *(int *)(iVar4 + 8);
        }
        uVar5 = uVar5 + 1;
      } while (uVar5 < *(uint *)(iVar4 + 4));
    }
    if (iVar3 != 0) {
      FUN_001e6d50(iVar3);
    }
    FUN_001e6d90(iVar4,0xc);
  }
  iVar4 = param_1[0x26];
  if (param_1[0x27] != iVar4) {
    uVar5 = 0;
    do {
      piVar2 = *(int **)(iVar4 + uVar5 * 4);
      if (piVar2 != (int *)0x0) {
        if (*piVar2 != 0) {
          FUN_001e6db0(*piVar2);
        }
        FUN_001e6d90(piVar2,0xc);
        iVar4 = param_1[0x26];
      }
      uVar5 = uVar5 + 1;
    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));
  }
  FUN_00172a20(param_1 + 0x2a);
  if (param_1[0x26] != 0) {
    FUN_001e6db0(param_1[0x26]);
  }
  if (param_1[0x22] != 0) {
    FUN_001e6db0(param_1[0x22]);
  }
  if (param_1[0x1f] != 0) {
    FUN_001e6db0(param_1[0x1f]);
  }
  if (param_1[0x1c] != 0) {
    FUN_001e6db0(param_1[0x1c]);
  }
  FUN_001c3eb0(param_1 + 0x12);
  FUN_001c3eb0(param_1 + 0xb);
  *param_1 = &DAT_0038ab0c;
  FUN_000ed850(param_1);
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x1cd437
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x20]
MOV EBP,dword ptr [EDI + 0x94]
LEA EAX,[EBX + 0xffffcd6c]
MOV dword ptr [EDI],EAX
TEST EBP,EBP
JZ 0x001c1c36
MOV EAX,dword ptr [EBP + 0x4]
MOV EDX,dword ptr [EBP + 0x8]
TEST EAX,EAX
JZ 0x001c1c18
XOR ESI,ESI
LEA ESI,[ESI]
MOV EAX,dword ptr [EDX + ESI*0x4]
TEST EAX,EAX
JZ 0x001c1c10
SUB ESP,0x8
PUSH 0xc
PUSH EAX
CALL 0x001e6d90
MOV EDX,dword ptr [EBP + 0x8]
ADD ESP,0x10
ADD ESI,0x1
CMP dword ptr [EBP + 0x4],ESI
JA 0x001c1bf8
TEST EDX,EDX
JZ 0x001c1c28
SUB ESP,0xc
PUSH EDX
CALL 0x001e6d50
ADD ESP,0x10
SUB ESP,0x8
PUSH 0xc
PUSH EBP
CALL 0x001e6d90
ADD ESP,0x10
MOV EDX,dword ptr [EDI + 0x98]
XOR ESI,ESI
CMP dword ptr [EDI + 0x9c],EDX
JZ 0x001c1c90
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EBP,dword ptr [EDX + ESI*0x4]
TEST EBP,EBP
JZ 0x001c1c7e
MOV EAX,dword ptr [EBP]
TEST EAX,EAX
JZ 0x001c1c6a
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
SUB ESP,0x8
PUSH 0xc
PUSH EBP
CALL 0x001e6d90
MOV EDX,dword ptr [EDI + 0x98]
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x9c]
ADD ESI,0x1
SUB EAX,EDX
SAR EAX,0x2
CMP ESI,EAX
JC 0x001c1c50
SUB ESP,0xc
LEA EAX,[EDI + 0xa8]
PUSH EAX
CALL 0x00172a20
MOV EAX,dword ptr [EDI + 0x98]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x001c1cb8
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x88]
TEST EAX,EAX
JZ 0x001c1cce
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x7c]
TEST EAX,EAX
JZ 0x001c1ce1
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x70]
TEST EAX,EAX
JZ 0x001c1cf4
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
SUB ESP,0xc
LEA EAX,[EDI + 0x48]
PUSH EAX
CALL 0x001c3eb0
LEA EAX,[EDI + 0x2c]
MOV dword ptr [ESP],EAX
CALL 0x001c3eb0
LEA EAX,[EBX + 0xffffbb04]
ADD EAX,0x8
MOV dword ptr [EDI],EAX
MOV dword ptr [ESP],EDI
CALL 0x000ed850
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_001c1bc0(undefined4 *param_1)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  iVar4 = param_1[0x25];\n  *param_1 = &PTR_FUN_0038bd6c;\n  if (iVar4 != 0) {\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }\n  iVar4 = param_1[0x26];\n  if (param_1[0x27] != iVar4) {\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }\n  FUN_00172a20(param_1 + 0x2a);\n  if (param_1[0x26] != 0) {\n    FUN_001e6db0(param_1[0x26]);\n  }\n  if (param_1[0x22] != 0) {\n    FUN_001e6db0(param_1[0x22]);\n  }\n  if (param_1[0x1f] != 0) {\n    FUN_001e6db0(param_1[0x1f]);\n  }\n  if (param_1[0x1c] != 0) {\n    FUN_001e6db0(param_1[0x1c]);\n  }\n  FUN_001c3eb0(param_1 + 0x12);\n  FUN_001c3eb0(param_1 + 0xb);\n  *param_1 = &DAT_0038ab0c;\n  FUN_000ed850(param_1);\n  return;\n}\n\n" comment (function_definition "void FUN_001c1bc0(undefined4 *param_1)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  iVar4 = param_1[0x25];\n  *param_1 = &PTR_FUN_0038bd6c;\n  if (iVar4 != 0) {\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }\n  iVar4 = param_1[0x26];\n  if (param_1[0x27] != iVar4) {\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }\n  FUN_00172a20(param_1 + 0x2a);\n  if (param_1[0x26] != 0) {\n    FUN_001e6db0(param_1[0x26]);\n  }\n  if (param_1[0x22] != 0) {\n    FUN_001e6db0(param_1[0x22]);\n  }\n  if (param_1[0x1f] != 0) {\n    FUN_001e6db0(param_1[0x1f]);\n  }\n  if (param_1[0x1c] != 0) {\n    FUN_001e6db0(param_1[0x1c]);\n  }\n  FUN_001c3eb0(param_1 + 0x12);\n  FUN_001c3eb0(param_1 + 0xb);\n  *param_1 = &DAT_0038ab0c;\n  FUN_000ed850(param_1);\n  return;\n}" primitive_type (function_declarator "FUN_001c1bc0(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  iVar4 = param_1[0x25];\n  *param_1 = &PTR_FUN_0038bd6c;\n  if (iVar4 != 0) {\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }\n  iVar4 = param_1[0x26];\n  if (param_1[0x27] != iVar4) {\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }\n  FUN_00172a20(param_1 + 0x2a);\n  if (param_1[0x26] != 0) {\n    FUN_001e6db0(param_1[0x26]);\n  }\n  if (param_1[0x22] != 0) {\n    FUN_001e6db0(param_1[0x22]);\n  }\n  if (param_1[0x1f] != 0) {\n    FUN_001e6db0(param_1[0x1f]);\n  }\n  if (param_1[0x1c] != 0) {\n    FUN_001e6db0(param_1[0x1c]);\n  }\n  FUN_001c3eb0(param_1 + 0x12);\n  FUN_001c3eb0(param_1 + 0xb);\n  *param_1 = &DAT_0038ab0c;\n  FUN_000ed850(param_1);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (expression_statement "iVar4 = param_1[0x25];" (assignment_expression "iVar4 = param_1[0x25]" identifier = (subscript_expression "param_1[0x25]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = &PTR_FUN_0038bd6c;" (assignment_expression "*param_1 = &PTR_FUN_0038bd6c" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_0038bd6c" & identifier)) ;) (if_statement "if (iVar4 != 0) {\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }" { (expression_statement "iVar3 = *(int *)(iVar4 + 8);" (assignment_expression "iVar3 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 4) != 0)" ( (binary_expression "*(int *)(iVar4 + 4) != 0" (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));" do (compound_statement "{\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      }" { (expression_statement "iVar1 = *(int *)(iVar3 + uVar5 * 4);" (assignment_expression "iVar1 = *(int *)(iVar3 + uVar5 * 4)" identifier = (pointer_expression "*(int *)(iVar3 + uVar5 * 4)" * (cast_expression "(int *)(iVar3 + uVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + uVar5 * 4)" ( (binary_expression "iVar3 + uVar5 * 4" identifier + (binary_expression "uVar5 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }" { (expression_statement "FUN_001e6d90(iVar1,0xc);" (call_expression "FUN_001e6d90(iVar1,0xc)" identifier (argument_list "(iVar1,0xc)" ( identifier , number_literal ))) ;) (expression_statement "iVar3 = *(int *)(iVar4 + 8);" (assignment_expression "iVar3 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) })) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 < *(uint *)(iVar4 + 4))" ( (binary_expression "uVar5 < *(uint *)(iVar4 + 4)" identifier < (pointer_expression "*(uint *)(iVar4 + 4)" * (cast_expression "(uint *)(iVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) )) ;) })) (if_statement "if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001e6d50(iVar3);\n    }" { (expression_statement "FUN_001e6d50(iVar3);" (call_expression "FUN_001e6d50(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })) (expression_statement "FUN_001e6d90(iVar4,0xc);" (call_expression "FUN_001e6d90(iVar4,0xc)" identifier (argument_list "(iVar4,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "iVar4 = param_1[0x26];" (assignment_expression "iVar4 = param_1[0x26]" identifier = (subscript_expression "param_1[0x26]" identifier [ number_literal ])) ;) (if_statement "if (param_1[0x27] != iVar4) {\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }" if (parenthesized_expression "(param_1[0x27] != iVar4)" ( (binary_expression "param_1[0x27] != iVar4" (subscript_expression "param_1[0x27]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));" do (compound_statement "{\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    }" { (expression_statement "piVar2 = *(int **)(iVar4 + uVar5 * 4);" (assignment_expression "piVar2 = *(int **)(iVar4 + uVar5 * 4)" identifier = (pointer_expression "*(int **)(iVar4 + uVar5 * 4)" * (cast_expression "(int **)(iVar4 + uVar5 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + uVar5 * 4)" ( (binary_expression "iVar4 + uVar5 * 4" identifier + (binary_expression "uVar5 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }" { (if_statement "if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }" if (parenthesized_expression "(*piVar2 != 0)" ( (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" * identifier) != number_literal) )) (compound_statement "{\n          FUN_001e6db0(*piVar2);\n        }" { (expression_statement "FUN_001e6db0(*piVar2);" (call_expression "FUN_001e6db0(*piVar2)" identifier (argument_list "(*piVar2)" ( (pointer_expression "*piVar2" * identifier) ))) ;) })) (expression_statement "FUN_001e6d90(piVar2,0xc);" (call_expression "FUN_001e6d90(piVar2,0xc)" identifier (argument_list "(piVar2,0xc)" ( identifier , number_literal ))) ;) (expression_statement "iVar4 = param_1[0x26];" (assignment_expression "iVar4 = param_1[0x26]" identifier = (subscript_expression "param_1[0x26]" identifier [ number_literal ])) ;) })) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 < (uint)(param_1[0x27] - iVar4 >> 2))" ( (binary_expression "uVar5 < (uint)(param_1[0x27] - iVar4 >> 2)" identifier < (call_expression "(uint)(param_1[0x27] - iVar4 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[0x27] - iVar4 >> 2)" ( (binary_expression "param_1[0x27] - iVar4 >> 2" (binary_expression "param_1[0x27] - iVar4" (subscript_expression "param_1[0x27]" identifier [ number_literal ]) - identifier) >> number_literal) )))) )) ;) })) (expression_statement "FUN_00172a20(param_1 + 0x2a);" (call_expression "FUN_00172a20(param_1 + 0x2a)" identifier (argument_list "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) ))) ;) (if_statement "if (param_1[0x26] != 0) {\n    FUN_001e6db0(param_1[0x26]);\n  }" if (parenthesized_expression "(param_1[0x26] != 0)" ( (binary_expression "param_1[0x26] != 0" (subscript_expression "param_1[0x26]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(param_1[0x26]);\n  }" { (expression_statement "FUN_001e6db0(param_1[0x26]);" (call_expression "FUN_001e6db0(param_1[0x26])" identifier (argument_list "(param_1[0x26])" ( (subscript_expression "param_1[0x26]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (param_1[0x22] != 0) {\n    FUN_001e6db0(param_1[0x22]);\n  }" if (parenthesized_expression "(param_1[0x22] != 0)" ( (binary_expression "param_1[0x22] != 0" (subscript_expression "param_1[0x22]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(param_1[0x22]);\n  }" { (expression_statement "FUN_001e6db0(param_1[0x22]);" (call_expression "FUN_001e6db0(param_1[0x22])" identifier (argument_list "(param_1[0x22])" ( (subscript_expression "param_1[0x22]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (param_1[0x1f] != 0) {\n    FUN_001e6db0(param_1[0x1f]);\n  }" if (parenthesized_expression "(param_1[0x1f] != 0)" ( (binary_expression "param_1[0x1f] != 0" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(param_1[0x1f]);\n  }" { (expression_statement "FUN_001e6db0(param_1[0x1f]);" (call_expression "FUN_001e6db0(param_1[0x1f])" identifier (argument_list "(param_1[0x1f])" ( (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (param_1[0x1c] != 0) {\n    FUN_001e6db0(param_1[0x1c]);\n  }" if (parenthesized_expression "(param_1[0x1c] != 0)" ( (binary_expression "param_1[0x1c] != 0" (subscript_expression "param_1[0x1c]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(param_1[0x1c]);\n  }" { (expression_statement "FUN_001e6db0(param_1[0x1c]);" (call_expression "FUN_001e6db0(param_1[0x1c])" identifier (argument_list "(param_1[0x1c])" ( (subscript_expression "param_1[0x1c]" identifier [ number_literal ]) ))) ;) })) (expression_statement "FUN_001c3eb0(param_1 + 0x12);" (call_expression "FUN_001c3eb0(param_1 + 0x12)" identifier (argument_list "(param_1 + 0x12)" ( (binary_expression "param_1 + 0x12" identifier + number_literal) ))) ;) (expression_statement "FUN_001c3eb0(param_1 + 0xb);" (call_expression "FUN_001c3eb0(param_1 + 0xb)" identifier (argument_list "(param_1 + 0xb)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) ))) ;) (expression_statement "*param_1 = &DAT_0038ab0c;" (assignment_expression "*param_1 = &DAT_0038ab0c" (pointer_expression "*param_1" * identifier) = (pointer_expression "&DAT_0038ab0c" & identifier)) ;) (expression_statement "FUN_000ed850(param_1);" (call_expression "FUN_000ed850(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: void ~Gdb_index(Gdb_index * this, int __in_chrg) */\n\nvoid __thiscall gold::Gdb_index::~Gdb_index(Gdb_index *this,int __in_chrg)\n\n{\n  Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *pGVar1;\n  vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_> *pvVar2;\n  pointer ppVar3;\n  pointer pPVar4;\n  pointer pTVar5;\n  pointer pCVar6;\n  Gdb_symbol **ppGVar7;\n  pointer ppvVar8;\n  uint uVar9;\n  int in_stack_ffffffd8;\n  \n  pGVar1 = this->gdb_symtab_;\n  (this->super_Output_section_data).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Gdb_index_0038bd6c;\n  if (pGVar1 != (Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *)0x0) {\n    ppGVar7 = pGVar1->hashtab_;\n    if (pGVar1->capacity_ != 0) {\n      uVar9 = 0;\n      do {\n        if (ppGVar7[uVar9] != (Gdb_symbol *)0x0) {\n          operator_delete(ppGVar7[uVar9],0xc);\n          ppGVar7 = pGVar1->hashtab_;\n        }\n        uVar9 = uVar9 + 1;\n      } while (uVar9 < pGVar1->capacity_);\n    }\n    if (ppGVar7 != (Gdb_symbol **)0x0) {\n      operator_delete__(ppGVar7);\n    }\n    in_stack_ffffffd8 = 0xc;\n    operator_delete(pGVar1,0xc);\n  }\n  ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n            ._M_impl._M_start;\n  if ((this->cu_vector_list_).\n      super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n      ._M_impl._M_finish != ppvVar8) {\n    uVar9 = 0;\n    do {\n      pvVar2 = ppvVar8[uVar9];\n      if (pvVar2 != (vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                     *)0x0) {\n        ppVar3 = (pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl._M_start;\n        if (ppVar3 != (pointer)0x0) {\n          operator_delete(ppVar3);\n        }\n        in_stack_ffffffd8 = 0xc;\n        operator_delete(pvVar2,0xc);\n        ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                  ._M_impl._M_start;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < (uint)((int)(this->cu_vector_list_).\n                                 super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish - (int)ppvVar8 >> 2));\n  }\n  Stringpool_template<char>::~Stringpool_template(&this->stringpool_,in_stack_ffffffd8);\n  ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n            ._M_impl._M_start;\n  if (ppvVar8 != (pointer)0x0) {\n    operator_delete(ppvVar8);\n  }\n  pPVar4 = (this->ranges_).\n           super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n           ._M_impl._M_start;\n  if (pPVar4 != (pointer)0x0) {\n    operator_delete(pPVar4);\n  }\n  pTVar5 = (this->type_units_).\n           super__Vector_base<gold::Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>\n           ._M_impl._M_start;\n  if (pTVar5 != (pointer)0x0) {\n    operator_delete(pTVar5);\n  }\n  pCVar6 = (this->comp_units_).\n           super__Vector_base<gold::Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>\n           ._M_impl._M_start;\n  if (pCVar6 != (pointer)0x0) {\n    operator_delete(pCVar6);\n  }\n  std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubtype_map_,in_stack_ffffffd8);\n  std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubname_map_,in_stack_ffffffd8);\n  (this->super_Output_section_data).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&DAT_0038ab0c;\n  Output_data::~Output_data((Output_data *)this,in_stack_ffffffd8);\n  return;\n}\n\n" comment comment (function_definition "void __thiscall gold::Gdb_index::~Gdb_index(Gdb_index *this,int __in_chrg)\n\n{\n  Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *pGVar1;\n  vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_> *pvVar2;\n  pointer ppVar3;\n  pointer pPVar4;\n  pointer pTVar5;\n  pointer pCVar6;\n  Gdb_symbol **ppGVar7;\n  pointer ppvVar8;\n  uint uVar9;\n  int in_stack_ffffffd8;\n  \n  pGVar1 = this->gdb_symtab_;\n  (this->super_Output_section_data).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Gdb_index_0038bd6c;\n  if (pGVar1 != (Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *)0x0) {\n    ppGVar7 = pGVar1->hashtab_;\n    if (pGVar1->capacity_ != 0) {\n      uVar9 = 0;\n      do {\n        if (ppGVar7[uVar9] != (Gdb_symbol *)0x0) {\n          operator_delete(ppGVar7[uVar9],0xc);\n          ppGVar7 = pGVar1->hashtab_;\n        }\n        uVar9 = uVar9 + 1;\n      } while (uVar9 < pGVar1->capacity_);\n    }\n    if (ppGVar7 != (Gdb_symbol **)0x0) {\n      operator_delete__(ppGVar7);\n    }\n    in_stack_ffffffd8 = 0xc;\n    operator_delete(pGVar1,0xc);\n  }\n  ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n            ._M_impl._M_start;\n  if ((this->cu_vector_list_).\n      super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n      ._M_impl._M_finish != ppvVar8) {\n    uVar9 = 0;\n    do {\n      pvVar2 = ppvVar8[uVar9];\n      if (pvVar2 != (vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                     *)0x0) {\n        ppVar3 = (pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl._M_start;\n        if (ppVar3 != (pointer)0x0) {\n          operator_delete(ppVar3);\n        }\n        in_stack_ffffffd8 = 0xc;\n        operator_delete(pvVar2,0xc);\n        ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                  ._M_impl._M_start;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < (uint)((int)(this->cu_vector_list_).\n                                 super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish - (int)ppvVar8 >> 2));\n  }\n  Stringpool_template<char>::~Stringpool_template(&this->stringpool_,in_stack_ffffffd8);\n  ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n            ._M_impl._M_start;\n  if (ppvVar8 != (pointer)0x0) {\n    operator_delete(ppvVar8);\n  }\n  pPVar4 = (this->ranges_).\n           super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n           ._M_impl._M_start;\n  if (pPVar4 != (pointer)0x0) {\n    operator_delete(pPVar4);\n  }\n  pTVar5 = (this->type_units_).\n           super__Vector_base<gold::Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>\n           ._M_impl._M_start;\n  if (pTVar5 != (pointer)0x0) {\n    operator_delete(pTVar5);\n  }\n  pCVar6 = (this->comp_units_).\n           super__Vector_base<gold::Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>\n           ._M_impl._M_start;\n  if (pCVar6 != (pointer)0x0) {\n    operator_delete(pCVar6);\n  }\n  std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubtype_map_,in_stack_ffffffd8);\n  std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubname_map_,in_stack_ffffffd8);\n  (this->super_Output_section_data).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&DAT_0038ab0c;\n  Output_data::~Output_data((Output_data *)this,in_stack_ffffffd8);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Gdb_index::~" identifier : : identifier : : ~) (function_declarator "Gdb_index(Gdb_index *this,int __in_chrg)" identifier (parameter_list "(Gdb_index *this,int __in_chrg)" ( (parameter_declaration "Gdb_index *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "int __in_chrg" primitive_type identifier) ))) (compound_statement "{\n  Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *pGVar1;\n  vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_> *pvVar2;\n  pointer ppVar3;\n  pointer pPVar4;\n  pointer pTVar5;\n  pointer pCVar6;\n  Gdb_symbol **ppGVar7;\n  pointer ppvVar8;\n  uint uVar9;\n  int in_stack_ffffffd8;\n  \n  pGVar1 = this->gdb_symtab_;\n  (this->super_Output_section_data).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Gdb_index_0038bd6c;\n  if (pGVar1 != (Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *)0x0) {\n    ppGVar7 = pGVar1->hashtab_;\n    if (pGVar1->capacity_ != 0) {\n      uVar9 = 0;\n      do {\n        if (ppGVar7[uVar9] != (Gdb_symbol *)0x0) {\n          operator_delete(ppGVar7[uVar9],0xc);\n          ppGVar7 = pGVar1->hashtab_;\n        }\n        uVar9 = uVar9 + 1;\n      } while (uVar9 < pGVar1->capacity_);\n    }\n    if (ppGVar7 != (Gdb_symbol **)0x0) {\n      operator_delete__(ppGVar7);\n    }\n    in_stack_ffffffd8 = 0xc;\n    operator_delete(pGVar1,0xc);\n  }\n  ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n            ._M_impl._M_start;\n  if ((this->cu_vector_list_).\n      super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n      ._M_impl._M_finish != ppvVar8) {\n    uVar9 = 0;\n    do {\n      pvVar2 = ppvVar8[uVar9];\n      if (pvVar2 != (vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                     *)0x0) {\n        ppVar3 = (pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl._M_start;\n        if (ppVar3 != (pointer)0x0) {\n          operator_delete(ppVar3);\n        }\n        in_stack_ffffffd8 = 0xc;\n        operator_delete(pvVar2,0xc);\n        ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                  ._M_impl._M_start;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < (uint)((int)(this->cu_vector_list_).\n                                 super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish - (int)ppvVar8 >> 2));\n  }\n  Stringpool_template<char>::~Stringpool_template(&this->stringpool_,in_stack_ffffffd8);\n  ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n            ._M_impl._M_start;\n  if (ppvVar8 != (pointer)0x0) {\n    operator_delete(ppvVar8);\n  }\n  pPVar4 = (this->ranges_).\n           super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n           ._M_impl._M_start;\n  if (pPVar4 != (pointer)0x0) {\n    operator_delete(pPVar4);\n  }\n  pTVar5 = (this->type_units_).\n           super__Vector_base<gold::Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>\n           ._M_impl._M_start;\n  if (pTVar5 != (pointer)0x0) {\n    operator_delete(pTVar5);\n  }\n  pCVar6 = (this->comp_units_).\n           super__Vector_base<gold::Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>\n           ._M_impl._M_start;\n  if (pCVar6 != (pointer)0x0) {\n    operator_delete(pCVar6);\n  }\n  std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubtype_map_,in_stack_ffffffd8);\n  std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubname_map_,in_stack_ffffffd8);\n  (this->super_Output_section_data).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&DAT_0038ab0c;\n  Output_data::~Output_data((Output_data *)this,in_stack_ffffffd8);\n  return;\n}" { (ERROR "Gdb_hashtab<gold::" (binary_expression "Gdb_hashtab<gold" identifier < identifier) : :) (labeled_statement "Gdb_index::Gdb_symbol> *pGVar1;" statement_identifier : (ERROR ":" :) (expression_statement "Gdb_symbol> *pGVar1;" (binary_expression "Gdb_symbol> *pGVar1" identifier > (pointer_expression "*pGVar1" * identifier)) ;)) (ERROR "vector<std::pair<int,_unsigned_char>,_std::allocator<std::" (comma_expression "vector<std::pair<int,_unsigned_char>,_std" (binary_expression "vector<std::pair<int" (binary_expression "vector<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (expression_statement "pair<int,_unsigned_char>_>_> *pvVar2;" (comma_expression "pair<int,_unsigned_char>_>_> *pvVar2" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_> *pvVar2" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*pvVar2" * identifier))) ;) (declaration "pointer ppVar3;" type_identifier identifier ;) (declaration "pointer pPVar4;" type_identifier identifier ;) (declaration "pointer pTVar5;" type_identifier identifier ;) (declaration "pointer pCVar6;" type_identifier identifier ;) (declaration "Gdb_symbol **ppGVar7;" type_identifier (pointer_declarator "**ppGVar7" * (pointer_declarator "*ppGVar7" * identifier)) ;) (declaration "pointer ppvVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int in_stack_ffffffd8;" primitive_type identifier ;) (expression_statement "pGVar1 = this->gdb_symtab_;" (assignment_expression "pGVar1 = this->gdb_symtab_" identifier = (field_expression "this->gdb_symtab_" identifier -> field_identifier)) ;) (expression_statement "(this->super_Output_section_data).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Gdb_index_0038bd6c;" (assignment_expression "(this->super_Output_section_data).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Gdb_index_0038bd6c" (field_expression "(this->super_Output_section_data).super_Output_data._vptr_Output_data" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Gdb_index_0038bd6c" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Gdb_index_0038bd6c" & identifier))) ;) (if_statement "if (pGVar1 != (Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *)0x0) {\n    ppGVar7 = pGVar1->hashtab_;\n    if (pGVar1->capacity_ != 0) {\n      uVar9 = 0;\n      do {\n        if (ppGVar7[uVar9] != (Gdb_symbol *)0x0) {\n          operator_delete(ppGVar7[uVar9],0xc);\n          ppGVar7 = pGVar1->hashtab_;\n        }\n        uVar9 = uVar9 + 1;\n      } while (uVar9 < pGVar1->capacity_);\n    }\n    if (ppGVar7 != (Gdb_symbol **)0x0) {\n      operator_delete__(ppGVar7);\n    }\n    in_stack_ffffffd8 = 0xc;\n    operator_delete(pGVar1,0xc);\n  }" if (parenthesized_expression "(pGVar1 != (Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *)0x0)" ( (binary_expression "pGVar1 != (Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *)0x0)" identifier != (parenthesized_expression "(Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *)0x0)" ( (binary_expression "Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *)0x0" (binary_expression "Gdb_hashtab<gold" identifier < identifier) (ERROR "::Gdb_index::Gdb_symbol" : : identifier : : identifier) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n    ppGVar7 = pGVar1->hashtab_;\n    if (pGVar1->capacity_ != 0) {\n      uVar9 = 0;\n      do {\n        if (ppGVar7[uVar9] != (Gdb_symbol *)0x0) {\n          operator_delete(ppGVar7[uVar9],0xc);\n          ppGVar7 = pGVar1->hashtab_;\n        }\n        uVar9 = uVar9 + 1;\n      } while (uVar9 < pGVar1->capacity_);\n    }\n    if (ppGVar7 != (Gdb_symbol **)0x0) {\n      operator_delete__(ppGVar7);\n    }\n    in_stack_ffffffd8 = 0xc;\n    operator_delete(pGVar1,0xc);\n  }" { (expression_statement "ppGVar7 = pGVar1->hashtab_;" (assignment_expression "ppGVar7 = pGVar1->hashtab_" identifier = (field_expression "pGVar1->hashtab_" identifier -> field_identifier)) ;) (if_statement "if (pGVar1->capacity_ != 0) {\n      uVar9 = 0;\n      do {\n        if (ppGVar7[uVar9] != (Gdb_symbol *)0x0) {\n          operator_delete(ppGVar7[uVar9],0xc);\n          ppGVar7 = pGVar1->hashtab_;\n        }\n        uVar9 = uVar9 + 1;\n      } while (uVar9 < pGVar1->capacity_);\n    }" if (parenthesized_expression "(pGVar1->capacity_ != 0)" ( (binary_expression "pGVar1->capacity_ != 0" (field_expression "pGVar1->capacity_" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      uVar9 = 0;\n      do {\n        if (ppGVar7[uVar9] != (Gdb_symbol *)0x0) {\n          operator_delete(ppGVar7[uVar9],0xc);\n          ppGVar7 = pGVar1->hashtab_;\n        }\n        uVar9 = uVar9 + 1;\n      } while (uVar9 < pGVar1->capacity_);\n    }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (ppGVar7[uVar9] != (Gdb_symbol *)0x0) {\n          operator_delete(ppGVar7[uVar9],0xc);\n          ppGVar7 = pGVar1->hashtab_;\n        }\n        uVar9 = uVar9 + 1;\n      } while (uVar9 < pGVar1->capacity_);" do (compound_statement "{\n        if (ppGVar7[uVar9] != (Gdb_symbol *)0x0) {\n          operator_delete(ppGVar7[uVar9],0xc);\n          ppGVar7 = pGVar1->hashtab_;\n        }\n        uVar9 = uVar9 + 1;\n      }" { (if_statement "if (ppGVar7[uVar9] != (Gdb_symbol *)0x0) {\n          operator_delete(ppGVar7[uVar9],0xc);\n          ppGVar7 = pGVar1->hashtab_;\n        }" if (parenthesized_expression "(ppGVar7[uVar9] != (Gdb_symbol *)0x0)" ( (binary_expression "ppGVar7[uVar9] != (Gdb_symbol *)0x0" (subscript_expression "ppGVar7[uVar9]" identifier [ identifier ]) != (cast_expression "(Gdb_symbol *)0x0" ( (type_descriptor "Gdb_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          operator_delete(ppGVar7[uVar9],0xc);\n          ppGVar7 = pGVar1->hashtab_;\n        }" { (expression_statement "operator_delete(ppGVar7[uVar9],0xc);" (call_expression "operator_delete(ppGVar7[uVar9],0xc)" identifier (argument_list "(ppGVar7[uVar9],0xc)" ( (subscript_expression "ppGVar7[uVar9]" identifier [ identifier ]) , number_literal ))) ;) (expression_statement "ppGVar7 = pGVar1->hashtab_;" (assignment_expression "ppGVar7 = pGVar1->hashtab_" identifier = (field_expression "pGVar1->hashtab_" identifier -> field_identifier)) ;) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 < pGVar1->capacity_)" ( (binary_expression "uVar9 < pGVar1->capacity_" identifier < (field_expression "pGVar1->capacity_" identifier -> field_identifier)) )) ;) })) (if_statement "if (ppGVar7 != (Gdb_symbol **)0x0) {\n      operator_delete__(ppGVar7);\n    }" if (parenthesized_expression "(ppGVar7 != (Gdb_symbol **)0x0)" ( (binary_expression "ppGVar7 != (Gdb_symbol **)0x0" identifier != (cast_expression "(Gdb_symbol **)0x0" ( (type_descriptor "Gdb_symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      operator_delete__(ppGVar7);\n    }" { (expression_statement "operator_delete__(ppGVar7);" (call_expression "operator_delete__(ppGVar7)" identifier (argument_list "(ppGVar7)" ( identifier ))) ;) })) (expression_statement "in_stack_ffffffd8 = 0xc;" (assignment_expression "in_stack_ffffffd8 = 0xc" identifier = number_literal) ;) (expression_statement "operator_delete(pGVar1,0xc);" (call_expression "operator_delete(pGVar1,0xc)" identifier (argument_list "(pGVar1,0xc)" ( identifier , number_literal ))) ;) })) (ERROR "ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::" (comma_expression "ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std" (binary_expression "ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std::pair<int" (binary_expression "ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std" (assignment_expression "ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std" identifier = (binary_expression "(this->cu_vector_list_).\n            super__Vector_base<std" (field_expression "(this->cu_vector_list_).\n            super__Vector_base" (parenthesized_expression "(this->cu_vector_list_)" ( (field_expression "this->cu_vector_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_unsigned_char>_>_>*,_std" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_>*,_std" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_unsigned_char>,_std" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (expression_statement "pair<int,_unsigned_char>_>_>*>_>\n            ._M_impl._M_start;" (comma_expression "pair<int,_unsigned_char>_>_>*>_>\n            ._M_impl._M_start" (binary_expression "pair<int" identifier < identifier) , (field_expression "_unsigned_char>_>_>*>_>\n            ._M_impl._M_start" (field_expression "_unsigned_char>_>_>*>_>\n            ._M_impl" (binary_expression "_unsigned_char>_>_>*>_" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier)) ;) (if_statement "if ((this->cu_vector_list_).\n      super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n      ._M_impl._M_finish != ppvVar8) {\n    uVar9 = 0;\n    do {\n      pvVar2 = ppvVar8[uVar9];\n      if (pvVar2 != (vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                     *)0x0) {\n        ppVar3 = (pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl._M_start;\n        if (ppVar3 != (pointer)0x0) {\n          operator_delete(ppVar3);\n        }\n        in_stack_ffffffd8 = 0xc;\n        operator_delete(pvVar2,0xc);\n        ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                  ._M_impl._M_start;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < (uint)((int)(this->cu_vector_list_).\n                                 super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish - (int)ppvVar8 >> 2));\n  }" if (parenthesized_expression "((this->cu_vector_list_).\n      super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n      ._M_impl._M_finish != ppvVar8)" ( (ERROR "(this->cu_vector_list_).\n      super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::" (comma_expression "(this->cu_vector_list_).\n      super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std" (binary_expression "(this->cu_vector_list_).\n      super__Vector_base<std::vector<std::pair<int" (binary_expression "(this->cu_vector_list_).\n      super__Vector_base<std::vector<std" (binary_expression "(this->cu_vector_list_).\n      super__Vector_base<std" (field_expression "(this->cu_vector_list_).\n      super__Vector_base" (parenthesized_expression "(this->cu_vector_list_)" ( (field_expression "this->cu_vector_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_unsigned_char>_>_>*,_std" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_>*,_std" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_unsigned_char>,_std" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (comma_expression "pair<int,_unsigned_char>_>_>*>_>\n      ._M_impl._M_finish != ppvVar8" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_>*>_>\n      ._M_impl._M_finish != ppvVar8" (field_expression "_unsigned_char>_>_>*>_>\n      ._M_impl._M_finish" (field_expression "_unsigned_char>_>_>*>_>\n      ._M_impl" (binary_expression "_unsigned_char>_>_>*>_" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) != identifier)) )) (compound_statement "{\n    uVar9 = 0;\n    do {\n      pvVar2 = ppvVar8[uVar9];\n      if (pvVar2 != (vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                     *)0x0) {\n        ppVar3 = (pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl._M_start;\n        if (ppVar3 != (pointer)0x0) {\n          operator_delete(ppVar3);\n        }\n        in_stack_ffffffd8 = 0xc;\n        operator_delete(pvVar2,0xc);\n        ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                  ._M_impl._M_start;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < (uint)((int)(this->cu_vector_list_).\n                                 super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish - (int)ppvVar8 >> 2));\n  }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n      pvVar2 = ppvVar8[uVar9];\n      if (pvVar2 != (vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                     *)0x0) {\n        ppVar3 = (pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl._M_start;\n        if (ppVar3 != (pointer)0x0) {\n          operator_delete(ppVar3);\n        }\n        in_stack_ffffffd8 = 0xc;\n        operator_delete(pvVar2,0xc);\n        ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                  ._M_impl._M_start;\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 < (uint)((int)(this->cu_vector_list_).\n                                 super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish - (int)ppvVar8 >> 2));" do (compound_statement "{\n      pvVar2 = ppvVar8[uVar9];\n      if (pvVar2 != (vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                     *)0x0) {\n        ppVar3 = (pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl._M_start;\n        if (ppVar3 != (pointer)0x0) {\n          operator_delete(ppVar3);\n        }\n        in_stack_ffffffd8 = 0xc;\n        operator_delete(pvVar2,0xc);\n        ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                  ._M_impl._M_start;\n      }\n      uVar9 = uVar9 + 1;\n    }" { (expression_statement "pvVar2 = ppvVar8[uVar9];" (assignment_expression "pvVar2 = ppvVar8[uVar9]" identifier = (subscript_expression "ppvVar8[uVar9]" identifier [ identifier ])) ;) (if_statement "if (pvVar2 != (vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                     *)0x0) {\n        ppVar3 = (pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl._M_start;\n        if (ppVar3 != (pointer)0x0) {\n          operator_delete(ppVar3);\n        }\n        in_stack_ffffffd8 = 0xc;\n        operator_delete(pvVar2,0xc);\n        ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                  ._M_impl._M_start;\n      }" if (parenthesized_expression "(pvVar2 != (vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                     *)0x0)" ( (binary_expression "pvVar2 != (vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                     *)0x0)" identifier != (parenthesized_expression "(vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                     *)0x0)" ( (ERROR "vector<std::pair<int,_unsigned_char>,_std::allocator<std::" (comma_expression "vector<std::pair<int,_unsigned_char>,_std" (binary_expression "vector<std::pair<int" (binary_expression "vector<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (comma_expression "pair<int,_unsigned_char>_>_>\n                     *)0x0" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_>\n                     *)0x0" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) )) (compound_statement "{\n        ppVar3 = (pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl._M_start;\n        if (ppVar3 != (pointer)0x0) {\n          operator_delete(ppVar3);\n        }\n        in_stack_ffffffd8 = 0xc;\n        operator_delete(pvVar2,0xc);\n        ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                  ._M_impl._M_start;\n      }" { (expression_statement "ppVar3 = (pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl._M_start;" (assignment_expression "ppVar3 = (pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl._M_start" identifier = (field_expression "(pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl._M_start" (field_expression "(pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )._M_impl" (parenthesized_expression "(pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                 )" ( (ERROR "pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::" (comma_expression "pvVar2->\n                 super__Vector_base<std::pair<int,_unsigned_char>,_std" (binary_expression "pvVar2->\n                 super__Vector_base<std::pair<int" (binary_expression "pvVar2->\n                 super__Vector_base<std" (field_expression "pvVar2->\n                 super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (comma_expression "pair<int,_unsigned_char>_>_" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier)) ;) (if_statement "if (ppVar3 != (pointer)0x0) {\n          operator_delete(ppVar3);\n        }" if (parenthesized_expression "(ppVar3 != (pointer)0x0)" ( (binary_expression "ppVar3 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n          operator_delete(ppVar3);\n        }" { (expression_statement "operator_delete(ppVar3);" (call_expression "operator_delete(ppVar3)" identifier (argument_list "(ppVar3)" ( identifier ))) ;) })) (expression_statement "in_stack_ffffffd8 = 0xc;" (assignment_expression "in_stack_ffffffd8 = 0xc" identifier = number_literal) ;) (expression_statement "operator_delete(pvVar2,0xc);" (call_expression "operator_delete(pvVar2,0xc)" identifier (argument_list "(pvVar2,0xc)" ( identifier , number_literal ))) ;) (ERROR "ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::" (comma_expression "ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std" (binary_expression "ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std::pair<int" (binary_expression "ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std::vector<std" (assignment_expression "ppvVar8 = (this->cu_vector_list_).\n                  super__Vector_base<std" identifier = (binary_expression "(this->cu_vector_list_).\n                  super__Vector_base<std" (field_expression "(this->cu_vector_list_).\n                  super__Vector_base" (parenthesized_expression "(this->cu_vector_list_)" ( (field_expression "this->cu_vector_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_unsigned_char>_>_>*,_std" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_>*,_std" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_unsigned_char>,_std" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (expression_statement "pair<int,_unsigned_char>_>_>*>_>\n                  ._M_impl._M_start;" (comma_expression "pair<int,_unsigned_char>_>_>*>_>\n                  ._M_impl._M_start" (binary_expression "pair<int" identifier < identifier) , (field_expression "_unsigned_char>_>_>*>_>\n                  ._M_impl._M_start" (field_expression "_unsigned_char>_>_>*>_>\n                  ._M_impl" (binary_expression "_unsigned_char>_>_>*>_" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier)) ;) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 < (uint)((int)(this->cu_vector_list_).\n                                 super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish - (int)ppvVar8 >> 2))" ( (binary_expression "uVar9 < (uint)((int)(this->cu_vector_list_).\n                                 super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish - (int)ppvVar8 >> 2)" identifier < (call_expression "(uint)((int)(this->cu_vector_list_).\n                                 super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish - (int)ppvVar8 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(this->cu_vector_list_).\n                                 super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish - (int)ppvVar8 >> 2)" ( (binary_expression "(int)(this->cu_vector_list_).\n                                 super__Vector_base<std::vector<std::pair<int" (binary_expression "(int)(this->cu_vector_list_).\n                                 super__Vector_base<std::vector<std" (binary_expression "(int)(this->cu_vector_list_).\n                                 super__Vector_base<std" (cast_expression "(int)(this->cu_vector_list_).\n                                 super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->cu_vector_list_).\n                                 super__Vector_base" (parenthesized_expression "(this->cu_vector_list_)" ( (field_expression "this->cu_vector_list_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , identifier (ERROR ">" >) , (ERROR "_std::allocator<std::" identifier : : (binary_expression "allocator<std" identifier < identifier) : :) (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int" (binary_expression "_unsigned_char>_>_>*,_std::allocator<std::vector<std" (binary_expression "_unsigned_char>_>_>*,_std::allocator<std" (binary_expression "_unsigned_char>_>_>*,_std" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , identifier (ERROR ">" >) , (ERROR "_std::allocator<std::" identifier : : (binary_expression "allocator<std" identifier < identifier) : :) (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish - (int)ppvVar8 >> 2" (binary_expression "_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish - (int)ppvVar8" (field_expression "_unsigned_char>_>_>*>_>\n                                 ._M_impl._M_finish" (field_expression "_unsigned_char>_>_>*>_>\n                                 ._M_impl" (binary_expression "_unsigned_char>_>_>*>_" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppvVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) ;) })) (expression_statement "Stringpool_template<char>::~Stringpool_template(&this->stringpool_,in_stack_ffffffd8);" (binary_expression "Stringpool_template<char>::~Stringpool_template(&this->stringpool_,in_stack_ffffffd8)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (unary_expression "~Stringpool_template(&this->stringpool_,in_stack_ffffffd8)" ~ (call_expression "Stringpool_template(&this->stringpool_,in_stack_ffffffd8)" identifier (argument_list "(&this->stringpool_,in_stack_ffffffd8)" ( (pointer_expression "&this->stringpool_" & (field_expression "this->stringpool_" identifier -> field_identifier)) , identifier ))))) ;) (ERROR "ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::" (comma_expression "ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std" (binary_expression "ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std::pair<int" (binary_expression "ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std::vector<std" (assignment_expression "ppvVar8 = (this->cu_vector_list_).\n            super__Vector_base<std" identifier = (binary_expression "(this->cu_vector_list_).\n            super__Vector_base<std" (field_expression "(this->cu_vector_list_).\n            super__Vector_base" (parenthesized_expression "(this->cu_vector_list_)" ( (field_expression "this->cu_vector_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_unsigned_char>_>_>*,_std" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_>*,_std" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_unsigned_char>,_std" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (expression_statement "pair<int,_unsigned_char>_>_>*>_>\n            ._M_impl._M_start;" (comma_expression "pair<int,_unsigned_char>_>_>*>_>\n            ._M_impl._M_start" (binary_expression "pair<int" identifier < identifier) , (field_expression "_unsigned_char>_>_>*>_>\n            ._M_impl._M_start" (field_expression "_unsigned_char>_>_>*>_>\n            ._M_impl" (binary_expression "_unsigned_char>_>_>*>_" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier)) ;) (if_statement "if (ppvVar8 != (pointer)0x0) {\n    operator_delete(ppvVar8);\n  }" if (parenthesized_expression "(ppvVar8 != (pointer)0x0)" ( (binary_expression "ppvVar8 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    operator_delete(ppvVar8);\n  }" { (expression_statement "operator_delete(ppvVar8);" (call_expression "operator_delete(ppvVar8)" identifier (argument_list "(ppvVar8)" ( identifier ))) ;) })) (ERROR "pPVar4 = (this->ranges_).\n           super__Vector_base<gold::" (assignment_expression "pPVar4 = (this->ranges_).\n           super__Vector_base<gold" identifier = (binary_expression "(this->ranges_).\n           super__Vector_base<gold" (field_expression "(this->ranges_).\n           super__Vector_base" (parenthesized_expression "(this->ranges_)" ( (field_expression "this->ranges_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n           ._M_impl._M_start;" statement_identifier (ERROR "::Per_cu_range_list,_std::allocator<gold:" : : (comma_expression "Per_cu_range_list,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Gdb_index::Per_cu_range_list>_>\n           ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Per_cu_range_list>_>\n           ._M_impl._M_start;" (field_expression "Per_cu_range_list>_>\n           ._M_impl._M_start" (field_expression "Per_cu_range_list>_>\n           ._M_impl" (binary_expression "Per_cu_range_list>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (if_statement "if (pPVar4 != (pointer)0x0) {\n    operator_delete(pPVar4);\n  }" if (parenthesized_expression "(pPVar4 != (pointer)0x0)" ( (binary_expression "pPVar4 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    operator_delete(pPVar4);\n  }" { (expression_statement "operator_delete(pPVar4);" (call_expression "operator_delete(pPVar4)" identifier (argument_list "(pPVar4)" ( identifier ))) ;) })) (ERROR "pTVar5 = (this->type_units_).\n           super__Vector_base<gold::" (assignment_expression "pTVar5 = (this->type_units_).\n           super__Vector_base<gold" identifier = (binary_expression "(this->type_units_).\n           super__Vector_base<gold" (field_expression "(this->type_units_).\n           super__Vector_base" (parenthesized_expression "(this->type_units_)" ( (field_expression "this->type_units_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>\n           ._M_impl._M_start;" statement_identifier (ERROR "::Type_unit,_std::allocator<gold:" : : (comma_expression "Type_unit,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Gdb_index::Type_unit>_>\n           ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Type_unit>_>\n           ._M_impl._M_start;" (field_expression "Type_unit>_>\n           ._M_impl._M_start" (field_expression "Type_unit>_>\n           ._M_impl" (binary_expression "Type_unit>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (if_statement "if (pTVar5 != (pointer)0x0) {\n    operator_delete(pTVar5);\n  }" if (parenthesized_expression "(pTVar5 != (pointer)0x0)" ( (binary_expression "pTVar5 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    operator_delete(pTVar5);\n  }" { (expression_statement "operator_delete(pTVar5);" (call_expression "operator_delete(pTVar5)" identifier (argument_list "(pTVar5)" ( identifier ))) ;) })) (ERROR "pCVar6 = (this->comp_units_).\n           super__Vector_base<gold::" (assignment_expression "pCVar6 = (this->comp_units_).\n           super__Vector_base<gold" identifier = (binary_expression "(this->comp_units_).\n           super__Vector_base<gold" (field_expression "(this->comp_units_).\n           super__Vector_base" (parenthesized_expression "(this->comp_units_)" ( (field_expression "this->comp_units_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>\n           ._M_impl._M_start;" statement_identifier (ERROR "::Comp_unit,_std::allocator<gold:" : : (comma_expression "Comp_unit,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Gdb_index::Comp_unit>_>\n           ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Comp_unit>_>\n           ._M_impl._M_start;" (field_expression "Comp_unit>_>\n           ._M_impl._M_start" (field_expression "Comp_unit>_>\n           ._M_impl" (binary_expression "Comp_unit>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (if_statement "if (pCVar6 != (pointer)0x0) {\n    operator_delete(pCVar6);\n  }" if (parenthesized_expression "(pCVar6 != (pointer)0x0)" ( (binary_expression "pCVar6 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n    operator_delete(pCVar6);\n  }" { (expression_statement "operator_delete(pCVar6);" (call_expression "operator_delete(pCVar6)" identifier (argument_list "(pCVar6)" ( identifier ))) ;) })) (ERROR "std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std" identifier (ERROR "::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>" : : (comma_expression "_Hashtable<long_long_int,_std" (binary_expression "_Hashtable<long_long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_long_int_const,_long_long_int>,_std" (binary_expression "pair<long_long_int_const" identifier < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_int_const,_long_long_int>_>,_std" (binary_expression "pair<long_long_int_const" identifier < identifier) , (binary_expression "_long_long_int>_>,_std" (binary_expression "_long_long_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (comma_expression "__detail::_Select1st,_std::equal_to<long_long_int>,_std" identifier (ERROR "::_Select1st,_std::equal_to<long_long_int>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_long_int" identifier < identifier) >) , identifier) : : (binary_expression "hash<long_long_int" identifier < identifier) >) , identifier) : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : :) (expression_statement "_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubtype_map_,in_stack_ffffffd8);" (comma_expression "_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubtype_map_,in_stack_ffffffd8)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubtype_map_,in_stack_ffffffd8)" identifier , (binary_expression "_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubtype_map_,in_stack_ffffffd8)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (unary_expression "~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubtype_map_,in_stack_ffffffd8)" ~ (call_expression "_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubtype_map_,in_stack_ffffffd8)" identifier (argument_list "((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubtype_map_,in_stack_ffffffd8)" ( (binary_expression "(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubtype_map_" (parenthesized_expression "(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)" ( (ERROR "_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<long_long_int,_std" (binary_expression "_Hashtable<long_long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_long_int_const,_long_long_int>,_std" (binary_expression "pair<long_long_int_const" identifier < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_int_const,_long_long_int>_>,_std" (binary_expression "pair<long_long_int_const" identifier < identifier) , (binary_expression "_long_long_int>_>,_std" (binary_expression "_long_long_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_long_int>,_std" (binary_expression "equal_to<long_long_int" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<long_long_int>,_std" (binary_expression "hash<long_long_int" identifier < identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<false,_false,_true>_>\n                 *" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n                 *" identifier , (binary_expression "_true>_>\n                 *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->cu_pubtype_map_" identifier -> field_identifier)) , identifier ))))))) ;) (ERROR "std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std" identifier (ERROR "::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>" : : (comma_expression "_Hashtable<long_long_int,_std" (binary_expression "_Hashtable<long_long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_long_int_const,_long_long_int>,_std" (binary_expression "pair<long_long_int_const" identifier < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_int_const,_long_long_int>_>,_std" (binary_expression "pair<long_long_int_const" identifier < identifier) , (binary_expression "_long_long_int>_>,_std" (binary_expression "_long_long_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (comma_expression "__detail::_Select1st,_std::equal_to<long_long_int>,_std" identifier (ERROR "::_Select1st,_std::equal_to<long_long_int>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_long_int" identifier < identifier) >) , identifier) : : (binary_expression "hash<long_long_int" identifier < identifier) >) , identifier) : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : :) (expression_statement "_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubname_map_,in_stack_ffffffd8);" (comma_expression "_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubname_map_,in_stack_ffffffd8)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubname_map_,in_stack_ffffffd8)" identifier , (binary_expression "_true>_>\n  ::~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubname_map_,in_stack_ffffffd8)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (unary_expression "~_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubname_map_,in_stack_ffffffd8)" ~ (call_expression "_Hashtable((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubname_map_,in_stack_ffffffd8)" identifier (argument_list "((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubname_map_,in_stack_ffffffd8)" ( (binary_expression "(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)&this->cu_pubname_map_" (parenthesized_expression "(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                 *)" ( (ERROR "_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<long_long_int,_std" (binary_expression "_Hashtable<long_long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_long_int_const,_long_long_int>,_std" (binary_expression "pair<long_long_int_const" identifier < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_int_const,_long_long_int>_>,_std" (binary_expression "pair<long_long_int_const" identifier < identifier) , (binary_expression "_long_long_int>_>,_std" (binary_expression "_long_long_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_long_int>,_std" (binary_expression "equal_to<long_long_int" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<long_long_int>,_std" (binary_expression "hash<long_long_int" identifier < identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<false,_false,_true>_>\n                 *" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n                 *" identifier , (binary_expression "_true>_>\n                 *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->cu_pubname_map_" identifier -> field_identifier)) , identifier ))))))) ;) (expression_statement "(this->super_Output_section_data).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&DAT_0038ab0c;" (assignment_expression "(this->super_Output_section_data).super_Output_data._vptr_Output_data =\n       (_func_int_varargs **)&DAT_0038ab0c" (field_expression "(this->super_Output_section_data).super_Output_data._vptr_Output_data" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&DAT_0038ab0c" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_0038ab0c" & identifier))) ;) (labeled_statement "Output_data::~Output_data((Output_data *)this,in_stack_ffffffd8);" statement_identifier : (ERROR ":" :) (expression_statement "~Output_data((Output_data *)this,in_stack_ffffffd8);" (unary_expression "~Output_data((Output_data *)this,in_stack_ffffffd8)" ~ (call_expression "Output_data((Output_data *)this,in_stack_ffffffd8)" identifier (argument_list "((Output_data *)this,in_stack_ffffffd8)" ( (cast_expression "(Output_data *)this" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001c1bc0(undefined4 *param_1)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  iVar4 = param_1[0x25];\n  *param_1 = &PTR_FUN_0038bd6c;\n  if (iVar4 != 0) {\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }\n  iVar4 = param_1[0x26];\n  if (param_1[0x27] != iVar4) {\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }\n  FUN_00172a20(param_1 + 0x2a);\n  if (param_1[0x26] != 0) {\n    FUN_001e6db0(param_1[0x26]);\n  }\n  if (param_1[0x22] != 0) {\n    FUN_001e6db0(param_1[0x22]);\n  }\n  if (param_1[0x1f] != 0) {\n    FUN_001e6db0(param_1[0x1f]);\n  }\n  if (param_1[0x1c] != 0) {\n    FUN_001e6db0(param_1[0x1c]);\n  }\n  FUN_001c3eb0(param_1 + 0x12);\n  FUN_001c3eb0(param_1 + 0xb);\n  *param_1 = &DAT_0038ab0c;\n  FUN_000ed850(param_1);\n  return;\n}\n\n" (function_definition "void FUN_001c1bc0(undefined4 *param_1)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  iVar4 = param_1[0x25];\n  *param_1 = &PTR_FUN_0038bd6c;\n  if (iVar4 != 0) {\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }\n  iVar4 = param_1[0x26];\n  if (param_1[0x27] != iVar4) {\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }\n  FUN_00172a20(param_1 + 0x2a);\n  if (param_1[0x26] != 0) {\n    FUN_001e6db0(param_1[0x26]);\n  }\n  if (param_1[0x22] != 0) {\n    FUN_001e6db0(param_1[0x22]);\n  }\n  if (param_1[0x1f] != 0) {\n    FUN_001e6db0(param_1[0x1f]);\n  }\n  if (param_1[0x1c] != 0) {\n    FUN_001e6db0(param_1[0x1c]);\n  }\n  FUN_001c3eb0(param_1 + 0x12);\n  FUN_001c3eb0(param_1 + 0xb);\n  *param_1 = &DAT_0038ab0c;\n  FUN_000ed850(param_1);\n  return;\n}" primitive_type (function_declarator "FUN_001c1bc0(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  iVar4 = param_1[0x25];\n  *param_1 = &PTR_FUN_0038bd6c;\n  if (iVar4 != 0) {\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }\n  iVar4 = param_1[0x26];\n  if (param_1[0x27] != iVar4) {\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }\n  FUN_00172a20(param_1 + 0x2a);\n  if (param_1[0x26] != 0) {\n    FUN_001e6db0(param_1[0x26]);\n  }\n  if (param_1[0x22] != 0) {\n    FUN_001e6db0(param_1[0x22]);\n  }\n  if (param_1[0x1f] != 0) {\n    FUN_001e6db0(param_1[0x1f]);\n  }\n  if (param_1[0x1c] != 0) {\n    FUN_001e6db0(param_1[0x1c]);\n  }\n  FUN_001c3eb0(param_1 + 0x12);\n  FUN_001c3eb0(param_1 + 0xb);\n  *param_1 = &DAT_0038ab0c;\n  FUN_000ed850(param_1);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (expression_statement "iVar4 = param_1[0x25];" (assignment_expression "iVar4 = param_1[0x25]" identifier = (subscript_expression "param_1[0x25]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = &PTR_FUN_0038bd6c;" (assignment_expression "*param_1 = &PTR_FUN_0038bd6c" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_0038bd6c" & identifier)) ;) (if_statement "if (iVar4 != 0) {\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }" { (expression_statement "iVar3 = *(int *)(iVar4 + 8);" (assignment_expression "iVar3 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 4) != 0)" ( (binary_expression "*(int *)(iVar4 + 4) != 0" (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));" do (compound_statement "{\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      }" { (expression_statement "iVar1 = *(int *)(iVar3 + uVar5 * 4);" (assignment_expression "iVar1 = *(int *)(iVar3 + uVar5 * 4)" identifier = (pointer_expression "*(int *)(iVar3 + uVar5 * 4)" * (cast_expression "(int *)(iVar3 + uVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + uVar5 * 4)" ( (binary_expression "iVar3 + uVar5 * 4" identifier + (binary_expression "uVar5 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }" { (expression_statement "FUN_001e6d90(iVar1,0xc);" (call_expression "FUN_001e6d90(iVar1,0xc)" identifier (argument_list "(iVar1,0xc)" ( identifier , number_literal ))) ;) (expression_statement "iVar3 = *(int *)(iVar4 + 8);" (assignment_expression "iVar3 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) })) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 < *(uint *)(iVar4 + 4))" ( (binary_expression "uVar5 < *(uint *)(iVar4 + 4)" identifier < (pointer_expression "*(uint *)(iVar4 + 4)" * (cast_expression "(uint *)(iVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) )) ;) })) (if_statement "if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_001e6d50(iVar3);\n    }" { (expression_statement "FUN_001e6d50(iVar3);" (call_expression "FUN_001e6d50(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })) (expression_statement "FUN_001e6d90(iVar4,0xc);" (call_expression "FUN_001e6d90(iVar4,0xc)" identifier (argument_list "(iVar4,0xc)" ( identifier , number_literal ))) ;) })) (expression_statement "iVar4 = param_1[0x26];" (assignment_expression "iVar4 = param_1[0x26]" identifier = (subscript_expression "param_1[0x26]" identifier [ number_literal ])) ;) (if_statement "if (param_1[0x27] != iVar4) {\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }" if (parenthesized_expression "(param_1[0x27] != iVar4)" ( (binary_expression "param_1[0x27] != iVar4" (subscript_expression "param_1[0x27]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));" do (compound_statement "{\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    }" { (expression_statement "piVar2 = *(int **)(iVar4 + uVar5 * 4);" (assignment_expression "piVar2 = *(int **)(iVar4 + uVar5 * 4)" identifier = (pointer_expression "*(int **)(iVar4 + uVar5 * 4)" * (cast_expression "(int **)(iVar4 + uVar5 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + uVar5 * 4)" ( (binary_expression "iVar4 + uVar5 * 4" identifier + (binary_expression "uVar5 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }" { (if_statement "if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }" if (parenthesized_expression "(*piVar2 != 0)" ( (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" * identifier) != number_literal) )) (compound_statement "{\n          FUN_001e6db0(*piVar2);\n        }" { (expression_statement "FUN_001e6db0(*piVar2);" (call_expression "FUN_001e6db0(*piVar2)" identifier (argument_list "(*piVar2)" ( (pointer_expression "*piVar2" * identifier) ))) ;) })) (expression_statement "FUN_001e6d90(piVar2,0xc);" (call_expression "FUN_001e6d90(piVar2,0xc)" identifier (argument_list "(piVar2,0xc)" ( identifier , number_literal ))) ;) (expression_statement "iVar4 = param_1[0x26];" (assignment_expression "iVar4 = param_1[0x26]" identifier = (subscript_expression "param_1[0x26]" identifier [ number_literal ])) ;) })) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 < (uint)(param_1[0x27] - iVar4 >> 2))" ( (binary_expression "uVar5 < (uint)(param_1[0x27] - iVar4 >> 2)" identifier < (call_expression "(uint)(param_1[0x27] - iVar4 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1[0x27] - iVar4 >> 2)" ( (binary_expression "param_1[0x27] - iVar4 >> 2" (binary_expression "param_1[0x27] - iVar4" (subscript_expression "param_1[0x27]" identifier [ number_literal ]) - identifier) >> number_literal) )))) )) ;) })) (expression_statement "FUN_00172a20(param_1 + 0x2a);" (call_expression "FUN_00172a20(param_1 + 0x2a)" identifier (argument_list "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) ))) ;) (if_statement "if (param_1[0x26] != 0) {\n    FUN_001e6db0(param_1[0x26]);\n  }" if (parenthesized_expression "(param_1[0x26] != 0)" ( (binary_expression "param_1[0x26] != 0" (subscript_expression "param_1[0x26]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(param_1[0x26]);\n  }" { (expression_statement "FUN_001e6db0(param_1[0x26]);" (call_expression "FUN_001e6db0(param_1[0x26])" identifier (argument_list "(param_1[0x26])" ( (subscript_expression "param_1[0x26]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (param_1[0x22] != 0) {\n    FUN_001e6db0(param_1[0x22]);\n  }" if (parenthesized_expression "(param_1[0x22] != 0)" ( (binary_expression "param_1[0x22] != 0" (subscript_expression "param_1[0x22]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(param_1[0x22]);\n  }" { (expression_statement "FUN_001e6db0(param_1[0x22]);" (call_expression "FUN_001e6db0(param_1[0x22])" identifier (argument_list "(param_1[0x22])" ( (subscript_expression "param_1[0x22]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (param_1[0x1f] != 0) {\n    FUN_001e6db0(param_1[0x1f]);\n  }" if (parenthesized_expression "(param_1[0x1f] != 0)" ( (binary_expression "param_1[0x1f] != 0" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(param_1[0x1f]);\n  }" { (expression_statement "FUN_001e6db0(param_1[0x1f]);" (call_expression "FUN_001e6db0(param_1[0x1f])" identifier (argument_list "(param_1[0x1f])" ( (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (param_1[0x1c] != 0) {\n    FUN_001e6db0(param_1[0x1c]);\n  }" if (parenthesized_expression "(param_1[0x1c] != 0)" ( (binary_expression "param_1[0x1c] != 0" (subscript_expression "param_1[0x1c]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_001e6db0(param_1[0x1c]);\n  }" { (expression_statement "FUN_001e6db0(param_1[0x1c]);" (call_expression "FUN_001e6db0(param_1[0x1c])" identifier (argument_list "(param_1[0x1c])" ( (subscript_expression "param_1[0x1c]" identifier [ number_literal ]) ))) ;) })) (expression_statement "FUN_001c3eb0(param_1 + 0x12);" (call_expression "FUN_001c3eb0(param_1 + 0x12)" identifier (argument_list "(param_1 + 0x12)" ( (binary_expression "param_1 + 0x12" identifier + number_literal) ))) ;) (expression_statement "FUN_001c3eb0(param_1 + 0xb);" (call_expression "FUN_001c3eb0(param_1 + 0xb)" identifier (argument_list "(param_1 + 0xb)" ( (binary_expression "param_1 + 0xb" identifier + number_literal) ))) ;) (expression_statement "*param_1 = &DAT_0038ab0c;" (assignment_expression "*param_1 = &DAT_0038ab0c" (pointer_expression "*param_1" * identifier) = (pointer_expression "&DAT_0038ab0c" & identifier)) ;) (expression_statement "FUN_000ed850(param_1);" (call_expression "FUN_000ed850(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) >> LIT) )))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_001c1bc0(undefined4 *param_1)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  iVar4 = param_1[0x25];\n  *param_1 = &PTR_FUN_0038bd6c;\n  if (iVar4 != 0) {\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }\n  iVar4 = param_1[0x26];\n  if (param_1[0x27] != iVar4) {\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }\n  FUN_00172a20(param_1 + 0x2a);\n  if (param_1[0x26] != 0) {\n    FUN_001e6db0(param_1[0x26]);\n  }\n  if (param_1[0x22] != 0) {\n    FUN_001e6db0(param_1[0x22]);\n  }\n  if (param_1[0x1f] != 0) {\n    FUN_001e6db0(param_1[0x1f]);\n  }\n  if (param_1[0x1c] != 0) {\n    FUN_001e6db0(param_1[0x1c]);\n  }\n  FUN_001c3eb0(param_1 + 0x12);\n  FUN_001c3eb0(param_1 + 0xb);\n  *param_1 = &DAT_0038ab0c;\n  FUN_000ed850(param_1);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001c1bc0(undefined4 *param_1)" (identifier "FUN_001c1bc0") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  iVar4 = param_1[0x25];\n  *param_1 = &PTR_FUN_0038bd6c;\n  if (iVar4 != 0) {\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }\n  iVar4 = param_1[0x26];\n  if (param_1[0x27] != iVar4) {\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }\n  FUN_00172a20(param_1 + 0x2a);\n  if (param_1[0x26] != 0) {\n    FUN_001e6db0(param_1[0x26]);\n  }\n  if (param_1[0x22] != 0) {\n    FUN_001e6db0(param_1[0x22]);\n  }\n  if (param_1[0x1f] != 0) {\n    FUN_001e6db0(param_1[0x1f]);\n  }\n  if (param_1[0x1c] != 0) {\n    FUN_001e6db0(param_1[0x1c]);\n  }\n  FUN_001c3eb0(param_1 + 0x12);\n  FUN_001c3eb0(param_1 + 0xb);\n  *param_1 = &DAT_0038ab0c;\n  FUN_000ed850(param_1);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (expression_statement "iVar4 = param_1[0x25];" (assignment_expression "iVar4 = param_1[0x25]" (identifier "iVar4") (= "=") (subscript_expression "param_1[0x25]" (identifier "param_1") ([ "[") (number_literal "0x25") (] "]"))) (; ";")) (expression_statement "*param_1 = &PTR_FUN_0038bd6c;" (assignment_expression "*param_1 = &PTR_FUN_0038bd6c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&PTR_FUN_0038bd6c" (& "&") (identifier "PTR_FUN_0038bd6c"))) (; ";")) (if_statement "if (iVar4 != 0) {\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = *(int *)(iVar4 + 8);\n    if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }\n    if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }\n    FUN_001e6d90(iVar4,0xc);\n  }" ({ "{") (expression_statement "iVar3 = *(int *)(iVar4 + 8);" (assignment_expression "iVar3 = *(int *)(iVar4 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar4 + 4) != 0) {\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 4) != 0" (pointer_expression "*(int *)(iVar4 + 4)" (* "*") (cast_expression "(int *)(iVar4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar5 = 0;\n      do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));\n    }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 < *(uint *)(iVar4 + 4));" (do "do") (compound_statement "{\n        iVar1 = *(int *)(iVar3 + uVar5 * 4);\n        if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }\n        uVar5 = uVar5 + 1;\n      }" ({ "{") (expression_statement "iVar1 = *(int *)(iVar3 + uVar5 * 4);" (assignment_expression "iVar1 = *(int *)(iVar3 + uVar5 * 4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(iVar3 + uVar5 * 4)" (* "*") (cast_expression "(int *)(iVar3 + uVar5 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + uVar5 * 4)" (( "(") (binary_expression "iVar3 + uVar5 * 4" (identifier "iVar3") (+ "+") (binary_expression "uVar5 * 4" (identifier "uVar5") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar1 != 0) {\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_001e6d90(iVar1,0xc);\n          iVar3 = *(int *)(iVar4 + 8);\n        }" ({ "{") (expression_statement "FUN_001e6d90(iVar1,0xc);" (call_expression "FUN_001e6d90(iVar1,0xc)" (identifier "FUN_001e6d90") (argument_list "(iVar1,0xc)" (( "(") (identifier "iVar1") (, ",") (number_literal "0xc") () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar4 + 8);" (assignment_expression "iVar3 = *(int *)(iVar4 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 < *(uint *)(iVar4 + 4))" (( "(") (binary_expression "uVar5 < *(uint *)(iVar4 + 4)" (identifier "uVar5") (< "<") (pointer_expression "*(uint *)(iVar4 + 4)" (* "*") (cast_expression "(uint *)(iVar4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")"))))) () ")")) (; ";")) (} "}"))) (if_statement "if (iVar3 != 0) {\n      FUN_001e6d50(iVar3);\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001e6d50(iVar3);\n    }" ({ "{") (expression_statement "FUN_001e6d50(iVar3);" (call_expression "FUN_001e6d50(iVar3)" (identifier "FUN_001e6d50") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001e6d90(iVar4,0xc);" (call_expression "FUN_001e6d90(iVar4,0xc)" (identifier "FUN_001e6d90") (argument_list "(iVar4,0xc)" (( "(") (identifier "iVar4") (, ",") (number_literal "0xc") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar4 = param_1[0x26];" (assignment_expression "iVar4 = param_1[0x26]" (identifier "iVar4") (= "=") (subscript_expression "param_1[0x26]" (identifier "param_1") ([ "[") (number_literal "0x26") (] "]"))) (; ";")) (if_statement "if (param_1[0x27] != iVar4) {\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }" (if "if") (parenthesized_expression "(param_1[0x27] != iVar4)" (( "(") (binary_expression "param_1[0x27] != iVar4" (subscript_expression "param_1[0x27]" (identifier "param_1") ([ "[") (number_literal "0x27") (] "]")) (!= "!=") (identifier "iVar4")) () ")")) (compound_statement "{\n    uVar5 = 0;\n    do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));\n  }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));" (do "do") (compound_statement "{\n      piVar2 = *(int **)(iVar4 + uVar5 * 4);\n      if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }\n      uVar5 = uVar5 + 1;\n    }" ({ "{") (expression_statement "piVar2 = *(int **)(iVar4 + uVar5 * 4);" (assignment_expression "piVar2 = *(int **)(iVar4 + uVar5 * 4)" (identifier "piVar2") (= "=") (pointer_expression "*(int **)(iVar4 + uVar5 * 4)" (* "*") (cast_expression "(int **)(iVar4 + uVar5 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + uVar5 * 4)" (( "(") (binary_expression "iVar4 + uVar5 * 4" (identifier "iVar4") (+ "+") (binary_expression "uVar5 * 4" (identifier "uVar5") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar2 != (int *)0x0) {\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }" (if "if") (parenthesized_expression "(piVar2 != (int *)0x0)" (( "(") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }\n        FUN_001e6d90(piVar2,0xc);\n        iVar4 = param_1[0x26];\n      }" ({ "{") (if_statement "if (*piVar2 != 0) {\n          FUN_001e6db0(*piVar2);\n        }" (if "if") (parenthesized_expression "(*piVar2 != 0)" (( "(") (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_001e6db0(*piVar2);\n        }" ({ "{") (expression_statement "FUN_001e6db0(*piVar2);" (call_expression "FUN_001e6db0(*piVar2)" (identifier "FUN_001e6db0") (argument_list "(*piVar2)" (( "(") (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001e6d90(piVar2,0xc);" (call_expression "FUN_001e6d90(piVar2,0xc)" (identifier "FUN_001e6d90") (argument_list "(piVar2,0xc)" (( "(") (identifier "piVar2") (, ",") (number_literal "0xc") () ")"))) (; ";")) (expression_statement "iVar4 = param_1[0x26];" (assignment_expression "iVar4 = param_1[0x26]" (identifier "iVar4") (= "=") (subscript_expression "param_1[0x26]" (identifier "param_1") ([ "[") (number_literal "0x26") (] "]"))) (; ";")) (} "}"))) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 < (uint)(param_1[0x27] - iVar4 >> 2))" (( "(") (binary_expression "uVar5 < (uint)(param_1[0x27] - iVar4 >> 2)" (identifier "uVar5") (< "<") (call_expression "(uint)(param_1[0x27] - iVar4 >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1[0x27] - iVar4 >> 2)" (( "(") (binary_expression "param_1[0x27] - iVar4 >> 2" (binary_expression "param_1[0x27] - iVar4" (subscript_expression "param_1[0x27]" (identifier "param_1") ([ "[") (number_literal "0x27") (] "]")) (- "-") (identifier "iVar4")) (>> ">>") (number_literal "2")) () ")")))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00172a20(param_1 + 0x2a);" (call_expression "FUN_00172a20(param_1 + 0x2a)" (identifier "FUN_00172a20") (argument_list "(param_1 + 0x2a)" (( "(") (binary_expression "param_1 + 0x2a" (identifier "param_1") (+ "+") (number_literal "0x2a")) () ")"))) (; ";")) (if_statement "if (param_1[0x26] != 0) {\n    FUN_001e6db0(param_1[0x26]);\n  }" (if "if") (parenthesized_expression "(param_1[0x26] != 0)" (( "(") (binary_expression "param_1[0x26] != 0" (subscript_expression "param_1[0x26]" (identifier "param_1") ([ "[") (number_literal "0x26") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(param_1[0x26]);\n  }" ({ "{") (expression_statement "FUN_001e6db0(param_1[0x26]);" (call_expression "FUN_001e6db0(param_1[0x26])" (identifier "FUN_001e6db0") (argument_list "(param_1[0x26])" (( "(") (subscript_expression "param_1[0x26]" (identifier "param_1") ([ "[") (number_literal "0x26") (] "]")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1[0x22] != 0) {\n    FUN_001e6db0(param_1[0x22]);\n  }" (if "if") (parenthesized_expression "(param_1[0x22] != 0)" (( "(") (binary_expression "param_1[0x22] != 0" (subscript_expression "param_1[0x22]" (identifier "param_1") ([ "[") (number_literal "0x22") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(param_1[0x22]);\n  }" ({ "{") (expression_statement "FUN_001e6db0(param_1[0x22]);" (call_expression "FUN_001e6db0(param_1[0x22])" (identifier "FUN_001e6db0") (argument_list "(param_1[0x22])" (( "(") (subscript_expression "param_1[0x22]" (identifier "param_1") ([ "[") (number_literal "0x22") (] "]")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1[0x1f] != 0) {\n    FUN_001e6db0(param_1[0x1f]);\n  }" (if "if") (parenthesized_expression "(param_1[0x1f] != 0)" (( "(") (binary_expression "param_1[0x1f] != 0" (subscript_expression "param_1[0x1f]" (identifier "param_1") ([ "[") (number_literal "0x1f") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(param_1[0x1f]);\n  }" ({ "{") (expression_statement "FUN_001e6db0(param_1[0x1f]);" (call_expression "FUN_001e6db0(param_1[0x1f])" (identifier "FUN_001e6db0") (argument_list "(param_1[0x1f])" (( "(") (subscript_expression "param_1[0x1f]" (identifier "param_1") ([ "[") (number_literal "0x1f") (] "]")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1[0x1c] != 0) {\n    FUN_001e6db0(param_1[0x1c]);\n  }" (if "if") (parenthesized_expression "(param_1[0x1c] != 0)" (( "(") (binary_expression "param_1[0x1c] != 0" (subscript_expression "param_1[0x1c]" (identifier "param_1") ([ "[") (number_literal "0x1c") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001e6db0(param_1[0x1c]);\n  }" ({ "{") (expression_statement "FUN_001e6db0(param_1[0x1c]);" (call_expression "FUN_001e6db0(param_1[0x1c])" (identifier "FUN_001e6db0") (argument_list "(param_1[0x1c])" (( "(") (subscript_expression "param_1[0x1c]" (identifier "param_1") ([ "[") (number_literal "0x1c") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001c3eb0(param_1 + 0x12);" (call_expression "FUN_001c3eb0(param_1 + 0x12)" (identifier "FUN_001c3eb0") (argument_list "(param_1 + 0x12)" (( "(") (binary_expression "param_1 + 0x12" (identifier "param_1") (+ "+") (number_literal "0x12")) () ")"))) (; ";")) (expression_statement "FUN_001c3eb0(param_1 + 0xb);" (call_expression "FUN_001c3eb0(param_1 + 0xb)" (identifier "FUN_001c3eb0") (argument_list "(param_1 + 0xb)" (( "(") (binary_expression "param_1 + 0xb" (identifier "param_1") (+ "+") (number_literal "0xb")) () ")"))) (; ";")) (expression_statement "*param_1 = &DAT_0038ab0c;" (assignment_expression "*param_1 = &DAT_0038ab0c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&DAT_0038ab0c" (& "&") (identifier "DAT_0038ab0c"))) (; ";")) (expression_statement "FUN_000ed850(param_1);" (call_expression "FUN_000ed850(param_1)" (identifier "FUN_000ed850") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void ~Gdb_index(Gdb_index * this, int __in_chrg) */

void __thiscall var_8::function_1::~function_1(function_1 *this,int __in_chrg)

{
  var_7<var_8::Gdb_index::var_1> *var_6;
  vector<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5> *var_14;
  type_1 var_15;
  type_1 var_20;
  type_1 var_22;
  type_1 var_24;
  var_1 **var_11;
  type_1 var_13;
  type_2 var_10;
  int in_stack_ffffffd8;
  
  var_6 = this->gdb_symtab_;
  (this->super_Output_section_data).super_Output_data._vptr_Output_data =
       (type_3 **)&PTR__Gdb_index_0038bd6c;
  if (var_6 != (var_7<var_8::function_1::var_1> *)0x0) {
    var_11 = var_6->hashtab_;
    if (var_6->capacity_ != 0) {
      var_10 = 0;
      do {
        if (var_11[var_10] != (var_1 *)0x0) {
          var_9(var_11[var_10],0xc);
          var_11 = var_6->hashtab_;
        }
        var_10 = var_10 + 1;
      } while (var_10 < var_6->capacity_);
    }
    if (var_11 != (var_1 **)0x0) {
      var_12(var_11);
    }
    in_stack_ffffffd8 = 0xc;
    var_9(var_6,0xc);
  }
  var_13 = (this->cu_vector_list_).
            super__Vector_base<var_16::vector<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5>*,_std::allocator<var_16::vector<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5>*>var_5>
            ._M_impl._M_start;
  if ((this->cu_vector_list_).
      super__Vector_base<var_16::vector<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5>*,_std::allocator<var_16::vector<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5>*>var_5>
      ._M_impl._M_finish != var_13) {
    var_10 = 0;
    do {
      var_14 = var_13[var_10];
      if (var_14 != (vector<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5>
                     *)0x0) {
        var_15 = (var_14->
                 super__Vector_base<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5>
                 )._M_impl._M_start;
        if (var_15 != (type_1)0x0) {
          var_9(var_15);
        }
        in_stack_ffffffd8 = 0xc;
        var_9(var_14,0xc);
        var_13 = (this->cu_vector_list_).
                  super__Vector_base<var_16::vector<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5>*,_std::allocator<var_16::vector<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5>*>var_5>
                  ._M_impl._M_start;
      }
      var_10 = var_10 + 1;
    } while (var_10 < (type_2)((int)(this->cu_vector_list_).
                                 super__Vector_base<var_16::vector<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5>*,_std::allocator<var_16::vector<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5>*>var_5>
                                 ._M_impl._M_finish - (int)var_13 >> 2));
  }
  var_17<var_18>::~var_17(&this->stringpool_,in_stack_ffffffd8);
  var_13 = (this->cu_vector_list_).
            super__Vector_base<var_16::vector<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5>*,_std::allocator<var_16::vector<var_16::var_2<var_3,var_4>,_std::allocator<var_16::var_2<var_3,var_4>var_5>var_5>*>var_5>
            ._M_impl._M_start;
  if (var_13 != (type_1)0x0) {
    var_9(var_13);
  }
  var_20 = (this->ranges_).
           super__Vector_base<var_8::Gdb_index::var_19,_std::allocator<var_8::Gdb_index::var_19>var_5>
           ._M_impl._M_start;
  if (var_20 != (type_1)0x0) {
    var_9(var_20);
  }
  var_22 = (this->type_units_).
           super__Vector_base<var_8::Gdb_index::var_21,_std::allocator<var_8::Gdb_index::var_21>var_5>
           ._M_impl._M_start;
  if (var_22 != (type_1)0x0) {
    var_9(var_22);
  }
  var_24 = (this->comp_units_).
           super__Vector_base<var_8::Gdb_index::var_23,_std::allocator<var_8::Gdb_index::var_23>var_5>
           ._M_impl._M_start;
  if (var_24 != (type_1)0x0) {
    var_9(var_24);
  }
  var_16::
  var_27<long_long_int,_std::var_2<long_long_int_const,_long_long_int>,_std::allocator<var_16::var_2<long_long_int_const,_long_long_int>var_5>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_25<false,_false,var_26>var_5>
  ::~var_27((var_27<long_long_int,_std::var_2<long_long_int_const,_long_long_int>,_std::allocator<var_16::var_2<long_long_int_const,_long_long_int>var_5>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_25<false,_false,var_26>var_5>
                 *)&this->cu_pubtype_map_,in_stack_ffffffd8);
  var_16::
  var_27<long_long_int,_std::var_2<long_long_int_const,_long_long_int>,_std::allocator<var_16::var_2<long_long_int_const,_long_long_int>var_5>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_25<false,_false,var_26>var_5>
  ::~var_27((var_27<long_long_int,_std::var_2<long_long_int_const,_long_long_int>,_std::allocator<var_16::var_2<long_long_int_const,_long_long_int>var_5>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_25<false,_false,var_26>var_5>
                 *)&this->cu_pubname_map_,in_stack_ffffffd8);
  (this->super_Output_section_data).super_Output_data._vptr_Output_data =
       (type_3 **)&DAT_0038ab0c;
  Output_data::~var_28((var_28 *)this,in_stack_ffffffd8);
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(undefined4 *param_1)

{
  int iVar1;
  int *piVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  
  iVar4 = param_1[0x25];
  *param_1 = &PTR_FUN_0038bd6c;
  if (iVar4 != 0) {
    iVar3 = *(int *)(iVar4 + 8);
    if (*(int *)(iVar4 + 4) != 0) {
      uVar5 = 0;
      do {
        iVar1 = *(int *)(iVar3 + uVar5 * 4);
        if (iVar1 != 0) {
          FUN_001e6d90(iVar1,0xc);
          iVar3 = *(int *)(iVar4 + 8);
        }
        uVar5 = uVar5 + 1;
      } while (uVar5 < *(uint *)(iVar4 + 4));
    }
    if (iVar3 != 0) {
      FUN_001e6d50(iVar3);
    }
    FUN_001e6d90(iVar4,0xc);
  }
  iVar4 = param_1[0x26];
  if (param_1[0x27] != iVar4) {
    uVar5 = 0;
    do {
      piVar2 = *(int **)(iVar4 + uVar5 * 4);
      if (piVar2 != (int *)0x0) {
        if (*piVar2 != 0) {
          FUN_001e6db0(*piVar2);
        }
        FUN_001e6d90(piVar2,0xc);
        iVar4 = param_1[0x26];
      }
      uVar5 = uVar5 + 1;
    } while (uVar5 < (uint)(param_1[0x27] - iVar4 >> 2));
  }
  FUN_00172a20(param_1 + 0x2a);
  if (param_1[0x26] != 0) {
    FUN_001e6db0(param_1[0x26]);
  }
  if (param_1[0x22] != 0) {
    FUN_001e6db0(param_1[0x22]);
  }
  if (param_1[0x1f] != 0) {
    FUN_001e6db0(param_1[0x1f]);
  }
  if (param_1[0x1c] != 0) {
    FUN_001e6db0(param_1[0x1c]);
  }
  FUN_001c3eb0(param_1 + 0x12);
  FUN_001c3eb0(param_1 + 0xb);
  *param_1 = &DAT_0038ab0c;
  FUN_000ed850(param_1);
  return;
}

