
/* DWARF original prototype: void ~Gdb_index_info_reader(Gdb_index_info_reader * this, int
   __in_chrg) */

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

{
  Elf_reloc_mapper *pEVar1;
  char *pcVar2;
  uchar *puVar3;
  _Hash_node_base *p_Var4;
  __bucket_type *pp_Var5;
  _Hash_node_base *p_Var6;
  
  (this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =
       (_func_int_varargs **)&PTR__Gdb_index_info_reader_0042d2c0;
  clear_declarations(this);
  std::
  _Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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->declarations_,__in_chrg);
  pEVar1 = (this->super_Dwarf_info_reader).reloc_mapper_;
  (this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =
       (_func_int_varargs **)&PTR__Dwarf_info_reader_00426b38;
  if (pEVar1 != (Elf_reloc_mapper *)0x0) {
    (*pEVar1->_vptr_Elf_reloc_mapper[1])();
  }
  if (((this->super_Dwarf_info_reader).owns_string_buffer_ != false) &&
     (pcVar2 = (this->super_Dwarf_info_reader).string_buffer_, pcVar2 != (char *)0x0)) {
    operator_delete__(pcVar2);
  }
  if (((this->super_Dwarf_info_reader).ranges_table_.owns_ranges_buffer_ != false) &&
     (puVar3 = (this->super_Dwarf_info_reader).ranges_table_.ranges_buffer_, puVar3 != (uchar *)0x0)
     ) {
    operator_delete__(puVar3);
  }
  pEVar1 = (this->super_Dwarf_info_reader).ranges_table_.ranges_reloc_mapper_;
  if (pEVar1 != (Elf_reloc_mapper *)0x0) {
    (*pEVar1->_vptr_Elf_reloc_mapper[1])();
  }
  if (((this->super_Dwarf_info_reader).abbrev_table_.owns_buffer_ != false) &&
     (puVar3 = (this->super_Dwarf_info_reader).abbrev_table_.buffer_, puVar3 != (uchar *)0x0)) {
    operator_delete__(puVar3);
  }
  Dwarf_abbrev_table::clear_abbrev_codes(&(this->super_Dwarf_info_reader).abbrev_table_);
  p_Var6 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin.
           _M_nxt;
  while (p_Var6 != (_Hash_node_base *)0x0) {
    p_Var4 = p_Var6->_M_nxt;
    operator_delete(p_Var6);
    p_Var6 = p_Var4;
  }
  memset((this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,
         (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8);
  pp_Var5 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets;
  (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0;
  (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =
       (_Hash_node_base *)0x0;
  if (pp_Var5 !=
      &(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket) {
    operator_delete(pp_Var5);
  }
  operator_delete(this,0x988);
  return;
}



void FUN_002b8f20(undefined8 *param_1)

{
  undefined8 *puVar1;
  
  *param_1 = &PTR_FUN_0042d2c0;
  FUN_002b70c0();
  FUN_002b8dc0(param_1 + 0x12a);
  *param_1 = &PTR_FUN_00426b38;
  if ((long *)param_1[0x123] != (long *)0x0) {
    (**(code **)(*(long *)param_1[0x123] + 8))();
  }
  if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {
    thunk_FUN_002dac70();
  }
  if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {
    thunk_FUN_002dac70();
  }
  if ((long *)param_1[0x120] != (long *)0x0) {
    (**(code **)(*(long *)param_1[0x120] + 8))();
  }
  if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {
    thunk_FUN_002dac70();
  }
  FUN_0016bbe0(param_1 + 0xe);
  puVar1 = (undefined8 *)param_1[0x116];
  while (puVar1 != (undefined8 *)0x0) {
    puVar1 = (undefined8 *)*puVar1;
    FUN_002dac70();
  }
  memset((void *)param_1[0x114],0,param_1[0x115] * 8);
  param_1[0x117] = 0;
  param_1[0x116] = 0;
  if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {
    FUN_002dac70();
  }
  thunk_FUN_002dac70(param_1,0x988);
  return;
}


PUSH RBP
LEA RAX,[0x42d2c0]
PUSH RBX
MOV RBX,RDI
SUB RSP,0x8
MOV qword ptr [RDI],RAX
CALL 0x002b70c0
LEA RDI,[RBX + 0x950]
CALL 0x002b8dc0
MOV RDI,qword ptr [RBX + 0x918]
LEA RAX,[0x426b38]
MOV qword ptr [RBX],RAX
TEST RDI,RDI
JZ 0x002b8f60
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x8]
CMP byte ptr [RBX + 0x930],0x0
JZ 0x002b8f7a
MOV RDI,qword ptr [RBX + 0x920]
TEST RDI,RDI
JZ 0x002b8f7a
CALL 0x002dac40
CMP byte ptr [RBX + 0x8f8],0x0
JZ 0x002b8f94
MOV RDI,qword ptr [RBX + 0x8e8]
TEST RDI,RDI
JZ 0x002b8f94
CALL 0x002dac40
MOV RDI,qword ptr [RBX + 0x900]
TEST RDI,RDI
JZ 0x002b8fa6
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x8]
CMP byte ptr [RBX + 0x90],0x0
LEA RBP,[RBX + 0x70]
JZ 0x002b8fc4
MOV RDI,qword ptr [RBX + 0x80]
TEST RDI,RDI
JZ 0x002b8fc4
CALL 0x002dac40
MOV RDI,RBP
CALL 0x0016bbe0
MOV RDI,qword ptr [RBX + 0x8b0]
TEST RDI,RDI
JZ 0x002b8ff0
NOP dword ptr [RAX + RAX*0x1]
MOV RBP,qword ptr [RDI]
CALL 0x002dac70
MOV RDI,RBP
TEST RBP,RBP
JNZ 0x002b8fe0
MOV RAX,qword ptr [RBX + 0x8a8]
MOV RDI,qword ptr [RBX + 0x8a0]
XOR ESI,ESI
LEA RDX,[RAX*0x8]
CALL 0x00147100
MOV RDI,qword ptr [RBX + 0x8a0]
LEA RAX,[RBX + 0x8d0]
MOV qword ptr [RBX + 0x8b8],0x0
MOV qword ptr [RBX + 0x8b0],0x0
CMP RDI,RAX
JZ 0x002b903b
CALL 0x002dac70
ADD RSP,0x8
MOV RDI,RBX
MOV ESI,0x988
POP RBX
POP RBP
JMP 0x002dac60
(translation_unit "void FUN_002b8f20(undefined8 *param_1)\n\n{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0042d2c0;\n  FUN_002b70c0();\n  FUN_002b8dc0(param_1 + 0x12a);\n  *param_1 = &PTR_FUN_00426b38;\n  if ((long *)param_1[0x123] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((long *)param_1[0x120] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  FUN_0016bbe0(param_1 + 0xe);\n  puVar1 = (undefined8 *)param_1[0x116];\n  while (puVar1 != (undefined8 *)0x0) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  memset((void *)param_1[0x114],0,param_1[0x115] * 8);\n  param_1[0x117] = 0;\n  param_1[0x116] = 0;\n  if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70(param_1,0x988);\n  return;\n}\n\n" (function_definition "void FUN_002b8f20(undefined8 *param_1)\n\n{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0042d2c0;\n  FUN_002b70c0();\n  FUN_002b8dc0(param_1 + 0x12a);\n  *param_1 = &PTR_FUN_00426b38;\n  if ((long *)param_1[0x123] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((long *)param_1[0x120] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  FUN_0016bbe0(param_1 + 0xe);\n  puVar1 = (undefined8 *)param_1[0x116];\n  while (puVar1 != (undefined8 *)0x0) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  memset((void *)param_1[0x114],0,param_1[0x115] * 8);\n  param_1[0x117] = 0;\n  param_1[0x116] = 0;\n  if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70(param_1,0x988);\n  return;\n}" primitive_type (function_declarator "FUN_002b8f20(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0042d2c0;\n  FUN_002b70c0();\n  FUN_002b8dc0(param_1 + 0x12a);\n  *param_1 = &PTR_FUN_00426b38;\n  if ((long *)param_1[0x123] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((long *)param_1[0x120] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  FUN_0016bbe0(param_1 + 0xe);\n  puVar1 = (undefined8 *)param_1[0x116];\n  while (puVar1 != (undefined8 *)0x0) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  memset((void *)param_1[0x114],0,param_1[0x115] * 8);\n  param_1[0x117] = 0;\n  param_1[0x116] = 0;\n  if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70(param_1,0x988);\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "*param_1 = &PTR_FUN_0042d2c0;" (assignment_expression "*param_1 = &PTR_FUN_0042d2c0" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_0042d2c0" & identifier)) ;) (expression_statement "FUN_002b70c0();" (call_expression "FUN_002b70c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_002b8dc0(param_1 + 0x12a);" (call_expression "FUN_002b8dc0(param_1 + 0x12a)" identifier (argument_list "(param_1 + 0x12a)" ( (binary_expression "param_1 + 0x12a" identifier + number_literal) ))) ;) (expression_statement "*param_1 = &PTR_FUN_00426b38;" (assignment_expression "*param_1 = &PTR_FUN_00426b38" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_00426b38" & identifier)) ;) (if_statement "if ((long *)param_1[0x123] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }" if (parenthesized_expression "((long *)param_1[0x123] != (long *)0x0)" ( (binary_expression "(long *)param_1[0x123] != (long *)0x0" (cast_expression "(long *)param_1[0x123]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x123]" identifier [ number_literal ])) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }" { (expression_statement "(**(code **)(*(long *)param_1[0x123] + 8))();" (call_expression "(**(code **)(*(long *)param_1[0x123] + 8))()" (parenthesized_expression "(**(code **)(*(long *)param_1[0x123] + 8))" ( (pointer_expression "**(code **)(*(long *)param_1[0x123] + 8)" * (pointer_expression "*(code **)(*(long *)param_1[0x123] + 8)" * (cast_expression "(code **)(*(long *)param_1[0x123] + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_1[0x123] + 8)" ( (binary_expression "*(long *)param_1[0x123] + 8" (pointer_expression "*(long *)param_1[0x123]" * (cast_expression "(long *)param_1[0x123]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x123]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {\n    thunk_FUN_002dac70();\n  }" if (parenthesized_expression "((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0))" ( (binary_expression "(*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)" (parenthesized_expression "(*(char *)(param_1 + 0x126) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x126) != '\0'" (pointer_expression "*(char *)(param_1 + 0x126)" * (cast_expression "(char *)(param_1 + 0x126)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x126)" ( (binary_expression "param_1 + 0x126" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_1[0x124] != 0)" ( (binary_expression "param_1[0x124] != 0" (subscript_expression "param_1[0x124]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    thunk_FUN_002dac70();\n  }" { (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {\n    thunk_FUN_002dac70();\n  }" if (parenthesized_expression "((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0))" ( (binary_expression "(*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)" (parenthesized_expression "(*(char *)(param_1 + 0x11f) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x11f) != '\0'" (pointer_expression "*(char *)(param_1 + 0x11f)" * (cast_expression "(char *)(param_1 + 0x11f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11f)" ( (binary_expression "param_1 + 0x11f" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_1[0x11d] != 0)" ( (binary_expression "param_1[0x11d] != 0" (subscript_expression "param_1[0x11d]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    thunk_FUN_002dac70();\n  }" { (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((long *)param_1[0x120] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }" if (parenthesized_expression "((long *)param_1[0x120] != (long *)0x0)" ( (binary_expression "(long *)param_1[0x120] != (long *)0x0" (cast_expression "(long *)param_1[0x120]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x120]" identifier [ number_literal ])) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }" { (expression_statement "(**(code **)(*(long *)param_1[0x120] + 8))();" (call_expression "(**(code **)(*(long *)param_1[0x120] + 8))()" (parenthesized_expression "(**(code **)(*(long *)param_1[0x120] + 8))" ( (pointer_expression "**(code **)(*(long *)param_1[0x120] + 8)" * (pointer_expression "*(code **)(*(long *)param_1[0x120] + 8)" * (cast_expression "(code **)(*(long *)param_1[0x120] + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_1[0x120] + 8)" ( (binary_expression "*(long *)param_1[0x120] + 8" (pointer_expression "*(long *)param_1[0x120]" * (cast_expression "(long *)param_1[0x120]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x120]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {\n    thunk_FUN_002dac70();\n  }" if (parenthesized_expression "((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0))" ( (binary_expression "(*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)" (parenthesized_expression "(*(char *)(param_1 + 0x12) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x12) != '\0'" (pointer_expression "*(char *)(param_1 + 0x12)" * (cast_expression "(char *)(param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x12)" ( (binary_expression "param_1 + 0x12" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_1[0x10] != 0)" ( (binary_expression "param_1[0x10] != 0" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    thunk_FUN_002dac70();\n  }" { (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0016bbe0(param_1 + 0xe);" (call_expression "FUN_0016bbe0(param_1 + 0xe)" identifier (argument_list "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) ))) ;) (expression_statement "puVar1 = (undefined8 *)param_1[0x116];" (assignment_expression "puVar1 = (undefined8 *)param_1[0x116]" identifier = (cast_expression "(undefined8 *)param_1[0x116]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x116]" identifier [ number_literal ]))) ;) (while_statement "while (puVar1 != (undefined8 *)0x0) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }" while (parenthesized_expression "(puVar1 != (undefined8 *)0x0)" ( (binary_expression "puVar1 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }" { (expression_statement "puVar1 = (undefined8 *)*puVar1;" (assignment_expression "puVar1 = (undefined8 *)*puVar1" identifier = (cast_expression "(undefined8 *)*puVar1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "memset((void *)param_1[0x114],0,param_1[0x115] * 8);" (call_expression "memset((void *)param_1[0x114],0,param_1[0x115] * 8)" identifier (argument_list "((void *)param_1[0x114],0,param_1[0x115] * 8)" ( (cast_expression "(void *)param_1[0x114]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x114]" identifier [ number_literal ])) , number_literal , (binary_expression "param_1[0x115] * 8" (subscript_expression "param_1[0x115]" identifier [ number_literal ]) * number_literal) ))) ;) (expression_statement "param_1[0x117] = 0;" (assignment_expression "param_1[0x117] = 0" (subscript_expression "param_1[0x117]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x116] = 0;" (assignment_expression "param_1[0x116] = 0" (subscript_expression "param_1[0x116]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "((undefined8 *)param_1[0x114] != param_1 + 0x11a)" ( (binary_expression "(undefined8 *)param_1[0x114] != param_1 + 0x11a" (cast_expression "(undefined8 *)param_1[0x114]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x114]" identifier [ number_literal ])) != (binary_expression "param_1 + 0x11a" identifier + number_literal)) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_002dac70(param_1,0x988);" (call_expression "thunk_FUN_002dac70(param_1,0x988)" identifier (argument_list "(param_1,0x988)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void ~Gdb_index_info_reader(Gdb_index_info_reader * this, int\n   __in_chrg) */\n\nvoid __thiscall\ngold::Gdb_index_info_reader::~Gdb_index_info_reader(Gdb_index_info_reader *this,int __in_chrg)\n\n{\n  Elf_reloc_mapper *pEVar1;\n  char *pcVar2;\n  uchar *puVar3;\n  _Hash_node_base *p_Var4;\n  __bucket_type *pp_Var5;\n  _Hash_node_base *p_Var6;\n  \n  (this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Gdb_index_info_reader_0042d2c0;\n  clear_declarations(this);\n  std::\n  _Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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->declarations_,__in_chrg);\n  pEVar1 = (this->super_Dwarf_info_reader).reloc_mapper_;\n  (this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Dwarf_info_reader_00426b38;\n  if (pEVar1 != (Elf_reloc_mapper *)0x0) {\n    (*pEVar1->_vptr_Elf_reloc_mapper[1])();\n  }\n  if (((this->super_Dwarf_info_reader).owns_string_buffer_ != false) &&\n     (pcVar2 = (this->super_Dwarf_info_reader).string_buffer_, pcVar2 != (char *)0x0)) {\n    operator_delete__(pcVar2);\n  }\n  if (((this->super_Dwarf_info_reader).ranges_table_.owns_ranges_buffer_ != false) &&\n     (puVar3 = (this->super_Dwarf_info_reader).ranges_table_.ranges_buffer_, puVar3 != (uchar *)0x0)\n     ) {\n    operator_delete__(puVar3);\n  }\n  pEVar1 = (this->super_Dwarf_info_reader).ranges_table_.ranges_reloc_mapper_;\n  if (pEVar1 != (Elf_reloc_mapper *)0x0) {\n    (*pEVar1->_vptr_Elf_reloc_mapper[1])();\n  }\n  if (((this->super_Dwarf_info_reader).abbrev_table_.owns_buffer_ != false) &&\n     (puVar3 = (this->super_Dwarf_info_reader).abbrev_table_.buffer_, puVar3 != (uchar *)0x0)) {\n    operator_delete__(puVar3);\n  }\n  Dwarf_abbrev_table::clear_abbrev_codes(&(this->super_Dwarf_info_reader).abbrev_table_);\n  p_Var6 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin.\n           _M_nxt;\n  while (p_Var6 != (_Hash_node_base *)0x0) {\n    p_Var4 = p_Var6->_M_nxt;\n    operator_delete(p_Var6);\n    p_Var6 = p_Var4;\n  }\n  memset((this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,\n         (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8);\n  pp_Var5 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets;\n  (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0;\n  (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  if (pp_Var5 !=\n      &(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket) {\n    operator_delete(pp_Var5);\n  }\n  operator_delete(this,0x988);\n  return;\n}\n\n" comment (function_definition "void __thiscall\ngold::Gdb_index_info_reader::~Gdb_index_info_reader(Gdb_index_info_reader *this,int __in_chrg)\n\n{\n  Elf_reloc_mapper *pEVar1;\n  char *pcVar2;\n  uchar *puVar3;\n  _Hash_node_base *p_Var4;\n  __bucket_type *pp_Var5;\n  _Hash_node_base *p_Var6;\n  \n  (this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Gdb_index_info_reader_0042d2c0;\n  clear_declarations(this);\n  std::\n  _Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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->declarations_,__in_chrg);\n  pEVar1 = (this->super_Dwarf_info_reader).reloc_mapper_;\n  (this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Dwarf_info_reader_00426b38;\n  if (pEVar1 != (Elf_reloc_mapper *)0x0) {\n    (*pEVar1->_vptr_Elf_reloc_mapper[1])();\n  }\n  if (((this->super_Dwarf_info_reader).owns_string_buffer_ != false) &&\n     (pcVar2 = (this->super_Dwarf_info_reader).string_buffer_, pcVar2 != (char *)0x0)) {\n    operator_delete__(pcVar2);\n  }\n  if (((this->super_Dwarf_info_reader).ranges_table_.owns_ranges_buffer_ != false) &&\n     (puVar3 = (this->super_Dwarf_info_reader).ranges_table_.ranges_buffer_, puVar3 != (uchar *)0x0)\n     ) {\n    operator_delete__(puVar3);\n  }\n  pEVar1 = (this->super_Dwarf_info_reader).ranges_table_.ranges_reloc_mapper_;\n  if (pEVar1 != (Elf_reloc_mapper *)0x0) {\n    (*pEVar1->_vptr_Elf_reloc_mapper[1])();\n  }\n  if (((this->super_Dwarf_info_reader).abbrev_table_.owns_buffer_ != false) &&\n     (puVar3 = (this->super_Dwarf_info_reader).abbrev_table_.buffer_, puVar3 != (uchar *)0x0)) {\n    operator_delete__(puVar3);\n  }\n  Dwarf_abbrev_table::clear_abbrev_codes(&(this->super_Dwarf_info_reader).abbrev_table_);\n  p_Var6 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin.\n           _M_nxt;\n  while (p_Var6 != (_Hash_node_base *)0x0) {\n    p_Var4 = p_Var6->_M_nxt;\n    operator_delete(p_Var6);\n    p_Var6 = p_Var4;\n  }\n  memset((this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,\n         (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8);\n  pp_Var5 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets;\n  (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0;\n  (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  if (pp_Var5 !=\n      &(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket) {\n    operator_delete(pp_Var5);\n  }\n  operator_delete(this,0x988);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Gdb_index_info_reader::~" identifier : : identifier : : ~) (function_declarator "Gdb_index_info_reader(Gdb_index_info_reader *this,int __in_chrg)" identifier (parameter_list "(Gdb_index_info_reader *this,int __in_chrg)" ( (parameter_declaration "Gdb_index_info_reader *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "int __in_chrg" primitive_type identifier) ))) (compound_statement "{\n  Elf_reloc_mapper *pEVar1;\n  char *pcVar2;\n  uchar *puVar3;\n  _Hash_node_base *p_Var4;\n  __bucket_type *pp_Var5;\n  _Hash_node_base *p_Var6;\n  \n  (this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Gdb_index_info_reader_0042d2c0;\n  clear_declarations(this);\n  std::\n  _Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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->declarations_,__in_chrg);\n  pEVar1 = (this->super_Dwarf_info_reader).reloc_mapper_;\n  (this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Dwarf_info_reader_00426b38;\n  if (pEVar1 != (Elf_reloc_mapper *)0x0) {\n    (*pEVar1->_vptr_Elf_reloc_mapper[1])();\n  }\n  if (((this->super_Dwarf_info_reader).owns_string_buffer_ != false) &&\n     (pcVar2 = (this->super_Dwarf_info_reader).string_buffer_, pcVar2 != (char *)0x0)) {\n    operator_delete__(pcVar2);\n  }\n  if (((this->super_Dwarf_info_reader).ranges_table_.owns_ranges_buffer_ != false) &&\n     (puVar3 = (this->super_Dwarf_info_reader).ranges_table_.ranges_buffer_, puVar3 != (uchar *)0x0)\n     ) {\n    operator_delete__(puVar3);\n  }\n  pEVar1 = (this->super_Dwarf_info_reader).ranges_table_.ranges_reloc_mapper_;\n  if (pEVar1 != (Elf_reloc_mapper *)0x0) {\n    (*pEVar1->_vptr_Elf_reloc_mapper[1])();\n  }\n  if (((this->super_Dwarf_info_reader).abbrev_table_.owns_buffer_ != false) &&\n     (puVar3 = (this->super_Dwarf_info_reader).abbrev_table_.buffer_, puVar3 != (uchar *)0x0)) {\n    operator_delete__(puVar3);\n  }\n  Dwarf_abbrev_table::clear_abbrev_codes(&(this->super_Dwarf_info_reader).abbrev_table_);\n  p_Var6 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin.\n           _M_nxt;\n  while (p_Var6 != (_Hash_node_base *)0x0) {\n    p_Var4 = p_Var6->_M_nxt;\n    operator_delete(p_Var6);\n    p_Var6 = p_Var4;\n  }\n  memset((this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,\n         (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8);\n  pp_Var5 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets;\n  (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0;\n  (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;\n  if (pp_Var5 !=\n      &(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket) {\n    operator_delete(pp_Var5);\n  }\n  operator_delete(this,0x988);\n  return;\n}" { (declaration "Elf_reloc_mapper *pEVar1;" type_identifier (pointer_declarator "*pEVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uchar *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "_Hash_node_base *p_Var4;" type_identifier (pointer_declarator "*p_Var4" * identifier) ;) (declaration "__bucket_type *pp_Var5;" type_identifier (pointer_declarator "*pp_Var5" * identifier) ;) (declaration "_Hash_node_base *p_Var6;" type_identifier (pointer_declarator "*p_Var6" * identifier) ;) (expression_statement "(this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Gdb_index_info_reader_0042d2c0;" (assignment_expression "(this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Gdb_index_info_reader_0042d2c0" (field_expression "(this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Gdb_index_info_reader_0042d2c0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Gdb_index_info_reader_0042d2c0" & identifier))) ;) (expression_statement "clear_declarations(this);" (call_expression "clear_declarations(this)" identifier (argument_list "(this)" ( identifier ))) ;) (ERROR "std::\n  _Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std" identifier (ERROR "::\n  _Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>" : : (comma_expression "_Hashtable<long_int,_std" (binary_expression "_Hashtable<long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_int_const,_gold" (binary_expression "pair<long_int_const" identifier < identifier) , identifier) : : (comma_expression "Gdb_index_info_reader::Declaration_pair>,_std" identifier (ERROR "::Declaration_pair>" : : identifier >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_int_const,_gold" (binary_expression "pair<long_int_const" identifier < identifier) , identifier) : : (comma_expression "Gdb_index_info_reader::Declaration_pair>_>,_std" identifier (ERROR "::Declaration_pair>_>" : : (binary_expression "Declaration_pair>_" identifier > identifier) >) , identifier) : : (comma_expression "__detail::_Select1st,_std::equal_to<long_int>,_std" identifier (ERROR "::_Select1st,_std::equal_to<long_int>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_int" identifier < identifier) >) , identifier) : : (binary_expression "hash<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_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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->declarations_,__in_chrg);" (comma_expression "_Hashtable_traits<false,_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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->declarations_,__in_chrg)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n  ::~_Hashtable((_Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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->declarations_,__in_chrg)" identifier , (binary_expression "_true>_>\n  ::~_Hashtable((_Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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->declarations_,__in_chrg)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (unary_expression "~_Hashtable((_Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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->declarations_,__in_chrg)" ~ (call_expression "_Hashtable((_Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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->declarations_,__in_chrg)" identifier (argument_list "((_Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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->declarations_,__in_chrg)" ( (binary_expression "(_Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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->declarations_" (parenthesized_expression "(_Hashtable<long_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<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_int,_std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<long_int,_std" (binary_expression "_Hashtable<long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_int_const,_gold" (binary_expression "pair<long_int_const" identifier < identifier) , identifier) : : identifier : : (binary_expression "Declaration_pair>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_int_const,_gold" (binary_expression "pair<long_int_const" identifier < identifier) , identifier) : : identifier : : (binary_expression "Declaration_pair>_>,_std" (binary_expression "Declaration_pair>_" identifier > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_int>,_std" (binary_expression "equal_to<long_int" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<long_int>,_std" (binary_expression "hash<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->declarations_" identifier -> field_identifier)) , identifier ))))))) ;) (expression_statement "pEVar1 = (this->super_Dwarf_info_reader).reloc_mapper_;" (assignment_expression "pEVar1 = (this->super_Dwarf_info_reader).reloc_mapper_" identifier = (field_expression "(this->super_Dwarf_info_reader).reloc_mapper_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Dwarf_info_reader_00426b38;" (assignment_expression "(this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =\n       (_func_int_varargs **)&PTR__Dwarf_info_reader_00426b38" (field_expression "(this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Dwarf_info_reader_00426b38" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Dwarf_info_reader_00426b38" & identifier))) ;) (if_statement "if (pEVar1 != (Elf_reloc_mapper *)0x0) {\n    (*pEVar1->_vptr_Elf_reloc_mapper[1])();\n  }" if (parenthesized_expression "(pEVar1 != (Elf_reloc_mapper *)0x0)" ( (binary_expression "pEVar1 != (Elf_reloc_mapper *)0x0" identifier != (cast_expression "(Elf_reloc_mapper *)0x0" ( (type_descriptor "Elf_reloc_mapper *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*pEVar1->_vptr_Elf_reloc_mapper[1])();\n  }" { (expression_statement "(*pEVar1->_vptr_Elf_reloc_mapper[1])();" (call_expression "(*pEVar1->_vptr_Elf_reloc_mapper[1])()" (parenthesized_expression "(*pEVar1->_vptr_Elf_reloc_mapper[1])" ( (pointer_expression "*pEVar1->_vptr_Elf_reloc_mapper[1]" * (subscript_expression "pEVar1->_vptr_Elf_reloc_mapper[1]" (field_expression "pEVar1->_vptr_Elf_reloc_mapper" identifier -> field_identifier) [ number_literal ])) )) (argument_list "()" ( ))) ;) })) (if_statement "if (((this->super_Dwarf_info_reader).owns_string_buffer_ != false) &&\n     (pcVar2 = (this->super_Dwarf_info_reader).string_buffer_, pcVar2 != (char *)0x0)) {\n    operator_delete__(pcVar2);\n  }" if (parenthesized_expression "(((this->super_Dwarf_info_reader).owns_string_buffer_ != false) &&\n     (pcVar2 = (this->super_Dwarf_info_reader).string_buffer_, pcVar2 != (char *)0x0))" ( (binary_expression "((this->super_Dwarf_info_reader).owns_string_buffer_ != false) &&\n     (pcVar2 = (this->super_Dwarf_info_reader).string_buffer_, pcVar2 != (char *)0x0)" (parenthesized_expression "((this->super_Dwarf_info_reader).owns_string_buffer_ != false)" ( (binary_expression "(this->super_Dwarf_info_reader).owns_string_buffer_ != false" (field_expression "(this->super_Dwarf_info_reader).owns_string_buffer_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) != false) )) && (parenthesized_expression "(pcVar2 = (this->super_Dwarf_info_reader).string_buffer_, pcVar2 != (char *)0x0)" ( (comma_expression "pcVar2 = (this->super_Dwarf_info_reader).string_buffer_, pcVar2 != (char *)0x0" (assignment_expression "pcVar2 = (this->super_Dwarf_info_reader).string_buffer_" identifier = (field_expression "(this->super_Dwarf_info_reader).string_buffer_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    operator_delete__(pcVar2);\n  }" { (expression_statement "operator_delete__(pcVar2);" (call_expression "operator_delete__(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) })) (if_statement "if (((this->super_Dwarf_info_reader).ranges_table_.owns_ranges_buffer_ != false) &&\n     (puVar3 = (this->super_Dwarf_info_reader).ranges_table_.ranges_buffer_, puVar3 != (uchar *)0x0)\n     ) {\n    operator_delete__(puVar3);\n  }" if (parenthesized_expression "(((this->super_Dwarf_info_reader).ranges_table_.owns_ranges_buffer_ != false) &&\n     (puVar3 = (this->super_Dwarf_info_reader).ranges_table_.ranges_buffer_, puVar3 != (uchar *)0x0)\n     )" ( (binary_expression "((this->super_Dwarf_info_reader).ranges_table_.owns_ranges_buffer_ != false) &&\n     (puVar3 = (this->super_Dwarf_info_reader).ranges_table_.ranges_buffer_, puVar3 != (uchar *)0x0)" (parenthesized_expression "((this->super_Dwarf_info_reader).ranges_table_.owns_ranges_buffer_ != false)" ( (binary_expression "(this->super_Dwarf_info_reader).ranges_table_.owns_ranges_buffer_ != false" (field_expression "(this->super_Dwarf_info_reader).ranges_table_.owns_ranges_buffer_" (field_expression "(this->super_Dwarf_info_reader).ranges_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) . field_identifier) != false) )) && (parenthesized_expression "(puVar3 = (this->super_Dwarf_info_reader).ranges_table_.ranges_buffer_, puVar3 != (uchar *)0x0)" ( (comma_expression "puVar3 = (this->super_Dwarf_info_reader).ranges_table_.ranges_buffer_, puVar3 != (uchar *)0x0" (assignment_expression "puVar3 = (this->super_Dwarf_info_reader).ranges_table_.ranges_buffer_" identifier = (field_expression "(this->super_Dwarf_info_reader).ranges_table_.ranges_buffer_" (field_expression "(this->super_Dwarf_info_reader).ranges_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , (binary_expression "puVar3 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    operator_delete__(puVar3);\n  }" { (expression_statement "operator_delete__(puVar3);" (call_expression "operator_delete__(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) })) (expression_statement "pEVar1 = (this->super_Dwarf_info_reader).ranges_table_.ranges_reloc_mapper_;" (assignment_expression "pEVar1 = (this->super_Dwarf_info_reader).ranges_table_.ranges_reloc_mapper_" identifier = (field_expression "(this->super_Dwarf_info_reader).ranges_table_.ranges_reloc_mapper_" (field_expression "(this->super_Dwarf_info_reader).ranges_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (pEVar1 != (Elf_reloc_mapper *)0x0) {\n    (*pEVar1->_vptr_Elf_reloc_mapper[1])();\n  }" if (parenthesized_expression "(pEVar1 != (Elf_reloc_mapper *)0x0)" ( (binary_expression "pEVar1 != (Elf_reloc_mapper *)0x0" identifier != (cast_expression "(Elf_reloc_mapper *)0x0" ( (type_descriptor "Elf_reloc_mapper *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*pEVar1->_vptr_Elf_reloc_mapper[1])();\n  }" { (expression_statement "(*pEVar1->_vptr_Elf_reloc_mapper[1])();" (call_expression "(*pEVar1->_vptr_Elf_reloc_mapper[1])()" (parenthesized_expression "(*pEVar1->_vptr_Elf_reloc_mapper[1])" ( (pointer_expression "*pEVar1->_vptr_Elf_reloc_mapper[1]" * (subscript_expression "pEVar1->_vptr_Elf_reloc_mapper[1]" (field_expression "pEVar1->_vptr_Elf_reloc_mapper" identifier -> field_identifier) [ number_literal ])) )) (argument_list "()" ( ))) ;) })) (if_statement "if (((this->super_Dwarf_info_reader).abbrev_table_.owns_buffer_ != false) &&\n     (puVar3 = (this->super_Dwarf_info_reader).abbrev_table_.buffer_, puVar3 != (uchar *)0x0)) {\n    operator_delete__(puVar3);\n  }" if (parenthesized_expression "(((this->super_Dwarf_info_reader).abbrev_table_.owns_buffer_ != false) &&\n     (puVar3 = (this->super_Dwarf_info_reader).abbrev_table_.buffer_, puVar3 != (uchar *)0x0))" ( (binary_expression "((this->super_Dwarf_info_reader).abbrev_table_.owns_buffer_ != false) &&\n     (puVar3 = (this->super_Dwarf_info_reader).abbrev_table_.buffer_, puVar3 != (uchar *)0x0)" (parenthesized_expression "((this->super_Dwarf_info_reader).abbrev_table_.owns_buffer_ != false)" ( (binary_expression "(this->super_Dwarf_info_reader).abbrev_table_.owns_buffer_ != false" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.owns_buffer_" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) . field_identifier) != false) )) && (parenthesized_expression "(puVar3 = (this->super_Dwarf_info_reader).abbrev_table_.buffer_, puVar3 != (uchar *)0x0)" ( (comma_expression "puVar3 = (this->super_Dwarf_info_reader).abbrev_table_.buffer_, puVar3 != (uchar *)0x0" (assignment_expression "puVar3 = (this->super_Dwarf_info_reader).abbrev_table_.buffer_" identifier = (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.buffer_" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , (binary_expression "puVar3 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    operator_delete__(puVar3);\n  }" { (expression_statement "operator_delete__(puVar3);" (call_expression "operator_delete__(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) })) (labeled_statement "Dwarf_abbrev_table::clear_abbrev_codes(&(this->super_Dwarf_info_reader).abbrev_table_);" statement_identifier : (ERROR ":" :) (expression_statement "clear_abbrev_codes(&(this->super_Dwarf_info_reader).abbrev_table_);" (call_expression "clear_abbrev_codes(&(this->super_Dwarf_info_reader).abbrev_table_)" identifier (argument_list "(&(this->super_Dwarf_info_reader).abbrev_table_)" ( (pointer_expression "&(this->super_Dwarf_info_reader).abbrev_table_" & (field_expression "(this->super_Dwarf_info_reader).abbrev_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier)) ))) ;)) (expression_statement "p_Var6 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin.\n           _M_nxt;" (assignment_expression "p_Var6 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin.\n           _M_nxt" identifier = (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin.\n           _M_nxt" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (while_statement "while (p_Var6 != (_Hash_node_base *)0x0) {\n    p_Var4 = p_Var6->_M_nxt;\n    operator_delete(p_Var6);\n    p_Var6 = p_Var4;\n  }" while (parenthesized_expression "(p_Var6 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var6 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    p_Var4 = p_Var6->_M_nxt;\n    operator_delete(p_Var6);\n    p_Var6 = p_Var4;\n  }" { (expression_statement "p_Var4 = p_Var6->_M_nxt;" (assignment_expression "p_Var4 = p_Var6->_M_nxt" identifier = (field_expression "p_Var6->_M_nxt" identifier -> field_identifier)) ;) (expression_statement "operator_delete(p_Var6);" (call_expression "operator_delete(p_Var6)" identifier (argument_list "(p_Var6)" ( identifier ))) ;) (expression_statement "p_Var6 = p_Var4;" (assignment_expression "p_Var6 = p_Var4" identifier = identifier) ;) })) (expression_statement "memset((this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,\n         (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8);" (call_expression "memset((this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,\n         (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8)" identifier (argument_list "((this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,\n         (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8)" ( (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) , number_literal , (binary_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) * number_literal) ))) ;) (expression_statement "pp_Var5 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets;" (assignment_expression "pp_Var5 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets" identifier = (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0;" (assignment_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_element_count" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0;" (assignment_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =\n       (_Hash_node_base *)0x0" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pp_Var5 !=\n      &(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket) {\n    operator_delete(pp_Var5);\n  }" if (parenthesized_expression "(pp_Var5 !=\n      &(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket)" ( (binary_expression "pp_Var5 !=\n      &(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket" identifier != (pointer_expression "&(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket" & (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_" (field_expression "(this->super_Dwarf_info_reader).abbrev_table_" (parenthesized_expression "(this->super_Dwarf_info_reader)" ( (field_expression "this->super_Dwarf_info_reader" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) )) (compound_statement "{\n    operator_delete(pp_Var5);\n  }" { (expression_statement "operator_delete(pp_Var5);" (call_expression "operator_delete(pp_Var5)" identifier (argument_list "(pp_Var5)" ( identifier ))) ;) })) (expression_statement "operator_delete(this,0x988);" (call_expression "operator_delete(this,0x988)" identifier (argument_list "(this,0x988)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_002b8f20(undefined8 *param_1)\n\n{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0042d2c0;\n  FUN_002b70c0();\n  FUN_002b8dc0(param_1 + 0x12a);\n  *param_1 = &PTR_FUN_00426b38;\n  if ((long *)param_1[0x123] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((long *)param_1[0x120] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  FUN_0016bbe0(param_1 + 0xe);\n  puVar1 = (undefined8 *)param_1[0x116];\n  while (puVar1 != (undefined8 *)0x0) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  memset((void *)param_1[0x114],0,param_1[0x115] * 8);\n  param_1[0x117] = 0;\n  param_1[0x116] = 0;\n  if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70(param_1,0x988);\n  return;\n}\n\n" (function_definition "void FUN_002b8f20(undefined8 *param_1)\n\n{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0042d2c0;\n  FUN_002b70c0();\n  FUN_002b8dc0(param_1 + 0x12a);\n  *param_1 = &PTR_FUN_00426b38;\n  if ((long *)param_1[0x123] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((long *)param_1[0x120] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  FUN_0016bbe0(param_1 + 0xe);\n  puVar1 = (undefined8 *)param_1[0x116];\n  while (puVar1 != (undefined8 *)0x0) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  memset((void *)param_1[0x114],0,param_1[0x115] * 8);\n  param_1[0x117] = 0;\n  param_1[0x116] = 0;\n  if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70(param_1,0x988);\n  return;\n}" primitive_type (function_declarator "FUN_002b8f20(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0042d2c0;\n  FUN_002b70c0();\n  FUN_002b8dc0(param_1 + 0x12a);\n  *param_1 = &PTR_FUN_00426b38;\n  if ((long *)param_1[0x123] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((long *)param_1[0x120] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  FUN_0016bbe0(param_1 + 0xe);\n  puVar1 = (undefined8 *)param_1[0x116];\n  while (puVar1 != (undefined8 *)0x0) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  memset((void *)param_1[0x114],0,param_1[0x115] * 8);\n  param_1[0x117] = 0;\n  param_1[0x116] = 0;\n  if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70(param_1,0x988);\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "*param_1 = &PTR_FUN_0042d2c0;" (assignment_expression "*param_1 = &PTR_FUN_0042d2c0" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_0042d2c0" & identifier)) ;) (expression_statement "FUN_002b70c0();" (call_expression "FUN_002b70c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_002b8dc0(param_1 + 0x12a);" (call_expression "FUN_002b8dc0(param_1 + 0x12a)" identifier (argument_list "(param_1 + 0x12a)" ( (binary_expression "param_1 + 0x12a" identifier + number_literal) ))) ;) (expression_statement "*param_1 = &PTR_FUN_00426b38;" (assignment_expression "*param_1 = &PTR_FUN_00426b38" (pointer_expression "*param_1" * identifier) = (pointer_expression "&PTR_FUN_00426b38" & identifier)) ;) (if_statement "if ((long *)param_1[0x123] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }" if (parenthesized_expression "((long *)param_1[0x123] != (long *)0x0)" ( (binary_expression "(long *)param_1[0x123] != (long *)0x0" (cast_expression "(long *)param_1[0x123]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x123]" identifier [ number_literal ])) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }" { (expression_statement "(**(code **)(*(long *)param_1[0x123] + 8))();" (call_expression "(**(code **)(*(long *)param_1[0x123] + 8))()" (parenthesized_expression "(**(code **)(*(long *)param_1[0x123] + 8))" ( (pointer_expression "**(code **)(*(long *)param_1[0x123] + 8)" * (pointer_expression "*(code **)(*(long *)param_1[0x123] + 8)" * (cast_expression "(code **)(*(long *)param_1[0x123] + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_1[0x123] + 8)" ( (binary_expression "*(long *)param_1[0x123] + 8" (pointer_expression "*(long *)param_1[0x123]" * (cast_expression "(long *)param_1[0x123]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x123]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {\n    thunk_FUN_002dac70();\n  }" if (parenthesized_expression "((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0))" ( (binary_expression "(*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)" (parenthesized_expression "(*(char *)(param_1 + 0x126) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x126) != '\0'" (pointer_expression "*(char *)(param_1 + 0x126)" * (cast_expression "(char *)(param_1 + 0x126)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x126)" ( (binary_expression "param_1 + 0x126" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_1[0x124] != 0)" ( (binary_expression "param_1[0x124] != 0" (subscript_expression "param_1[0x124]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    thunk_FUN_002dac70();\n  }" { (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {\n    thunk_FUN_002dac70();\n  }" if (parenthesized_expression "((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0))" ( (binary_expression "(*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)" (parenthesized_expression "(*(char *)(param_1 + 0x11f) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x11f) != '\0'" (pointer_expression "*(char *)(param_1 + 0x11f)" * (cast_expression "(char *)(param_1 + 0x11f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11f)" ( (binary_expression "param_1 + 0x11f" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_1[0x11d] != 0)" ( (binary_expression "param_1[0x11d] != 0" (subscript_expression "param_1[0x11d]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    thunk_FUN_002dac70();\n  }" { (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((long *)param_1[0x120] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }" if (parenthesized_expression "((long *)param_1[0x120] != (long *)0x0)" ( (binary_expression "(long *)param_1[0x120] != (long *)0x0" (cast_expression "(long *)param_1[0x120]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x120]" identifier [ number_literal ])) != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }" { (expression_statement "(**(code **)(*(long *)param_1[0x120] + 8))();" (call_expression "(**(code **)(*(long *)param_1[0x120] + 8))()" (parenthesized_expression "(**(code **)(*(long *)param_1[0x120] + 8))" ( (pointer_expression "**(code **)(*(long *)param_1[0x120] + 8)" * (pointer_expression "*(code **)(*(long *)param_1[0x120] + 8)" * (cast_expression "(code **)(*(long *)param_1[0x120] + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_1[0x120] + 8)" ( (binary_expression "*(long *)param_1[0x120] + 8" (pointer_expression "*(long *)param_1[0x120]" * (cast_expression "(long *)param_1[0x120]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x120]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {\n    thunk_FUN_002dac70();\n  }" if (parenthesized_expression "((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0))" ( (binary_expression "(*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)" (parenthesized_expression "(*(char *)(param_1 + 0x12) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x12) != '\0'" (pointer_expression "*(char *)(param_1 + 0x12)" * (cast_expression "(char *)(param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x12)" ( (binary_expression "param_1 + 0x12" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_1[0x10] != 0)" ( (binary_expression "param_1[0x10] != 0" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    thunk_FUN_002dac70();\n  }" { (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0016bbe0(param_1 + 0xe);" (call_expression "FUN_0016bbe0(param_1 + 0xe)" identifier (argument_list "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) ))) ;) (expression_statement "puVar1 = (undefined8 *)param_1[0x116];" (assignment_expression "puVar1 = (undefined8 *)param_1[0x116]" identifier = (cast_expression "(undefined8 *)param_1[0x116]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x116]" identifier [ number_literal ]))) ;) (while_statement "while (puVar1 != (undefined8 *)0x0) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }" while (parenthesized_expression "(puVar1 != (undefined8 *)0x0)" ( (binary_expression "puVar1 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }" { (expression_statement "puVar1 = (undefined8 *)*puVar1;" (assignment_expression "puVar1 = (undefined8 *)*puVar1" identifier = (cast_expression "(undefined8 *)*puVar1" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "memset((void *)param_1[0x114],0,param_1[0x115] * 8);" (call_expression "memset((void *)param_1[0x114],0,param_1[0x115] * 8)" identifier (argument_list "((void *)param_1[0x114],0,param_1[0x115] * 8)" ( (cast_expression "(void *)param_1[0x114]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x114]" identifier [ number_literal ])) , number_literal , (binary_expression "param_1[0x115] * 8" (subscript_expression "param_1[0x115]" identifier [ number_literal ]) * number_literal) ))) ;) (expression_statement "param_1[0x117] = 0;" (assignment_expression "param_1[0x117] = 0" (subscript_expression "param_1[0x117]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x116] = 0;" (assignment_expression "param_1[0x116] = 0" (subscript_expression "param_1[0x116]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "((undefined8 *)param_1[0x114] != param_1 + 0x11a)" ( (binary_expression "(undefined8 *)param_1[0x114] != param_1 + 0x11a" (cast_expression "(undefined8 *)param_1[0x114]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x114]" identifier [ number_literal ])) != (binary_expression "param_1 + 0x11a" identifier + number_literal)) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "thunk_FUN_002dac70(param_1,0x988);" (call_expression "thunk_FUN_002dac70(param_1,0x988)" identifier (argument_list "(param_1,0x988)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , LIT , (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_002b8f20(undefined8 *param_1)\n\n{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0042d2c0;\n  FUN_002b70c0();\n  FUN_002b8dc0(param_1 + 0x12a);\n  *param_1 = &PTR_FUN_00426b38;\n  if ((long *)param_1[0x123] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((long *)param_1[0x120] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  FUN_0016bbe0(param_1 + 0xe);\n  puVar1 = (undefined8 *)param_1[0x116];\n  while (puVar1 != (undefined8 *)0x0) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  memset((void *)param_1[0x114],0,param_1[0x115] * 8);\n  param_1[0x117] = 0;\n  param_1[0x116] = 0;\n  if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70(param_1,0x988);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002b8f20(undefined8 *param_1)" (identifier "FUN_002b8f20") (parameter_list "(undefined8 *param_1)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  *param_1 = &PTR_FUN_0042d2c0;\n  FUN_002b70c0();\n  FUN_002b8dc0(param_1 + 0x12a);\n  *param_1 = &PTR_FUN_00426b38;\n  if ((long *)param_1[0x123] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  if ((long *)param_1[0x120] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }\n  if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {\n    thunk_FUN_002dac70();\n  }\n  FUN_0016bbe0(param_1 + 0xe);\n  puVar1 = (undefined8 *)param_1[0x116];\n  while (puVar1 != (undefined8 *)0x0) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }\n  memset((void *)param_1[0x114],0,param_1[0x115] * 8);\n  param_1[0x117] = 0;\n  param_1[0x116] = 0;\n  if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {\n    FUN_002dac70();\n  }\n  thunk_FUN_002dac70(param_1,0x988);\n  return;\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (expression_statement "*param_1 = &PTR_FUN_0042d2c0;" (assignment_expression "*param_1 = &PTR_FUN_0042d2c0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&PTR_FUN_0042d2c0" (& "&") (identifier "PTR_FUN_0042d2c0"))) (; ";")) (expression_statement "FUN_002b70c0();" (call_expression "FUN_002b70c0()" (identifier "FUN_002b70c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_002b8dc0(param_1 + 0x12a);" (call_expression "FUN_002b8dc0(param_1 + 0x12a)" (identifier "FUN_002b8dc0") (argument_list "(param_1 + 0x12a)" (( "(") (binary_expression "param_1 + 0x12a" (identifier "param_1") (+ "+") (number_literal "0x12a")) () ")"))) (; ";")) (expression_statement "*param_1 = &PTR_FUN_00426b38;" (assignment_expression "*param_1 = &PTR_FUN_00426b38" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&PTR_FUN_00426b38" (& "&") (identifier "PTR_FUN_00426b38"))) (; ";")) (if_statement "if ((long *)param_1[0x123] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }" (if "if") (parenthesized_expression "((long *)param_1[0x123] != (long *)0x0)" (( "(") (binary_expression "(long *)param_1[0x123] != (long *)0x0" (cast_expression "(long *)param_1[0x123]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x123]" (identifier "param_1") ([ "[") (number_literal "0x123") (] "]"))) (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(*(long *)param_1[0x123] + 8))();\n  }" ({ "{") (expression_statement "(**(code **)(*(long *)param_1[0x123] + 8))();" (call_expression "(**(code **)(*(long *)param_1[0x123] + 8))()" (parenthesized_expression "(**(code **)(*(long *)param_1[0x123] + 8))" (( "(") (pointer_expression "**(code **)(*(long *)param_1[0x123] + 8)" (* "*") (pointer_expression "*(code **)(*(long *)param_1[0x123] + 8)" (* "*") (cast_expression "(code **)(*(long *)param_1[0x123] + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)param_1[0x123] + 8)" (( "(") (binary_expression "*(long *)param_1[0x123] + 8" (pointer_expression "*(long *)param_1[0x123]" (* "*") (cast_expression "(long *)param_1[0x123]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x123]" (identifier "param_1") ([ "[") (number_literal "0x123") (] "]")))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {\n    thunk_FUN_002dac70();\n  }" (if "if") (parenthesized_expression "((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0))" (( "(") (binary_expression "(*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)" (parenthesized_expression "(*(char *)(param_1 + 0x126) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x126) != '\0'" (pointer_expression "*(char *)(param_1 + 0x126)" (* "*") (cast_expression "(char *)(param_1 + 0x126)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x126)" (( "(") (binary_expression "param_1 + 0x126" (identifier "param_1") (+ "+") (number_literal "0x126")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[0x124] != 0)" (( "(") (binary_expression "param_1[0x124] != 0" (subscript_expression "param_1[0x124]" (identifier "param_1") ([ "[") (number_literal "0x124") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    thunk_FUN_002dac70();\n  }" ({ "{") (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" (identifier "thunk_FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {\n    thunk_FUN_002dac70();\n  }" (if "if") (parenthesized_expression "((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0))" (( "(") (binary_expression "(*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)" (parenthesized_expression "(*(char *)(param_1 + 0x11f) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x11f) != '\0'" (pointer_expression "*(char *)(param_1 + 0x11f)" (* "*") (cast_expression "(char *)(param_1 + 0x11f)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x11f)" (( "(") (binary_expression "param_1 + 0x11f" (identifier "param_1") (+ "+") (number_literal "0x11f")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[0x11d] != 0)" (( "(") (binary_expression "param_1[0x11d] != 0" (subscript_expression "param_1[0x11d]" (identifier "param_1") ([ "[") (number_literal "0x11d") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    thunk_FUN_002dac70();\n  }" ({ "{") (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" (identifier "thunk_FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((long *)param_1[0x120] != (long *)0x0) {\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }" (if "if") (parenthesized_expression "((long *)param_1[0x120] != (long *)0x0)" (( "(") (binary_expression "(long *)param_1[0x120] != (long *)0x0" (cast_expression "(long *)param_1[0x120]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x120]" (identifier "param_1") ([ "[") (number_literal "0x120") (] "]"))) (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(*(long *)param_1[0x120] + 8))();\n  }" ({ "{") (expression_statement "(**(code **)(*(long *)param_1[0x120] + 8))();" (call_expression "(**(code **)(*(long *)param_1[0x120] + 8))()" (parenthesized_expression "(**(code **)(*(long *)param_1[0x120] + 8))" (( "(") (pointer_expression "**(code **)(*(long *)param_1[0x120] + 8)" (* "*") (pointer_expression "*(code **)(*(long *)param_1[0x120] + 8)" (* "*") (cast_expression "(code **)(*(long *)param_1[0x120] + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)param_1[0x120] + 8)" (( "(") (binary_expression "*(long *)param_1[0x120] + 8" (pointer_expression "*(long *)param_1[0x120]" (* "*") (cast_expression "(long *)param_1[0x120]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x120]" (identifier "param_1") ([ "[") (number_literal "0x120") (] "]")))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {\n    thunk_FUN_002dac70();\n  }" (if "if") (parenthesized_expression "((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0))" (( "(") (binary_expression "(*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)" (parenthesized_expression "(*(char *)(param_1 + 0x12) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x12) != '\0'" (pointer_expression "*(char *)(param_1 + 0x12)" (* "*") (cast_expression "(char *)(param_1 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x12)" (( "(") (binary_expression "param_1 + 0x12" (identifier "param_1") (+ "+") (number_literal "0x12")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[0x10] != 0)" (( "(") (binary_expression "param_1[0x10] != 0" (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    thunk_FUN_002dac70();\n  }" ({ "{") (expression_statement "thunk_FUN_002dac70();" (call_expression "thunk_FUN_002dac70()" (identifier "thunk_FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0016bbe0(param_1 + 0xe);" (call_expression "FUN_0016bbe0(param_1 + 0xe)" (identifier "FUN_0016bbe0") (argument_list "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")"))) (; ";")) (expression_statement "puVar1 = (undefined8 *)param_1[0x116];" (assignment_expression "puVar1 = (undefined8 *)param_1[0x116]" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)param_1[0x116]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x116]" (identifier "param_1") ([ "[") (number_literal "0x116") (] "]")))) (; ";")) (while_statement "while (puVar1 != (undefined8 *)0x0) {\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }" (while "while") (parenthesized_expression "(puVar1 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar1 != (undefined8 *)0x0" (identifier "puVar1") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar1 = (undefined8 *)*puVar1;\n    FUN_002dac70();\n  }" ({ "{") (expression_statement "puVar1 = (undefined8 *)*puVar1;" (assignment_expression "puVar1 = (undefined8 *)*puVar1" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)*puVar1" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (; ";")) (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "memset((void *)param_1[0x114],0,param_1[0x115] * 8);" (call_expression "memset((void *)param_1[0x114],0,param_1[0x115] * 8)" (identifier "memset") (argument_list "((void *)param_1[0x114],0,param_1[0x115] * 8)" (( "(") (cast_expression "(void *)param_1[0x114]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x114]" (identifier "param_1") ([ "[") (number_literal "0x114") (] "]"))) (, ",") (number_literal "0") (, ",") (binary_expression "param_1[0x115] * 8" (subscript_expression "param_1[0x115]" (identifier "param_1") ([ "[") (number_literal "0x115") (] "]")) (* "*") (number_literal "8")) () ")"))) (; ";")) (expression_statement "param_1[0x117] = 0;" (assignment_expression "param_1[0x117] = 0" (subscript_expression "param_1[0x117]" (identifier "param_1") ([ "[") (number_literal "0x117") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x116] = 0;" (assignment_expression "param_1[0x116] = 0" (subscript_expression "param_1[0x116]" (identifier "param_1") ([ "[") (number_literal "0x116") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {\n    FUN_002dac70();\n  }" (if "if") (parenthesized_expression "((undefined8 *)param_1[0x114] != param_1 + 0x11a)" (( "(") (binary_expression "(undefined8 *)param_1[0x114] != param_1 + 0x11a" (cast_expression "(undefined8 *)param_1[0x114]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x114]" (identifier "param_1") ([ "[") (number_literal "0x114") (] "]"))) (!= "!=") (binary_expression "param_1 + 0x11a" (identifier "param_1") (+ "+") (number_literal "0x11a"))) () ")")) (compound_statement "{\n    FUN_002dac70();\n  }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "thunk_FUN_002dac70(param_1,0x988);" (call_expression "thunk_FUN_002dac70(param_1,0x988)" (identifier "thunk_FUN_002dac70") (argument_list "(param_1,0x988)" (( "(") (identifier "param_1") (, ",") (number_literal "0x988") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void ~Gdb_index_info_reader(Gdb_index_info_reader * this, int
   __in_chrg) */

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

{
  type_1 *var_6;
  char *var_7;
  type_2 *var_9;
  type_3 *p_Var4;
  type_4 *var_14;
  type_3 *var_11;
  
  (this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =
       (type_5 **)&PTR__Gdb_index_info_reader_0042d2c0;
  var_1(this);
  std::
  var_5<long_int,_std::pair<long_int_const,_gold::function_1::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::function_1::Declaration_pair>var_4>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_2<false,_false,var_3>var_4>
  ::~var_5((var_5<long_int,_std::pair<long_int_const,_gold::function_1::Declaration_pair>,_std::allocator<std::pair<long_int_const,_gold::function_1::Declaration_pair>var_4>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_2<false,_false,var_3>var_4>
                 *)&this->declarations_,__in_chrg);
  var_6 = (this->super_Dwarf_info_reader).reloc_mapper_;
  (this->super_Dwarf_info_reader)._vptr_Dwarf_info_reader =
       (type_5 **)&PTR__Dwarf_info_reader_00426b38;
  if (var_6 != (type_1 *)0x0) {
    (*var_6->_vptr_Elf_reloc_mapper[1])();
  }
  if (((this->super_Dwarf_info_reader).owns_string_buffer_ != false) &&
     (var_7 = (this->super_Dwarf_info_reader).string_buffer_, var_7 != (char *)0x0)) {
    var_8(var_7);
  }
  if (((this->super_Dwarf_info_reader).ranges_table_.owns_ranges_buffer_ != false) &&
     (var_9 = (this->super_Dwarf_info_reader).ranges_table_.ranges_buffer_, var_9 != (type_2 *)0x0)
     ) {
    var_8(var_9);
  }
  var_6 = (this->super_Dwarf_info_reader).ranges_table_.ranges_reloc_mapper_;
  if (var_6 != (type_1 *)0x0) {
    (*var_6->_vptr_Elf_reloc_mapper[1])();
  }
  if (((this->super_Dwarf_info_reader).abbrev_table_.owns_buffer_ != false) &&
     (var_9 = (this->super_Dwarf_info_reader).abbrev_table_.buffer_, var_9 != (type_2 *)0x0)) {
    var_8(var_9);
  }
  Dwarf_abbrev_table::var_10(&(this->super_Dwarf_info_reader).abbrev_table_);
  var_11 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin.
           _M_nxt;
  while (var_11 != (type_3 *)0x0) {
    p_Var4 = var_11->_M_nxt;
    var_12(var_11);
    var_11 = p_Var4;
  }
  var_13((this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets,0,
         (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_bucket_count * 8);
  var_14 = (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_buckets;
  (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_element_count = 0;
  (this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_before_begin._M_nxt =
       (type_3 *)0x0;
  if (var_14 !=
      &(this->super_Dwarf_info_reader).abbrev_table_.high_abbrev_codes_._M_h._M_single_bucket) {
    var_12(var_14);
  }
  var_12(this,0x988);
  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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (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))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (number_literal) (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (return_statement))))

void MASKED(undefined8 *param_1)

{
  undefined8 *puVar1;
  
  *param_1 = &PTR_FUN_0042d2c0;
  FUN_002b70c0();
  FUN_002b8dc0(param_1 + 0x12a);
  *param_1 = &PTR_FUN_00426b38;
  if ((long *)param_1[0x123] != (long *)0x0) {
    (**(code **)(*(long *)param_1[0x123] + 8))();
  }
  if ((*(char *)(param_1 + 0x126) != '\0') && (param_1[0x124] != 0)) {
    thunk_FUN_002dac70();
  }
  if ((*(char *)(param_1 + 0x11f) != '\0') && (param_1[0x11d] != 0)) {
    thunk_FUN_002dac70();
  }
  if ((long *)param_1[0x120] != (long *)0x0) {
    (**(code **)(*(long *)param_1[0x120] + 8))();
  }
  if ((*(char *)(param_1 + 0x12) != '\0') && (param_1[0x10] != 0)) {
    thunk_FUN_002dac70();
  }
  FUN_0016bbe0(param_1 + 0xe);
  puVar1 = (undefined8 *)param_1[0x116];
  while (puVar1 != (undefined8 *)0x0) {
    puVar1 = (undefined8 *)*puVar1;
    FUN_002dac70();
  }
  memset((void *)param_1[0x114],0,param_1[0x115] * 8);
  param_1[0x117] = 0;
  param_1[0x116] = 0;
  if ((undefined8 *)param_1[0x114] != param_1 + 0x11a) {
    FUN_002dac70();
  }
  thunk_FUN_002dac70(param_1,0x988);
  return;
}

