
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: string get_context(Gdb_index_info_reader * this, off_t die_offset) */

string * __thiscall
gold::Gdb_index_info_reader::get_context
          (string *__return_storage_ptr__,Gdb_index_info_reader *this,off_t die_offset)

{
  uint uVar1;
  string *psVar2;
  string *context;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar3;
  size_type sVar4;
  __bucket_type p_Var5;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar6;
  int iVar7;
  undefined4 in_stack_ffffffc4;
  string local_38;
  __bucket_type *local_20;
  
  iVar7 = 0x4c9240;
  __return_storage_ptr__->_M_string_length = 0;
  (__return_storage_ptr__->field_2)._M_local_buf[0] = '\0';
  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;
  std::
  _Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
  ::find((_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
          *)&local_20,(key_type_conflict1 *)&this->declarations_);
  if (local_20 != (__bucket_type *)0x0) {
    if ((0 < (int)local_20[4]) ||
       ((local_20[4] == (__bucket_type)0x0 && (local_20[5] != (__bucket_type)0x0)))) {
      get_context(&local_38,this,CONCAT44(iVar7,in_stack_ffffffc4));
      paVar6 = &local_38.field_2;
      paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                *)(__return_storage_ptr__->_M_dataplus)._M_p;
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)local_38._M_dataplus._M_p == paVar6) {
        if (local_38._M_string_length != 0) {
          if (local_38._M_string_length == 1) {
            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];
            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                      *)(__return_storage_ptr__->_M_dataplus)._M_p;
          }
          else {
            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);
            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                      *)(__return_storage_ptr__->_M_dataplus)._M_p;
          }
        }
        __return_storage_ptr__->_M_string_length = local_38._M_string_length;
        paVar3->_M_local_buf[local_38._M_string_length] = '\0';
      }
      else if (&__return_storage_ptr__->field_2 == paVar3) {
        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;
        __return_storage_ptr__->_M_string_length = local_38._M_string_length;
        (__return_storage_ptr__->field_2)._M_allocated_capacity =
             local_38.field_2._M_allocated_capacity;
        local_38._M_dataplus._M_p = (pointer)paVar6;
      }
      else {
        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;
        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;
        __return_storage_ptr__->_M_string_length = local_38._M_string_length;
        (__return_storage_ptr__->field_2)._M_allocated_capacity =
             local_38.field_2._M_allocated_capacity;
        local_38._M_dataplus._M_p = (pointer)paVar6;
        if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                       *)0x0) {
          local_38._M_dataplus._M_p = (pointer)paVar3;
          local_38.field_2._M_allocated_capacity = sVar4;
        }
      }
      local_38._M_string_length = 0;
      *local_38._M_dataplus._M_p = '\0';
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)local_38._M_dataplus._M_p != paVar6) {
        (**(code **)(iVar7 + -0x7f44))();
      }
      if (0x7fffffff - __return_storage_ptr__->_M_string_length < 2) {
        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);
        return psVar2;
      }
      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,*(int *)(iVar7 + -0x77f0) + 0x208,2);
    }
    p_Var5 = local_20[6];
    if (p_Var5 != (__bucket_type)0x0) {
      uVar1 = (**(code **)(iVar7 + -0x36a4))(p_Var5);
      if (0x7fffffff - __return_storage_ptr__->_M_string_length < uVar1) {
        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);
        return psVar2;
      }
                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */
      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,p_Var5,uVar1);
    }
  }
  return __return_storage_ptr__;
}



/* gold::Gdb_index_info_reader::get_context[abi:cxx11](long long) */

Gdb_index_info_reader * __thiscall
gold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader *this,longlong param_1)

{
  uint uVar1;
  Gdb_index_info_reader *pGVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  undefined4 in_stack_ffffffc4;
  Gdb_index_info_reader *local_38;
  int local_34;
  undefined4 local_30 [4];
  int local_20 [3];
  
  iVar5 = 0x4c9240;
  *(undefined4 *)(this + 4) = 0;
  this[8] = (Gdb_index_info_reader)0x0;
  *(Gdb_index_info_reader **)this = this + 8;
  std::
  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>
  ::find((longlong *)local_20);
  if (local_20[0] != 0) {
    if ((0 < *(int *)(local_20[0] + 0x10)) ||
       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {
      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));
      pGVar2 = *(Gdb_index_info_reader **)this;
      if (local_38 == (Gdb_index_info_reader *)local_30) {
        if (local_34 != 0) {
          if (local_34 == 1) {
            *pGVar2 = local_30[0]._0_1_;
            pGVar2 = *(Gdb_index_info_reader **)this;
          }
          else {
            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);
            pGVar2 = *(Gdb_index_info_reader **)this;
          }
        }
        *(int *)(this + 4) = local_34;
        pGVar2[local_34] = (Gdb_index_info_reader)0x0;
      }
      else if (this + 8 == pGVar2) {
        *(Gdb_index_info_reader **)this = local_38;
        *(int *)(this + 4) = local_34;
        *(undefined4 *)(this + 8) = local_30[0];
        local_38 = (Gdb_index_info_reader *)local_30;
      }
      else {
        uVar3 = *(undefined4 *)(this + 8);
        *(Gdb_index_info_reader **)this = local_38;
        *(int *)(this + 4) = local_34;
        *(undefined4 *)(this + 8) = local_30[0];
        local_38 = (Gdb_index_info_reader *)local_30;
        if (pGVar2 != (Gdb_index_info_reader *)0x0) {
          local_38 = pGVar2;
          local_30[0] = uVar3;
        }
      }
      local_34 = 0;
      *local_38 = (Gdb_index_info_reader)0x0;
      if (local_38 != (Gdb_index_info_reader *)local_30) {
        (**(code **)(iVar5 + -0x7f44))();
      }
      if (0x7fffffffU - *(int *)(this + 4) < 2) {
        pGVar2 = (Gdb_index_info_reader *)
                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);
        return pGVar2;
      }
      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);
    }
    iVar4 = *(int *)(local_20[0] + 0x18);
    if (iVar4 != 0) {
      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);
      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {
        pGVar2 = (Gdb_index_info_reader *)
                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);
        return pGVar2;
      }
                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */
      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);
    }
  }
  return this;
}


lui gp,0x35
addiu gp,gp,-0x490
addu gp,gp,t9
addiu sp,sp,-0x50
lw t9,-0x5aa4(gp)
sw s2,0x44(sp)
addiu s2,a0,0x8
sw gp,0x10(sp)
sw s3,0x48(sp)
or s3,a1,zero
sw s1,0x40(sp)
addiu a1,a1,0x4e4
sw s0,0x3c(sp)
or s0,a0,zero
sw ra,0x4c(sp)
sw a2,0x58(sp)
addiu a2,sp,0x58
sw zero,0x4(a0)
sb zero,0x8(a0)
sw s2,0x0(a0)
addiu a0,sp,0x30
bal 0x0017c864
_sw a3,0x5c(sp)
lw s1,0x30(sp)
beq s1,zero,0x00179790
_lw gp,0x10(sp)
lw a2,0x10(s1)
bgtz a2,0x001797b8
_lw a3,0x14(s1)
beq a2,zero,0x001797b0
_nop
lw s1,0x18(s1)
beq s1,zero,0x00179790
_lw t9,-0x36a4(gp)
jalr t9
_or a0,s1,zero
lui v1,0x7fff
lw a0,0x4(s0)
ori v1,v1,0xffff
subu v1,v1,a0
sltu v1,v1,v0
bne v1,zero,0x001798d0
_lw gp,0x10(sp)
lw t9,-0x73d8(gp)
or a2,v0,zero
or a1,s1,zero
jalr t9
_or a0,s0,zero
lw ra,0x4c(sp)
or v0,s0,zero
lw s3,0x48(sp)
lw s2,0x44(sp)
lw s1,0x40(sp)
lw s0,0x3c(sp)
jr ra
_addiu sp,sp,0x50
beq a3,zero,0x0017974c
_nop
lw t9,-0x5aa0(gp)
addiu a0,sp,0x18
bal 0x001796d0
_or a1,s3,zero
lw v0,0x18(sp)
addiu s3,sp,0x20
lw gp,0x10(sp)
lw a0,0x0(s0)
beq v0,s3,0x00179874
_lw a2,0x1c(sp)
beq s2,a0,0x0017985c
_lw v1,0x20(sp)
lw a1,0x8(s0)
sw v0,0x0(s0)
sw a2,0x4(s0)
beq a0,zero,0x00179868
_sw v1,0x8(s0)
sw a0,0x18(sp)
sw a1,0x20(sp)
sw zero,0x1c(sp)
sb zero,0x0(a0)
lw a0,0x18(sp)
beq a0,s3,0x00179824
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw v1,0x4(s0)
lui v0,0x7fff
ori v0,v0,0xffff
subu v0,v0,v1
sltiu v0,v0,0x2
bne v0,zero,0x001798c0
_lw a1,-0x77f0(gp)
li a2,0x2
lw t9,-0x73d8(gp)
or a0,s0,zero
jalr t9
_addiu a1,a1,0x208
b 0x0017974c
_lw gp,0x10(sp)
sw v0,0x0(s0)
sw a2,0x4(s0)
sw v1,0x8(s0)
sw s3,0x18(sp)
b 0x00179804
_or a0,s3,zero
beq a2,zero,0x00179898
_li v0,0x1
beq a2,v0,0x001798ac
_lw t9,-0x3698(gp)
jalr t9
_or a1,s3,zero
lw gp,0x10(sp)
lw a2,0x1c(sp)
lw a0,0x0(s0)
addu a0,a0,a2
sw a2,0x4(s0)
sb zero,0x0(a0)
b 0x00179804
_lw a0,0x18(sp)
lb v0,0x20(sp)
sb v0,0x0(a0)
lw a2,0x1c(sp)
b 0x00179898
_lw a0,0x0(s0)
lw a0,-0x7fc4(gp)
lw t9,-0x73cc(gp)
jalr t9
_addiu a0,a0,0x446c
lw a0,-0x7fc4(gp)
lw t9,-0x73cc(gp)
jalr t9
_addiu a0,a0,0x446c
(translation_unit "/* gold::Gdb_index_info_reader::get_context[abi:cxx11](long long) */\n\nGdb_index_info_reader * __thiscall\ngold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader *this,longlong param_1)\n\n{\n  uint uVar1;\n  Gdb_index_info_reader *pGVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 in_stack_ffffffc4;\n  Gdb_index_info_reader *local_38;\n  int local_34;\n  undefined4 local_30 [4];\n  int local_20 [3];\n  \n  iVar5 = 0x4c9240;\n  *(undefined4 *)(this + 4) = 0;\n  this[8] = (Gdb_index_info_reader)0x0;\n  *(Gdb_index_info_reader **)this = this + 8;\n  std::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n  ::find((longlong *)local_20);\n  if (local_20[0] != 0) {\n    if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }\n    iVar4 = *(int *)(local_20[0] + 0x18);\n    if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */\n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }\n  }\n  return this;\n}\n\n" comment (ERROR "Gdb_index_info_reader * __thiscall\ngold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader *this,longlong param_1)" (binary_expression "Gdb_index_info_reader * __thiscall\ngold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader *this" (binary_expression "Gdb_index_info_reader * __thiscall" identifier * identifier) (ERROR "gold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader" identifier : : identifier : : identifier ( identifier) * identifier) , identifier identifier )) (compound_statement "{\n  uint uVar1;\n  Gdb_index_info_reader *pGVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 in_stack_ffffffc4;\n  Gdb_index_info_reader *local_38;\n  int local_34;\n  undefined4 local_30 [4];\n  int local_20 [3];\n  \n  iVar5 = 0x4c9240;\n  *(undefined4 *)(this + 4) = 0;\n  this[8] = (Gdb_index_info_reader)0x0;\n  *(Gdb_index_info_reader **)this = this + 8;\n  std::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n  ::find((longlong *)local_20);\n  if (local_20[0] != 0) {\n    if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }\n    iVar4 = *(int *)(local_20[0] + 0x18);\n    if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */\n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }\n  }\n  return this;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "Gdb_index_info_reader *pGVar2;" type_identifier (pointer_declarator "*pGVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 in_stack_ffffffc4;" type_identifier identifier ;) (declaration "Gdb_index_info_reader *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "undefined4 local_30 [4];" type_identifier (array_declarator "local_30 [4]" identifier [ number_literal ]) ;) (declaration "int local_20 [3];" primitive_type (array_declarator "local_20 [3]" identifier [ number_literal ]) ;) (expression_statement "iVar5 = 0x4c9240;" (assignment_expression "iVar5 = 0x4c9240" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(this + 4) = 0;" (assignment_expression "*(undefined4 *)(this + 4) = 0" (pointer_expression "*(undefined4 *)(this + 4)" * (cast_expression "(undefined4 *)(this + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "this[8] = (Gdb_index_info_reader)0x0;" (assignment_expression "this[8] = (Gdb_index_info_reader)0x0" (subscript_expression "this[8]" identifier [ number_literal ]) = (cast_expression "(Gdb_index_info_reader)0x0" ( (type_descriptor "Gdb_index_info_reader" type_identifier) ) number_literal)) ;) (expression_statement "*(Gdb_index_info_reader **)this = this + 8;" (assignment_expression "*(Gdb_index_info_reader **)this = this + 8" (pointer_expression "*(Gdb_index_info_reader **)this" * (cast_expression "(Gdb_index_info_reader **)this" ( (type_descriptor "Gdb_index_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "this + 8" identifier + number_literal)) ;) (ERROR "std::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::" (comma_expression "std::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std" identifier (ERROR "::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>" : : (comma_expression "_Hashtable<long_long,std" (binary_expression "_Hashtable<long_long" identifier < identifier) , identifier) : : (comma_expression "pair<long_long_const,gold" (binary_expression "pair<long_long_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_long_const,gold" (binary_expression "pair<long_long_const" identifier < identifier) , identifier) : : (comma_expression "Gdb_index_info_reader::Declaration_pair>>,std" identifier (ERROR "::Declaration_pair>>" : : identifier >>) , identifier) : : (comma_expression "__detail::_Select1st,std::equal_to<long_long>,std" identifier (ERROR "::_Select1st,std::equal_to<long_long>" : : (comma_expression "_Select1st,std" identifier , identifier) : : (binary_expression "equal_to<long_long" identifier < identifier) >) , identifier) : : (binary_expression "hash<long_long" identifier < identifier) >) , identifier) : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : :) (expression_statement "_Hashtable_traits<false,false,true>>\n  ::find((longlong *)local_20);" (comma_expression "_Hashtable_traits<false,false,true>>\n  ::find((longlong *)local_20)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "false,true>>\n  ::find((longlong *)local_20)" false , (binary_expression "true>>\n  ::find((longlong *)local_20)" true >> (ERROR "::" : :) (call_expression "find((longlong *)local_20)" identifier (argument_list "((longlong *)local_20)" ( (cast_expression "(longlong *)local_20" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))))) ;) (if_statement "if (local_20[0] != 0) {\n    if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }\n    iVar4 = *(int *)(local_20[0] + 0x18);\n    if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */\n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }\n  }" if (parenthesized_expression "(local_20[0] != 0)" ( (binary_expression "local_20[0] != 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }\n    iVar4 = *(int *)(local_20[0] + 0x18);\n    if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */\n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }\n  }" { (if_statement "if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }" if (parenthesized_expression "((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0))))" ( (binary_expression "(0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))" (parenthesized_expression "(0 < *(int *)(local_20[0] + 0x10))" ( (binary_expression "0 < *(int *)(local_20[0] + 0x10)" number_literal < (pointer_expression "*(int *)(local_20[0] + 0x10)" * (cast_expression "(int *)(local_20[0] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + 0x10)" ( (binary_expression "local_20[0] + 0x10" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) ))))) )) || (parenthesized_expression "((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))" ( (parenthesized_expression "(*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0))" ( (binary_expression "*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)" (binary_expression "*(int *)(local_20[0] + 0x10) == 0" (pointer_expression "*(int *)(local_20[0] + 0x10)" * (cast_expression "(int *)(local_20[0] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + 0x10)" ( (binary_expression "local_20[0] + 0x10" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) )))) == number_literal) && (parenthesized_expression "(*(int *)(local_20[0] + 0x14) != 0)" ( (binary_expression "*(int *)(local_20[0] + 0x14) != 0" (pointer_expression "*(int *)(local_20[0] + 0x14)" * (cast_expression "(int *)(local_20[0] + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + 0x14)" ( (binary_expression "local_20[0] + 0x14" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) )))) != number_literal) ))) )) ))) )) (compound_statement "{\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }" { (expression_statement "get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));" (call_expression "get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4))" identifier (argument_list "((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4))" ( (cast_expression "(Gdb_index_info_reader *)&local_38" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_38" & identifier)) , (call_expression "CONCAT44(iVar5,in_stack_ffffffc4)" identifier (argument_list "(iVar5,in_stack_ffffffc4)" ( identifier , identifier ))) ))) ;) (expression_statement "pGVar2 = *(Gdb_index_info_reader **)this;" (assignment_expression "pGVar2 = *(Gdb_index_info_reader **)this" identifier = (pointer_expression "*(Gdb_index_info_reader **)this" * (cast_expression "(Gdb_index_info_reader **)this" ( (type_descriptor "Gdb_index_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" if (parenthesized_expression "(local_38 == (Gdb_index_info_reader *)local_30)" ( (binary_expression "local_38 == (Gdb_index_info_reader *)local_30" identifier == (cast_expression "(Gdb_index_info_reader *)local_30" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }" { (if_statement "if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }" { (if_statement "if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }" if (parenthesized_expression "(local_34 == 1)" ( (binary_expression "local_34 == 1" identifier == number_literal) )) (compound_statement "{\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }" { (expression_statement "*pGVar2 = local_30[0]._0_1_;" (assignment_expression "*pGVar2 = local_30[0]._0_1_" (pointer_expression "*pGVar2" * identifier) = (field_expression "local_30[0]._0_1_" (subscript_expression "local_30[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pGVar2 = *(Gdb_index_info_reader **)this;" (assignment_expression "pGVar2 = *(Gdb_index_info_reader **)this" identifier = (pointer_expression "*(Gdb_index_info_reader **)this" * (cast_expression "(Gdb_index_info_reader **)this" ( (type_descriptor "Gdb_index_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }) (else_clause "else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }" else (compound_statement "{\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }" { (expression_statement "(**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);" (call_expression "(**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30)" (parenthesized_expression "(**(code **)(iVar5 + -0x3698))" ( (pointer_expression "**(code **)(iVar5 + -0x3698)" * (pointer_expression "*(code **)(iVar5 + -0x3698)" * (cast_expression "(code **)(iVar5 + -0x3698)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x3698)" ( (binary_expression "iVar5 + -0x3698" identifier + number_literal) ))))) )) (argument_list "(pGVar2,(Gdb_index_info_reader *)local_30)" ( identifier , (cast_expression "(Gdb_index_info_reader *)local_30" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "pGVar2 = *(Gdb_index_info_reader **)this;" (assignment_expression "pGVar2 = *(Gdb_index_info_reader **)this" identifier = (pointer_expression "*(Gdb_index_info_reader **)this" * (cast_expression "(Gdb_index_info_reader **)this" ( (type_descriptor "Gdb_index_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }))) })) (expression_statement "*(int *)(this + 4) = local_34;" (assignment_expression "*(int *)(this + 4) = local_34" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "pGVar2[local_34] = (Gdb_index_info_reader)0x0;" (assignment_expression "pGVar2[local_34] = (Gdb_index_info_reader)0x0" (subscript_expression "pGVar2[local_34]" identifier [ identifier ]) = (cast_expression "(Gdb_index_info_reader)0x0" ( (type_descriptor "Gdb_index_info_reader" type_identifier) ) number_literal)) ;) }) (else_clause "else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" else (if_statement "if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" if (parenthesized_expression "(this + 8 == pGVar2)" ( (binary_expression "this + 8 == pGVar2" (binary_expression "this + 8" identifier + number_literal) == identifier) )) (compound_statement "{\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }" { (expression_statement "*(Gdb_index_info_reader **)this = local_38;" (assignment_expression "*(Gdb_index_info_reader **)this = local_38" (pointer_expression "*(Gdb_index_info_reader **)this" * (cast_expression "(Gdb_index_info_reader **)this" ( (type_descriptor "Gdb_index_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = local_34;" (assignment_expression "*(int *)(this + 4) = local_34" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this + 8) = local_30[0];" (assignment_expression "*(undefined4 *)(this + 8) = local_30[0]" (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = (subscript_expression "local_30[0]" identifier [ number_literal ])) ;) (expression_statement "local_38 = (Gdb_index_info_reader *)local_30;" (assignment_expression "local_38 = (Gdb_index_info_reader *)local_30" identifier = (cast_expression "(Gdb_index_info_reader *)local_30" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" else (compound_statement "{\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" { (expression_statement "uVar3 = *(undefined4 *)(this + 8);" (assignment_expression "uVar3 = *(undefined4 *)(this + 8)" identifier = (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (expression_statement "*(Gdb_index_info_reader **)this = local_38;" (assignment_expression "*(Gdb_index_info_reader **)this = local_38" (pointer_expression "*(Gdb_index_info_reader **)this" * (cast_expression "(Gdb_index_info_reader **)this" ( (type_descriptor "Gdb_index_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = local_34;" (assignment_expression "*(int *)(this + 4) = local_34" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this + 8) = local_30[0];" (assignment_expression "*(undefined4 *)(this + 8) = local_30[0]" (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = (subscript_expression "local_30[0]" identifier [ number_literal ])) ;) (expression_statement "local_38 = (Gdb_index_info_reader *)local_30;" (assignment_expression "local_38 = (Gdb_index_info_reader *)local_30" identifier = (cast_expression "(Gdb_index_info_reader *)local_30" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }" if (parenthesized_expression "(pGVar2 != (Gdb_index_info_reader *)0x0)" ( (binary_expression "pGVar2 != (Gdb_index_info_reader *)0x0" identifier != (cast_expression "(Gdb_index_info_reader *)0x0" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }" { (expression_statement "local_38 = pGVar2;" (assignment_expression "local_38 = pGVar2" identifier = identifier) ;) (expression_statement "local_30[0] = uVar3;" (assignment_expression "local_30[0] = uVar3" (subscript_expression "local_30[0]" identifier [ number_literal ]) = identifier) ;) })) }))))) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "*local_38 = (Gdb_index_info_reader)0x0;" (assignment_expression "*local_38 = (Gdb_index_info_reader)0x0" (pointer_expression "*local_38" * identifier) = (cast_expression "(Gdb_index_info_reader)0x0" ( (type_descriptor "Gdb_index_info_reader" type_identifier) ) number_literal)) ;) (if_statement "if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }" if (parenthesized_expression "(local_38 != (Gdb_index_info_reader *)local_30)" ( (binary_expression "local_38 != (Gdb_index_info_reader *)local_30" identifier != (cast_expression "(Gdb_index_info_reader *)local_30" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        (**(code **)(iVar5 + -0x7f44))();\n      }" { (expression_statement "(**(code **)(iVar5 + -0x7f44))();" (call_expression "(**(code **)(iVar5 + -0x7f44))()" (parenthesized_expression "(**(code **)(iVar5 + -0x7f44))" ( (pointer_expression "**(code **)(iVar5 + -0x7f44)" * (pointer_expression "*(code **)(iVar5 + -0x7f44)" * (cast_expression "(code **)(iVar5 + -0x7f44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x7f44)" ( (binary_expression "iVar5 + -0x7f44" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }" if (parenthesized_expression "(0x7fffffffU - *(int *)(this + 4) < 2)" ( (binary_expression "0x7fffffffU - *(int *)(this + 4) < 2" (binary_expression "0x7fffffffU - *(int *)(this + 4)" number_literal - (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) < number_literal) )) (compound_statement "{\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }" { (expression_statement "pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);" (assignment_expression "pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" identifier = (cast_expression "(Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" (parenthesized_expression "(**(code **)(iVar5 + -0x73cc))" ( (pointer_expression "**(code **)(iVar5 + -0x73cc)" * (pointer_expression "*(code **)(iVar5 + -0x73cc)" * (cast_expression "(code **)(iVar5 + -0x73cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x73cc)" ( (binary_expression "iVar5 + -0x73cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar5 + -0x7fc4) + 0x446c)" ( (binary_expression "*(int *)(iVar5 + -0x7fc4) + 0x446c" (pointer_expression "*(int *)(iVar5 + -0x7fc4)" * (cast_expression "(int *)(iVar5 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x7fc4)" ( (binary_expression "iVar5 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pGVar2;" return identifier ;) })) (expression_statement "(**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);" (call_expression "(**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2)" (parenthesized_expression "(**(code **)(iVar5 + -0x73d8))" ( (pointer_expression "**(code **)(iVar5 + -0x73d8)" * (pointer_expression "*(code **)(iVar5 + -0x73d8)" * (cast_expression "(code **)(iVar5 + -0x73d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x73d8)" ( (binary_expression "iVar5 + -0x73d8" identifier + number_literal) ))))) )) (argument_list "(this,*(int *)(iVar5 + -0x77f0) + 0x208,2)" ( identifier , (binary_expression "*(int *)(iVar5 + -0x77f0) + 0x208" (pointer_expression "*(int *)(iVar5 + -0x77f0)" * (cast_expression "(int *)(iVar5 + -0x77f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x77f0)" ( (binary_expression "iVar5 + -0x77f0" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) (expression_statement "iVar4 = *(int *)(local_20[0] + 0x18);" (assignment_expression "iVar4 = *(int *)(local_20[0] + 0x18)" identifier = (pointer_expression "*(int *)(local_20[0] + 0x18)" * (cast_expression "(int *)(local_20[0] + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + 0x18)" ( (binary_expression "local_20[0] + 0x18" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */\n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */\n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }" { (expression_statement "uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);" (assignment_expression "uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4)" identifier = (call_expression "(**(code **)(iVar5 + -0x36a4))(iVar4)" (parenthesized_expression "(**(code **)(iVar5 + -0x36a4))" ( (pointer_expression "**(code **)(iVar5 + -0x36a4)" * (pointer_expression "*(code **)(iVar5 + -0x36a4)" * (cast_expression "(code **)(iVar5 + -0x36a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x36a4)" ( (binary_expression "iVar5 + -0x36a4" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }" if (parenthesized_expression "(0x7fffffffU - *(int *)(this + 4) < uVar1)" ( (binary_expression "0x7fffffffU - *(int *)(this + 4) < uVar1" (binary_expression "0x7fffffffU - *(int *)(this + 4)" number_literal - (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) < identifier) )) (compound_statement "{\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }" { (expression_statement "pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);" (assignment_expression "pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" identifier = (cast_expression "(Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" (parenthesized_expression "(**(code **)(iVar5 + -0x73cc))" ( (pointer_expression "**(code **)(iVar5 + -0x73cc)" * (pointer_expression "*(code **)(iVar5 + -0x73cc)" * (cast_expression "(code **)(iVar5 + -0x73cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x73cc)" ( (binary_expression "iVar5 + -0x73cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar5 + -0x7fc4) + 0x446c)" ( (binary_expression "*(int *)(iVar5 + -0x7fc4) + 0x446c" (pointer_expression "*(int *)(iVar5 + -0x7fc4)" * (cast_expression "(int *)(iVar5 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x7fc4)" ( (binary_expression "iVar5 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pGVar2;" return identifier ;) })) comment (expression_statement "(**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);" (call_expression "(**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1)" (parenthesized_expression "(**(code **)(iVar5 + -0x73d8))" ( (pointer_expression "**(code **)(iVar5 + -0x73d8)" * (pointer_expression "*(code **)(iVar5 + -0x73d8)" * (cast_expression "(code **)(iVar5 + -0x73d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x73d8)" ( (binary_expression "iVar5 + -0x73d8" identifier + number_literal) ))))) )) (argument_list "(this,iVar4,uVar1)" ( identifier , identifier , identifier ))) ;) })) })) (return_statement "return this;" return identifier ;) }))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original prototype: string get_context(Gdb_index_info_reader * this, off_t die_offset) */\n\nstring * __thiscall\ngold::Gdb_index_info_reader::get_context\n          (string *__return_storage_ptr__,Gdb_index_info_reader *this,off_t die_offset)\n\n{\n  uint uVar1;\n  string *psVar2;\n  string *context;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar3;\n  size_type sVar4;\n  __bucket_type p_Var5;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar6;\n  int iVar7;\n  undefined4 in_stack_ffffffc4;\n  string local_38;\n  __bucket_type *local_20;\n  \n  iVar7 = 0x4c9240;\n  __return_storage_ptr__->_M_string_length = 0;\n  (__return_storage_ptr__->field_2)._M_local_buf[0] = '\0';\n  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n  std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::find((_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n          *)&local_20,(key_type_conflict1 *)&this->declarations_);\n  if (local_20 != (__bucket_type *)0x0) {\n    if ((0 < (int)local_20[4]) ||\n       ((local_20[4] == (__bucket_type)0x0 && (local_20[5] != (__bucket_type)0x0)))) {\n      get_context(&local_38,this,CONCAT44(iVar7,in_stack_ffffffc4));\n      paVar6 = &local_38.field_2;\n      paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p == paVar6) {\n        if (local_38._M_string_length != 0) {\n          if (local_38._M_string_length == 1) {\n            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n          else {\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n        }\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        paVar3->_M_local_buf[local_38._M_string_length] = '\0';\n      }\n      else if (&__return_storage_ptr__->field_2 == paVar3) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n      }\n      else {\n        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n        if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0) {\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }\n      }\n      local_38._M_string_length = 0;\n      *local_38._M_dataplus._M_p = '\0';\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p != paVar6) {\n        (**(code **)(iVar7 + -0x7f44))();\n      }\n      if (0x7fffffff - __return_storage_ptr__->_M_string_length < 2) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }\n      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,*(int *)(iVar7 + -0x77f0) + 0x208,2);\n    }\n    p_Var5 = local_20[6];\n    if (p_Var5 != (__bucket_type)0x0) {\n      uVar1 = (**(code **)(iVar7 + -0x36a4))(p_Var5);\n      if (0x7fffffff - __return_storage_ptr__->_M_string_length < uVar1) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }\n                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */\n      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,p_Var5,uVar1);\n    }\n  }\n  return __return_storage_ptr__;\n}\n\n" comment comment comment comment comment comment comment (ERROR "string * __thiscall\ngold::Gdb_index_info_reader::get_context\n          (string *__return_storage_ptr__,Gdb_index_info_reader *this,off_t die_offset)" (binary_expression "string * __thiscall\ngold::Gdb_index_info_reader::get_context\n          (string *__return_storage_ptr__,Gdb_index_info_reader *this,off_t die_offset)" identifier * (call_expression "__thiscall\ngold::Gdb_index_info_reader::get_context\n          (string *__return_storage_ptr__,Gdb_index_info_reader *this,off_t die_offset)" identifier (ERROR "gold::Gdb_index_info_reader::get_context" identifier : : identifier : : identifier) (argument_list "(string *__return_storage_ptr__,Gdb_index_info_reader *this,off_t die_offset)" ( (binary_expression "string *__return_storage_ptr__" identifier * identifier) , (binary_expression "Gdb_index_info_reader *this" identifier * identifier) , (ERROR "off_t" identifier) identifier ))))) (compound_statement "{\n  uint uVar1;\n  string *psVar2;\n  string *context;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar3;\n  size_type sVar4;\n  __bucket_type p_Var5;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar6;\n  int iVar7;\n  undefined4 in_stack_ffffffc4;\n  string local_38;\n  __bucket_type *local_20;\n  \n  iVar7 = 0x4c9240;\n  __return_storage_ptr__->_M_string_length = 0;\n  (__return_storage_ptr__->field_2)._M_local_buf[0] = '\0';\n  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n  std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::find((_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n          *)&local_20,(key_type_conflict1 *)&this->declarations_);\n  if (local_20 != (__bucket_type *)0x0) {\n    if ((0 < (int)local_20[4]) ||\n       ((local_20[4] == (__bucket_type)0x0 && (local_20[5] != (__bucket_type)0x0)))) {\n      get_context(&local_38,this,CONCAT44(iVar7,in_stack_ffffffc4));\n      paVar6 = &local_38.field_2;\n      paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p == paVar6) {\n        if (local_38._M_string_length != 0) {\n          if (local_38._M_string_length == 1) {\n            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n          else {\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n        }\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        paVar3->_M_local_buf[local_38._M_string_length] = '\0';\n      }\n      else if (&__return_storage_ptr__->field_2 == paVar3) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n      }\n      else {\n        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n        if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0) {\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }\n      }\n      local_38._M_string_length = 0;\n      *local_38._M_dataplus._M_p = '\0';\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p != paVar6) {\n        (**(code **)(iVar7 + -0x7f44))();\n      }\n      if (0x7fffffff - __return_storage_ptr__->_M_string_length < 2) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }\n      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,*(int *)(iVar7 + -0x77f0) + 0x208,2);\n    }\n    p_Var5 = local_20[6];\n    if (p_Var5 != (__bucket_type)0x0) {\n      uVar1 = (**(code **)(iVar7 + -0x36a4))(p_Var5);\n      if (0x7fffffff - __return_storage_ptr__->_M_string_length < uVar1) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }\n                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */\n      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,p_Var5,uVar1);\n    }\n  }\n  return __return_storage_ptr__;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "string *psVar2;" type_identifier (pointer_declarator "*psVar2" * identifier) ;) (declaration "string *context;" type_identifier (pointer_declarator "*context" * identifier) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar3;" (binary_expression "allocator<char>_>_9\n  *paVar3" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar3" identifier * identifier)) ;) (declaration "size_type sVar4;" type_identifier identifier ;) (declaration "__bucket_type p_Var5;" type_identifier identifier ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar6;" (binary_expression "allocator<char>_>_9\n  *paVar6" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar6" identifier * identifier)) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 in_stack_ffffffc4;" type_identifier identifier ;) (declaration "string local_38;" type_identifier identifier ;) (declaration "__bucket_type *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (expression_statement "iVar7 = 0x4c9240;" (assignment_expression "iVar7 = 0x4c9240" identifier = number_literal) ;) (expression_statement "__return_storage_ptr__->_M_string_length = 0;" (assignment_expression "__return_storage_ptr__->_M_string_length = 0" (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) = number_literal) ;) (expression_statement "(__return_storage_ptr__->field_2)._M_local_buf[0] = '\0';" (assignment_expression "(__return_storage_ptr__->field_2)._M_local_buf[0] = '\0'" (subscript_expression "(__return_storage_ptr__->field_2)._M_local_buf[0]" (field_expression "(__return_storage_ptr__->field_2)._M_local_buf" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(pointer)&__return_storage_ptr__->field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) ;) (ERROR "std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "std::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std" identifier (ERROR "::\n  _Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>" : : (comma_expression "_Hashtable<long_long_int,_std" (binary_expression "_Hashtable<long_long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_long_int_const,_gold" (binary_expression "pair<long_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_long_int_const,_gold" (binary_expression "pair<long_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_long_int>,_std" identifier (ERROR "::_Select1st,_std::equal_to<long_long_int>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_long_int" identifier < identifier) >) , identifier) : : (binary_expression "hash<long_long_int" identifier < identifier) >) , identifier) : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : :) (expression_statement "_Hashtable_traits<false,_false,_true>_>\n  ::find((_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n          *)&local_20,(key_type_conflict1 *)&this->declarations_);" (comma_expression "_Hashtable_traits<false,_false,_true>_>\n  ::find((_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n          *)&local_20,(key_type_conflict1 *)&this->declarations_)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n  ::find((_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n          *)&local_20,(key_type_conflict1 *)&this->declarations_)" identifier , (binary_expression "_true>_>\n  ::find((_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n          *)&local_20,(key_type_conflict1 *)&this->declarations_)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "find((_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n          *)&local_20,(key_type_conflict1 *)&this->declarations_)" identifier (argument_list "((_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n          *)&local_20,(key_type_conflict1 *)&this->declarations_)" ( (binary_expression "(_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n          *)&local_20" (parenthesized_expression "(_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n          *)" ( (ERROR "_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::allocator<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<long_long_int,_std" (binary_expression "_Hashtable<long_long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_long_int_const,_gold" (binary_expression "pair<long_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_long_int_const,_gold" (binary_expression "pair<long_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_long_int>,_std" (binary_expression "equal_to<long_long_int" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<long_long_int>,_std" (binary_expression "hash<long_long_int" identifier < identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<false,_false,_true>_>\n          *" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n          *" identifier , (binary_expression "_true>_>\n          *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & identifier) , (cast_expression "(key_type_conflict1 *)&this->declarations_" ( (type_descriptor "key_type_conflict1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->declarations_" & (field_expression "this->declarations_" identifier -> field_identifier))) )))))) ;) (if_statement "if (local_20 != (__bucket_type *)0x0) {\n    if ((0 < (int)local_20[4]) ||\n       ((local_20[4] == (__bucket_type)0x0 && (local_20[5] != (__bucket_type)0x0)))) {\n      get_context(&local_38,this,CONCAT44(iVar7,in_stack_ffffffc4));\n      paVar6 = &local_38.field_2;\n      paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p == paVar6) {\n        if (local_38._M_string_length != 0) {\n          if (local_38._M_string_length == 1) {\n            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n          else {\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n        }\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        paVar3->_M_local_buf[local_38._M_string_length] = '\0';\n      }\n      else if (&__return_storage_ptr__->field_2 == paVar3) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n      }\n      else {\n        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n        if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0) {\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }\n      }\n      local_38._M_string_length = 0;\n      *local_38._M_dataplus._M_p = '\0';\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p != paVar6) {\n        (**(code **)(iVar7 + -0x7f44))();\n      }\n      if (0x7fffffff - __return_storage_ptr__->_M_string_length < 2) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }\n      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,*(int *)(iVar7 + -0x77f0) + 0x208,2);\n    }\n    p_Var5 = local_20[6];\n    if (p_Var5 != (__bucket_type)0x0) {\n      uVar1 = (**(code **)(iVar7 + -0x36a4))(p_Var5);\n      if (0x7fffffff - __return_storage_ptr__->_M_string_length < uVar1) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }\n                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */\n      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,p_Var5,uVar1);\n    }\n  }" if (parenthesized_expression "(local_20 != (__bucket_type *)0x0)" ( (binary_expression "local_20 != (__bucket_type *)0x0" identifier != (cast_expression "(__bucket_type *)0x0" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((0 < (int)local_20[4]) ||\n       ((local_20[4] == (__bucket_type)0x0 && (local_20[5] != (__bucket_type)0x0)))) {\n      get_context(&local_38,this,CONCAT44(iVar7,in_stack_ffffffc4));\n      paVar6 = &local_38.field_2;\n      paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p == paVar6) {\n        if (local_38._M_string_length != 0) {\n          if (local_38._M_string_length == 1) {\n            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n          else {\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n        }\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        paVar3->_M_local_buf[local_38._M_string_length] = '\0';\n      }\n      else if (&__return_storage_ptr__->field_2 == paVar3) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n      }\n      else {\n        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n        if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0) {\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }\n      }\n      local_38._M_string_length = 0;\n      *local_38._M_dataplus._M_p = '\0';\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p != paVar6) {\n        (**(code **)(iVar7 + -0x7f44))();\n      }\n      if (0x7fffffff - __return_storage_ptr__->_M_string_length < 2) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }\n      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,*(int *)(iVar7 + -0x77f0) + 0x208,2);\n    }\n    p_Var5 = local_20[6];\n    if (p_Var5 != (__bucket_type)0x0) {\n      uVar1 = (**(code **)(iVar7 + -0x36a4))(p_Var5);\n      if (0x7fffffff - __return_storage_ptr__->_M_string_length < uVar1) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }\n                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */\n      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,p_Var5,uVar1);\n    }\n  }" { (if_statement "if ((0 < (int)local_20[4]) ||\n       ((local_20[4] == (__bucket_type)0x0 && (local_20[5] != (__bucket_type)0x0)))) {\n      get_context(&local_38,this,CONCAT44(iVar7,in_stack_ffffffc4));\n      paVar6 = &local_38.field_2;\n      paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p == paVar6) {\n        if (local_38._M_string_length != 0) {\n          if (local_38._M_string_length == 1) {\n            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n          else {\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n        }\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        paVar3->_M_local_buf[local_38._M_string_length] = '\0';\n      }\n      else if (&__return_storage_ptr__->field_2 == paVar3) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n      }\n      else {\n        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n        if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0) {\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }\n      }\n      local_38._M_string_length = 0;\n      *local_38._M_dataplus._M_p = '\0';\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p != paVar6) {\n        (**(code **)(iVar7 + -0x7f44))();\n      }\n      if (0x7fffffff - __return_storage_ptr__->_M_string_length < 2) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }\n      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,*(int *)(iVar7 + -0x77f0) + 0x208,2);\n    }" if (parenthesized_expression "((0 < (int)local_20[4]) ||\n       ((local_20[4] == (__bucket_type)0x0 && (local_20[5] != (__bucket_type)0x0))))" ( (binary_expression "(0 < (int)local_20[4]) ||\n       ((local_20[4] == (__bucket_type)0x0 && (local_20[5] != (__bucket_type)0x0)))" (parenthesized_expression "(0 < (int)local_20[4])" ( (binary_expression "0 < (int)local_20[4]" number_literal < (cast_expression "(int)local_20[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_20[4]" identifier [ number_literal ]))) )) || (parenthesized_expression "((local_20[4] == (__bucket_type)0x0 && (local_20[5] != (__bucket_type)0x0)))" ( (parenthesized_expression "(local_20[4] == (__bucket_type)0x0 && (local_20[5] != (__bucket_type)0x0))" ( (binary_expression "local_20[4] == (__bucket_type)0x0 && (local_20[5] != (__bucket_type)0x0)" (binary_expression "local_20[4] == (__bucket_type)0x0" (subscript_expression "local_20[4]" identifier [ number_literal ]) == (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) && (parenthesized_expression "(local_20[5] != (__bucket_type)0x0)" ( (binary_expression "local_20[5] != (__bucket_type)0x0" (subscript_expression "local_20[5]" identifier [ number_literal ]) != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ))) )) ))) )) (compound_statement "{\n      get_context(&local_38,this,CONCAT44(iVar7,in_stack_ffffffc4));\n      paVar6 = &local_38.field_2;\n      paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(__return_storage_ptr__->_M_dataplus)._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p == paVar6) {\n        if (local_38._M_string_length != 0) {\n          if (local_38._M_string_length == 1) {\n            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n          else {\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n        }\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        paVar3->_M_local_buf[local_38._M_string_length] = '\0';\n      }\n      else if (&__return_storage_ptr__->field_2 == paVar3) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n      }\n      else {\n        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n        if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0) {\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }\n      }\n      local_38._M_string_length = 0;\n      *local_38._M_dataplus._M_p = '\0';\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p != paVar6) {\n        (**(code **)(iVar7 + -0x7f44))();\n      }\n      if (0x7fffffff - __return_storage_ptr__->_M_string_length < 2) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }\n      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,*(int *)(iVar7 + -0x77f0) + 0x208,2);\n    }" { (expression_statement "get_context(&local_38,this,CONCAT44(iVar7,in_stack_ffffffc4));" (call_expression "get_context(&local_38,this,CONCAT44(iVar7,in_stack_ffffffc4))" identifier (argument_list "(&local_38,this,CONCAT44(iVar7,in_stack_ffffffc4))" ( (pointer_expression "&local_38" & identifier) , identifier , (call_expression "CONCAT44(iVar7,in_stack_ffffffc4)" identifier (argument_list "(iVar7,in_stack_ffffffc4)" ( identifier , identifier ))) ))) ;) (expression_statement "paVar6 = &local_38.field_2;" (assignment_expression "paVar6 = &local_38.field_2" identifier = (pointer_expression "&local_38.field_2" & (field_expression "local_38.field_2" identifier . field_identifier))) ;) (expression_statement "paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(__return_storage_ptr__->_M_dataplus)._M_p;" (assignment_expression "paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(__return_storage_ptr__->_M_dataplus)._M_p" identifier = (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(__return_storage_ptr__->_M_dataplus)._M_p" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)(__return_storage_ptr__->_M_dataplus)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) ))) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p == paVar6) {\n        if (local_38._M_string_length != 0) {\n          if (local_38._M_string_length == 1) {\n            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n          else {\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n        }\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        paVar3->_M_local_buf[local_38._M_string_length] = '\0';\n      }\n      else if (&__return_storage_ptr__->field_2 == paVar3) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n      }\n      else {\n        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n        if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0) {\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p == paVar6)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p == paVar6)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)local_38._M_dataplus._M_p == paVar6" (binary_expression "allocator<char>_>_9\n           *)local_38._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)local_38._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_38._M_dataplus._M_p" (field_expression "local_38._M_dataplus" identifier . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n        if (local_38._M_string_length != 0) {\n          if (local_38._M_string_length == 1) {\n            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n          else {\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n        }\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        paVar3->_M_local_buf[local_38._M_string_length] = '\0';\n      }" { (if_statement "if (local_38._M_string_length != 0) {\n          if (local_38._M_string_length == 1) {\n            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n          else {\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n        }" if (parenthesized_expression "(local_38._M_string_length != 0)" ( (binary_expression "local_38._M_string_length != 0" (field_expression "local_38._M_string_length" identifier . field_identifier) != number_literal) )) (compound_statement "{\n          if (local_38._M_string_length == 1) {\n            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n          else {\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n        }" { (if_statement "if (local_38._M_string_length == 1) {\n            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }\n          else {\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }" if (parenthesized_expression "(local_38._M_string_length == 1)" ( (binary_expression "local_38._M_string_length == 1" (field_expression "local_38._M_string_length" identifier . field_identifier) == number_literal) )) (compound_statement "{\n            paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }" { (expression_statement "paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0];" (assignment_expression "paVar3->_M_local_buf[0] = local_38.field_2._M_local_buf[0]" (subscript_expression "paVar3->_M_local_buf[0]" (field_expression "paVar3->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "local_38.field_2._M_local_buf[0]" (field_expression "local_38.field_2._M_local_buf" (field_expression "local_38.field_2" identifier . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;" (assignment_expression "paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p" identifier = (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) ))) . field_identifier)) ;) }) (else_clause "else {\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }" else (compound_statement "{\n            (**(code **)(iVar7 + -0x3698))(paVar3,paVar6);\n            paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;\n          }" { (expression_statement "(**(code **)(iVar7 + -0x3698))(paVar3,paVar6);" (call_expression "(**(code **)(iVar7 + -0x3698))(paVar3,paVar6)" (parenthesized_expression "(**(code **)(iVar7 + -0x3698))" ( (pointer_expression "**(code **)(iVar7 + -0x3698)" * (pointer_expression "*(code **)(iVar7 + -0x3698)" * (cast_expression "(code **)(iVar7 + -0x3698)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x3698)" ( (binary_expression "iVar7 + -0x3698" identifier + number_literal) ))))) )) (argument_list "(paVar3,paVar6)" ( identifier , identifier ))) ;) (expression_statement "paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p;" (assignment_expression "paVar3 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p" identifier = (field_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)._M_p" (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)(__return_storage_ptr__->_M_dataplus)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                      *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) ))) . field_identifier)) ;) }))) })) (expression_statement "__return_storage_ptr__->_M_string_length = local_38._M_string_length;" (assignment_expression "__return_storage_ptr__->_M_string_length = local_38._M_string_length" (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) = (field_expression "local_38._M_string_length" identifier . field_identifier)) ;) (expression_statement "paVar3->_M_local_buf[local_38._M_string_length] = '\0';" (assignment_expression "paVar3->_M_local_buf[local_38._M_string_length] = '\0'" (subscript_expression "paVar3->_M_local_buf[local_38._M_string_length]" (field_expression "paVar3->_M_local_buf" identifier -> field_identifier) [ (field_expression "local_38._M_string_length" identifier . field_identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else if (&__return_storage_ptr__->field_2 == paVar3) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n      }\n      else {\n        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n        if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0) {\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }\n      }" else (if_statement "if (&__return_storage_ptr__->field_2 == paVar3) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n      }\n      else {\n        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n        if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0) {\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }\n      }" if (parenthesized_expression "(&__return_storage_ptr__->field_2 == paVar3)" ( (binary_expression "&__return_storage_ptr__->field_2 == paVar3" (pointer_expression "&__return_storage_ptr__->field_2" & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier)) == identifier) )) (compound_statement "{\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n      }" { (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (field_expression "local_38._M_dataplus._M_p" (field_expression "local_38._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__return_storage_ptr__->_M_string_length = local_38._M_string_length;" (assignment_expression "__return_storage_ptr__->_M_string_length = local_38._M_string_length" (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) = (field_expression "local_38._M_string_length" identifier . field_identifier)) ;) (expression_statement "(__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;" (assignment_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity" (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) = (field_expression "local_38.field_2._M_allocated_capacity" (field_expression "local_38.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "local_38._M_dataplus._M_p = (pointer)paVar6;" (assignment_expression "local_38._M_dataplus._M_p = (pointer)paVar6" (field_expression "local_38._M_dataplus._M_p" (field_expression "local_38._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar6" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n        if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0) {\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }\n      }" else (compound_statement "{\n        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;\n        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;\n        __return_storage_ptr__->_M_string_length = local_38._M_string_length;\n        (__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;\n        local_38._M_dataplus._M_p = (pointer)paVar6;\n        if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0) {\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }\n      }" { (expression_statement "sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;" (assignment_expression "sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity" identifier = (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (field_expression "local_38._M_dataplus._M_p" (field_expression "local_38._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__return_storage_ptr__->_M_string_length = local_38._M_string_length;" (assignment_expression "__return_storage_ptr__->_M_string_length = local_38._M_string_length" (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) = (field_expression "local_38._M_string_length" identifier . field_identifier)) ;) (expression_statement "(__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity;" (assignment_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity =\n             local_38.field_2._M_allocated_capacity" (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) = (field_expression "local_38.field_2._M_allocated_capacity" (field_expression "local_38.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "local_38._M_dataplus._M_p = (pointer)paVar6;" (assignment_expression "local_38._M_dataplus._M_p = (pointer)paVar6" (field_expression "local_38._M_dataplus._M_p" (field_expression "local_38._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar6" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0) {\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }" if (parenthesized_expression "(paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0)" ( (binary_expression "paVar3 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0)" identifier != (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)0x0)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                       *)0x0" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                       *)0x0" identifier * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n          local_38._M_dataplus._M_p = (pointer)paVar3;\n          local_38.field_2._M_allocated_capacity = sVar4;\n        }" { (expression_statement "local_38._M_dataplus._M_p = (pointer)paVar3;" (assignment_expression "local_38._M_dataplus._M_p = (pointer)paVar3" (field_expression "local_38._M_dataplus._M_p" (field_expression "local_38._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar3" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "local_38.field_2._M_allocated_capacity = sVar4;" (assignment_expression "local_38.field_2._M_allocated_capacity = sVar4" (field_expression "local_38.field_2._M_allocated_capacity" (field_expression "local_38.field_2" identifier . field_identifier) . field_identifier) = identifier) ;) })) }))))) (expression_statement "local_38._M_string_length = 0;" (assignment_expression "local_38._M_string_length = 0" (field_expression "local_38._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "*local_38._M_dataplus._M_p = '\0';" (assignment_expression "*local_38._M_dataplus._M_p = '\0'" (pointer_expression "*local_38._M_dataplus._M_p" * (field_expression "local_38._M_dataplus._M_p" (field_expression "local_38._M_dataplus" identifier . field_identifier) . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p != paVar6) {\n        (**(code **)(iVar7 + -0x7f44))();\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p != paVar6)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_38._M_dataplus._M_p != paVar6)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)local_38._M_dataplus._M_p != paVar6" (binary_expression "allocator<char>_>_9\n           *)local_38._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)local_38._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_38._M_dataplus._M_p" (field_expression "local_38._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n        (**(code **)(iVar7 + -0x7f44))();\n      }" { (expression_statement "(**(code **)(iVar7 + -0x7f44))();" (call_expression "(**(code **)(iVar7 + -0x7f44))()" (parenthesized_expression "(**(code **)(iVar7 + -0x7f44))" ( (pointer_expression "**(code **)(iVar7 + -0x7f44)" * (pointer_expression "*(code **)(iVar7 + -0x7f44)" * (cast_expression "(code **)(iVar7 + -0x7f44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x7f44)" ( (binary_expression "iVar7 + -0x7f44" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if (0x7fffffff - __return_storage_ptr__->_M_string_length < 2) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }" if (parenthesized_expression "(0x7fffffff - __return_storage_ptr__->_M_string_length < 2)" ( (binary_expression "0x7fffffff - __return_storage_ptr__->_M_string_length < 2" (binary_expression "0x7fffffff - __return_storage_ptr__->_M_string_length" number_literal - (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }" { (expression_statement "psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);" (assignment_expression "psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c)" identifier = (cast_expression "(string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c)" (parenthesized_expression "(**(code **)(iVar7 + -0x73cc))" ( (pointer_expression "**(code **)(iVar7 + -0x73cc)" * (pointer_expression "*(code **)(iVar7 + -0x73cc)" * (cast_expression "(code **)(iVar7 + -0x73cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x73cc)" ( (binary_expression "iVar7 + -0x73cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar7 + -0x7fc4) + 0x446c)" ( (binary_expression "*(int *)(iVar7 + -0x7fc4) + 0x446c" (pointer_expression "*(int *)(iVar7 + -0x7fc4)" * (cast_expression "(int *)(iVar7 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x7fc4)" ( (binary_expression "iVar7 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return psVar2;" return identifier ;) })) (expression_statement "(**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,*(int *)(iVar7 + -0x77f0) + 0x208,2);" (call_expression "(**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,*(int *)(iVar7 + -0x77f0) + 0x208,2)" (parenthesized_expression "(**(code **)(iVar7 + -0x73d8))" ( (pointer_expression "**(code **)(iVar7 + -0x73d8)" * (pointer_expression "*(code **)(iVar7 + -0x73d8)" * (cast_expression "(code **)(iVar7 + -0x73d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x73d8)" ( (binary_expression "iVar7 + -0x73d8" identifier + number_literal) ))))) )) (argument_list "(__return_storage_ptr__,*(int *)(iVar7 + -0x77f0) + 0x208,2)" ( identifier , (binary_expression "*(int *)(iVar7 + -0x77f0) + 0x208" (pointer_expression "*(int *)(iVar7 + -0x77f0)" * (cast_expression "(int *)(iVar7 + -0x77f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x77f0)" ( (binary_expression "iVar7 + -0x77f0" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) (expression_statement "p_Var5 = local_20[6];" (assignment_expression "p_Var5 = local_20[6]" identifier = (subscript_expression "local_20[6]" identifier [ number_literal ])) ;) (if_statement "if (p_Var5 != (__bucket_type)0x0) {\n      uVar1 = (**(code **)(iVar7 + -0x36a4))(p_Var5);\n      if (0x7fffffff - __return_storage_ptr__->_M_string_length < uVar1) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }\n                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */\n      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,p_Var5,uVar1);\n    }" if (parenthesized_expression "(p_Var5 != (__bucket_type)0x0)" ( (binary_expression "p_Var5 != (__bucket_type)0x0" identifier != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n      uVar1 = (**(code **)(iVar7 + -0x36a4))(p_Var5);\n      if (0x7fffffff - __return_storage_ptr__->_M_string_length < uVar1) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }\n                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */\n      (**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,p_Var5,uVar1);\n    }" { (expression_statement "uVar1 = (**(code **)(iVar7 + -0x36a4))(p_Var5);" (assignment_expression "uVar1 = (**(code **)(iVar7 + -0x36a4))(p_Var5)" identifier = (call_expression "(**(code **)(iVar7 + -0x36a4))(p_Var5)" (parenthesized_expression "(**(code **)(iVar7 + -0x36a4))" ( (pointer_expression "**(code **)(iVar7 + -0x36a4)" * (pointer_expression "*(code **)(iVar7 + -0x36a4)" * (cast_expression "(code **)(iVar7 + -0x36a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x36a4)" ( (binary_expression "iVar7 + -0x36a4" identifier + number_literal) ))))) )) (argument_list "(p_Var5)" ( identifier )))) ;) (if_statement "if (0x7fffffff - __return_storage_ptr__->_M_string_length < uVar1) {\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }" if (parenthesized_expression "(0x7fffffff - __return_storage_ptr__->_M_string_length < uVar1)" ( (binary_expression "0x7fffffff - __return_storage_ptr__->_M_string_length < uVar1" (binary_expression "0x7fffffff - __return_storage_ptr__->_M_string_length" number_literal - (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier)) < identifier) )) (compound_statement "{\n        psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);\n        return psVar2;\n      }" { (expression_statement "psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c);" (assignment_expression "psVar2 = (string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c)" identifier = (cast_expression "(string *)(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c)" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar7 + -0x73cc))(*(int *)(iVar7 + -0x7fc4) + 0x446c)" (parenthesized_expression "(**(code **)(iVar7 + -0x73cc))" ( (pointer_expression "**(code **)(iVar7 + -0x73cc)" * (pointer_expression "*(code **)(iVar7 + -0x73cc)" * (cast_expression "(code **)(iVar7 + -0x73cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x73cc)" ( (binary_expression "iVar7 + -0x73cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar7 + -0x7fc4) + 0x446c)" ( (binary_expression "*(int *)(iVar7 + -0x7fc4) + 0x446c" (pointer_expression "*(int *)(iVar7 + -0x7fc4)" * (cast_expression "(int *)(iVar7 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x7fc4)" ( (binary_expression "iVar7 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return psVar2;" return identifier ;) })) comment (expression_statement "(**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,p_Var5,uVar1);" (call_expression "(**(code **)(iVar7 + -0x73d8))(__return_storage_ptr__,p_Var5,uVar1)" (parenthesized_expression "(**(code **)(iVar7 + -0x73d8))" ( (pointer_expression "**(code **)(iVar7 + -0x73d8)" * (pointer_expression "*(code **)(iVar7 + -0x73d8)" * (cast_expression "(code **)(iVar7 + -0x73d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + -0x73d8)" ( (binary_expression "iVar7 + -0x73d8" identifier + number_literal) ))))) )) (argument_list "(__return_storage_ptr__,p_Var5,uVar1)" ( identifier , identifier , identifier ))) ;) })) })) (return_statement "return __return_storage_ptr__;" return identifier ;) }))
(translation_unit "Gdb_index_info_reader * __thiscall\ngold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader *this,longlong param_1)\n\n{\n  uint uVar1;\n  Gdb_index_info_reader *pGVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 in_stack_ffffffc4;\n  Gdb_index_info_reader *local_38;\n  int local_34;\n  undefined4 local_30 [4];\n  int local_20 [3];\n  \n  iVar5 = 0x4c9240;\n  *(undefined4 *)(this + 4) = 0;\n  this[8] = (Gdb_index_info_reader)0x0;\n  *(Gdb_index_info_reader **)this = this + 8;\n  std::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n  ::find((longlong *)local_20);\n  if (local_20[0] != 0) {\n    if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }\n    iVar4 = *(int *)(local_20[0] + 0x18);\n    if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    \n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }\n  }\n  return this;\n}\n\n" (ERROR "Gdb_index_info_reader * __thiscall\ngold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader *this,longlong param_1)" (binary_expression "Gdb_index_info_reader * __thiscall\ngold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader *this" (binary_expression "Gdb_index_info_reader * __thiscall" identifier * identifier) (ERROR "gold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader" identifier : : identifier : : identifier ( identifier) * identifier) , identifier identifier )) (compound_statement "{\n  uint uVar1;\n  Gdb_index_info_reader *pGVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 in_stack_ffffffc4;\n  Gdb_index_info_reader *local_38;\n  int local_34;\n  undefined4 local_30 [4];\n  int local_20 [3];\n  \n  iVar5 = 0x4c9240;\n  *(undefined4 *)(this + 4) = 0;\n  this[8] = (Gdb_index_info_reader)0x0;\n  *(Gdb_index_info_reader **)this = this + 8;\n  std::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n  ::find((longlong *)local_20);\n  if (local_20[0] != 0) {\n    if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }\n    iVar4 = *(int *)(local_20[0] + 0x18);\n    if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    \n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }\n  }\n  return this;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "Gdb_index_info_reader *pGVar2;" type_identifier (pointer_declarator "*pGVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 in_stack_ffffffc4;" type_identifier identifier ;) (declaration "Gdb_index_info_reader *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "undefined4 local_30 [4];" type_identifier (array_declarator "local_30 [4]" identifier [ number_literal ]) ;) (declaration "int local_20 [3];" primitive_type (array_declarator "local_20 [3]" identifier [ number_literal ]) ;) (expression_statement "iVar5 = 0x4c9240;" (assignment_expression "iVar5 = 0x4c9240" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(this + 4) = 0;" (assignment_expression "*(undefined4 *)(this + 4) = 0" (pointer_expression "*(undefined4 *)(this + 4)" * (cast_expression "(undefined4 *)(this + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "this[8] = (Gdb_index_info_reader)0x0;" (assignment_expression "this[8] = (Gdb_index_info_reader)0x0" (subscript_expression "this[8]" identifier [ number_literal ]) = (cast_expression "(Gdb_index_info_reader)0x0" ( (type_descriptor "Gdb_index_info_reader" type_identifier) ) number_literal)) ;) (expression_statement "*(Gdb_index_info_reader **)this = this + 8;" (assignment_expression "*(Gdb_index_info_reader **)this = this + 8" (pointer_expression "*(Gdb_index_info_reader **)this" * (cast_expression "(Gdb_index_info_reader **)this" ( (type_descriptor "Gdb_index_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "this + 8" identifier + number_literal)) ;) (ERROR "std::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::" (comma_expression "std::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std" identifier (ERROR "::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>" : : (comma_expression "_Hashtable<long_long,std" (binary_expression "_Hashtable<long_long" identifier < identifier) , identifier) : : (comma_expression "pair<long_long_const,gold" (binary_expression "pair<long_long_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_long_const,gold" (binary_expression "pair<long_long_const" identifier < identifier) , identifier) : : (comma_expression "Gdb_index_info_reader::Declaration_pair>>,std" identifier (ERROR "::Declaration_pair>>" : : identifier >>) , identifier) : : (comma_expression "__detail::_Select1st,std::equal_to<long_long>,std" identifier (ERROR "::_Select1st,std::equal_to<long_long>" : : (comma_expression "_Select1st,std" identifier , identifier) : : (binary_expression "equal_to<long_long" identifier < identifier) >) , identifier) : : (binary_expression "hash<long_long" identifier < identifier) >) , identifier) : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : :) (expression_statement "_Hashtable_traits<false,false,true>>\n  ::find((longlong *)local_20);" (comma_expression "_Hashtable_traits<false,false,true>>\n  ::find((longlong *)local_20)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "false,true>>\n  ::find((longlong *)local_20)" false , (binary_expression "true>>\n  ::find((longlong *)local_20)" true >> (ERROR "::" : :) (call_expression "find((longlong *)local_20)" identifier (argument_list "((longlong *)local_20)" ( (cast_expression "(longlong *)local_20" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))))) ;) (if_statement "if (local_20[0] != 0) {\n    if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }\n    iVar4 = *(int *)(local_20[0] + 0x18);\n    if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    \n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }\n  }" if (parenthesized_expression "(local_20[0] != 0)" ( (binary_expression "local_20[0] != 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }\n    iVar4 = *(int *)(local_20[0] + 0x18);\n    if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    \n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }\n  }" { (if_statement "if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }" if (parenthesized_expression "((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0))))" ( (binary_expression "(0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))" (parenthesized_expression "(0 < *(int *)(local_20[0] + 0x10))" ( (binary_expression "0 < *(int *)(local_20[0] + 0x10)" number_literal < (pointer_expression "*(int *)(local_20[0] + 0x10)" * (cast_expression "(int *)(local_20[0] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + 0x10)" ( (binary_expression "local_20[0] + 0x10" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) ))))) )) || (parenthesized_expression "((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))" ( (parenthesized_expression "(*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0))" ( (binary_expression "*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)" (binary_expression "*(int *)(local_20[0] + 0x10) == 0" (pointer_expression "*(int *)(local_20[0] + 0x10)" * (cast_expression "(int *)(local_20[0] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + 0x10)" ( (binary_expression "local_20[0] + 0x10" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) )))) == number_literal) && (parenthesized_expression "(*(int *)(local_20[0] + 0x14) != 0)" ( (binary_expression "*(int *)(local_20[0] + 0x14) != 0" (pointer_expression "*(int *)(local_20[0] + 0x14)" * (cast_expression "(int *)(local_20[0] + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + 0x14)" ( (binary_expression "local_20[0] + 0x14" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) )))) != number_literal) ))) )) ))) )) (compound_statement "{\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }" { (expression_statement "get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));" (call_expression "get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4))" identifier (argument_list "((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4))" ( (cast_expression "(Gdb_index_info_reader *)&local_38" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_38" & identifier)) , (call_expression "CONCAT44(iVar5,in_stack_ffffffc4)" identifier (argument_list "(iVar5,in_stack_ffffffc4)" ( identifier , identifier ))) ))) ;) (expression_statement "pGVar2 = *(Gdb_index_info_reader **)this;" (assignment_expression "pGVar2 = *(Gdb_index_info_reader **)this" identifier = (pointer_expression "*(Gdb_index_info_reader **)this" * (cast_expression "(Gdb_index_info_reader **)this" ( (type_descriptor "Gdb_index_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" if (parenthesized_expression "(local_38 == (Gdb_index_info_reader *)local_30)" ( (binary_expression "local_38 == (Gdb_index_info_reader *)local_30" identifier == (cast_expression "(Gdb_index_info_reader *)local_30" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }" { (if_statement "if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (compound_statement "{\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }" { (if_statement "if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }" if (parenthesized_expression "(local_34 == 1)" ( (binary_expression "local_34 == 1" identifier == number_literal) )) (compound_statement "{\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }" { (expression_statement "*pGVar2 = local_30[0]._0_1_;" (assignment_expression "*pGVar2 = local_30[0]._0_1_" (pointer_expression "*pGVar2" * identifier) = (field_expression "local_30[0]._0_1_" (subscript_expression "local_30[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pGVar2 = *(Gdb_index_info_reader **)this;" (assignment_expression "pGVar2 = *(Gdb_index_info_reader **)this" identifier = (pointer_expression "*(Gdb_index_info_reader **)this" * (cast_expression "(Gdb_index_info_reader **)this" ( (type_descriptor "Gdb_index_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }) (else_clause "else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }" else (compound_statement "{\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }" { (expression_statement "(**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);" (call_expression "(**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30)" (parenthesized_expression "(**(code **)(iVar5 + -0x3698))" ( (pointer_expression "**(code **)(iVar5 + -0x3698)" * (pointer_expression "*(code **)(iVar5 + -0x3698)" * (cast_expression "(code **)(iVar5 + -0x3698)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x3698)" ( (binary_expression "iVar5 + -0x3698" identifier + number_literal) ))))) )) (argument_list "(pGVar2,(Gdb_index_info_reader *)local_30)" ( identifier , (cast_expression "(Gdb_index_info_reader *)local_30" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "pGVar2 = *(Gdb_index_info_reader **)this;" (assignment_expression "pGVar2 = *(Gdb_index_info_reader **)this" identifier = (pointer_expression "*(Gdb_index_info_reader **)this" * (cast_expression "(Gdb_index_info_reader **)this" ( (type_descriptor "Gdb_index_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }))) })) (expression_statement "*(int *)(this + 4) = local_34;" (assignment_expression "*(int *)(this + 4) = local_34" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "pGVar2[local_34] = (Gdb_index_info_reader)0x0;" (assignment_expression "pGVar2[local_34] = (Gdb_index_info_reader)0x0" (subscript_expression "pGVar2[local_34]" identifier [ identifier ]) = (cast_expression "(Gdb_index_info_reader)0x0" ( (type_descriptor "Gdb_index_info_reader" type_identifier) ) number_literal)) ;) }) (else_clause "else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" else (if_statement "if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" if (parenthesized_expression "(this + 8 == pGVar2)" ( (binary_expression "this + 8 == pGVar2" (binary_expression "this + 8" identifier + number_literal) == identifier) )) (compound_statement "{\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }" { (expression_statement "*(Gdb_index_info_reader **)this = local_38;" (assignment_expression "*(Gdb_index_info_reader **)this = local_38" (pointer_expression "*(Gdb_index_info_reader **)this" * (cast_expression "(Gdb_index_info_reader **)this" ( (type_descriptor "Gdb_index_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = local_34;" (assignment_expression "*(int *)(this + 4) = local_34" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this + 8) = local_30[0];" (assignment_expression "*(undefined4 *)(this + 8) = local_30[0]" (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = (subscript_expression "local_30[0]" identifier [ number_literal ])) ;) (expression_statement "local_38 = (Gdb_index_info_reader *)local_30;" (assignment_expression "local_38 = (Gdb_index_info_reader *)local_30" identifier = (cast_expression "(Gdb_index_info_reader *)local_30" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" else (compound_statement "{\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" { (expression_statement "uVar3 = *(undefined4 *)(this + 8);" (assignment_expression "uVar3 = *(undefined4 *)(this + 8)" identifier = (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (expression_statement "*(Gdb_index_info_reader **)this = local_38;" (assignment_expression "*(Gdb_index_info_reader **)this = local_38" (pointer_expression "*(Gdb_index_info_reader **)this" * (cast_expression "(Gdb_index_info_reader **)this" ( (type_descriptor "Gdb_index_info_reader **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 4) = local_34;" (assignment_expression "*(int *)(this + 4) = local_34" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this + 8) = local_30[0];" (assignment_expression "*(undefined4 *)(this + 8) = local_30[0]" (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = (subscript_expression "local_30[0]" identifier [ number_literal ])) ;) (expression_statement "local_38 = (Gdb_index_info_reader *)local_30;" (assignment_expression "local_38 = (Gdb_index_info_reader *)local_30" identifier = (cast_expression "(Gdb_index_info_reader *)local_30" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }" if (parenthesized_expression "(pGVar2 != (Gdb_index_info_reader *)0x0)" ( (binary_expression "pGVar2 != (Gdb_index_info_reader *)0x0" identifier != (cast_expression "(Gdb_index_info_reader *)0x0" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }" { (expression_statement "local_38 = pGVar2;" (assignment_expression "local_38 = pGVar2" identifier = identifier) ;) (expression_statement "local_30[0] = uVar3;" (assignment_expression "local_30[0] = uVar3" (subscript_expression "local_30[0]" identifier [ number_literal ]) = identifier) ;) })) }))))) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "*local_38 = (Gdb_index_info_reader)0x0;" (assignment_expression "*local_38 = (Gdb_index_info_reader)0x0" (pointer_expression "*local_38" * identifier) = (cast_expression "(Gdb_index_info_reader)0x0" ( (type_descriptor "Gdb_index_info_reader" type_identifier) ) number_literal)) ;) (if_statement "if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }" if (parenthesized_expression "(local_38 != (Gdb_index_info_reader *)local_30)" ( (binary_expression "local_38 != (Gdb_index_info_reader *)local_30" identifier != (cast_expression "(Gdb_index_info_reader *)local_30" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        (**(code **)(iVar5 + -0x7f44))();\n      }" { (expression_statement "(**(code **)(iVar5 + -0x7f44))();" (call_expression "(**(code **)(iVar5 + -0x7f44))()" (parenthesized_expression "(**(code **)(iVar5 + -0x7f44))" ( (pointer_expression "**(code **)(iVar5 + -0x7f44)" * (pointer_expression "*(code **)(iVar5 + -0x7f44)" * (cast_expression "(code **)(iVar5 + -0x7f44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x7f44)" ( (binary_expression "iVar5 + -0x7f44" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }" if (parenthesized_expression "(0x7fffffffU - *(int *)(this + 4) < 2)" ( (binary_expression "0x7fffffffU - *(int *)(this + 4) < 2" (binary_expression "0x7fffffffU - *(int *)(this + 4)" number_literal - (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) < number_literal) )) (compound_statement "{\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }" { (expression_statement "pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);" (assignment_expression "pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" identifier = (cast_expression "(Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" (parenthesized_expression "(**(code **)(iVar5 + -0x73cc))" ( (pointer_expression "**(code **)(iVar5 + -0x73cc)" * (pointer_expression "*(code **)(iVar5 + -0x73cc)" * (cast_expression "(code **)(iVar5 + -0x73cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x73cc)" ( (binary_expression "iVar5 + -0x73cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar5 + -0x7fc4) + 0x446c)" ( (binary_expression "*(int *)(iVar5 + -0x7fc4) + 0x446c" (pointer_expression "*(int *)(iVar5 + -0x7fc4)" * (cast_expression "(int *)(iVar5 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x7fc4)" ( (binary_expression "iVar5 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pGVar2;" return identifier ;) })) (expression_statement "(**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);" (call_expression "(**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2)" (parenthesized_expression "(**(code **)(iVar5 + -0x73d8))" ( (pointer_expression "**(code **)(iVar5 + -0x73d8)" * (pointer_expression "*(code **)(iVar5 + -0x73d8)" * (cast_expression "(code **)(iVar5 + -0x73d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x73d8)" ( (binary_expression "iVar5 + -0x73d8" identifier + number_literal) ))))) )) (argument_list "(this,*(int *)(iVar5 + -0x77f0) + 0x208,2)" ( identifier , (binary_expression "*(int *)(iVar5 + -0x77f0) + 0x208" (pointer_expression "*(int *)(iVar5 + -0x77f0)" * (cast_expression "(int *)(iVar5 + -0x77f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x77f0)" ( (binary_expression "iVar5 + -0x77f0" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) (expression_statement "iVar4 = *(int *)(local_20[0] + 0x18);" (assignment_expression "iVar4 = *(int *)(local_20[0] + 0x18)" identifier = (pointer_expression "*(int *)(local_20[0] + 0x18)" * (cast_expression "(int *)(local_20[0] + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_20[0] + 0x18)" ( (binary_expression "local_20[0] + 0x18" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    \n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    \n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }" { (expression_statement "uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);" (assignment_expression "uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4)" identifier = (call_expression "(**(code **)(iVar5 + -0x36a4))(iVar4)" (parenthesized_expression "(**(code **)(iVar5 + -0x36a4))" ( (pointer_expression "**(code **)(iVar5 + -0x36a4)" * (pointer_expression "*(code **)(iVar5 + -0x36a4)" * (cast_expression "(code **)(iVar5 + -0x36a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x36a4)" ( (binary_expression "iVar5 + -0x36a4" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }" if (parenthesized_expression "(0x7fffffffU - *(int *)(this + 4) < uVar1)" ( (binary_expression "0x7fffffffU - *(int *)(this + 4) < uVar1" (binary_expression "0x7fffffffU - *(int *)(this + 4)" number_literal - (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) < identifier) )) (compound_statement "{\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }" { (expression_statement "pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);" (assignment_expression "pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" identifier = (cast_expression "(Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" ( (type_descriptor "Gdb_index_info_reader *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" (parenthesized_expression "(**(code **)(iVar5 + -0x73cc))" ( (pointer_expression "**(code **)(iVar5 + -0x73cc)" * (pointer_expression "*(code **)(iVar5 + -0x73cc)" * (cast_expression "(code **)(iVar5 + -0x73cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x73cc)" ( (binary_expression "iVar5 + -0x73cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar5 + -0x7fc4) + 0x446c)" ( (binary_expression "*(int *)(iVar5 + -0x7fc4) + 0x446c" (pointer_expression "*(int *)(iVar5 + -0x7fc4)" * (cast_expression "(int *)(iVar5 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + -0x7fc4)" ( (binary_expression "iVar5 + -0x7fc4" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pGVar2;" return identifier ;) })) (expression_statement "(**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);" (call_expression "(**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1)" (parenthesized_expression "(**(code **)(iVar5 + -0x73d8))" ( (pointer_expression "**(code **)(iVar5 + -0x73d8)" * (pointer_expression "*(code **)(iVar5 + -0x73d8)" * (cast_expression "(code **)(iVar5 + -0x73d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + -0x73d8)" ( (binary_expression "iVar5 + -0x73d8" identifier + number_literal) ))))) )) (argument_list "(this,iVar4,uVar1)" ( identifier , identifier , identifier ))) ;) })) })) (return_statement "return this;" return identifier ;) }))
(translation_unit (ERROR (binary_expression (binary_expression IDENT * IDENT) (ERROR IDENT : : IDENT : : IDENT ( IDENT) * IDENT) , IDENT IDENT )) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_expression IDENT + LIT)) ;) (ERROR (comma_expression IDENT (ERROR : : (comma_expression (binary_expression IDENT < IDENT) , IDENT) : : (comma_expression (binary_expression IDENT < IDENT) , IDENT) : : (comma_expression IDENT (ERROR : : IDENT >) , IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < IDENT) , IDENT) : : (comma_expression IDENT (ERROR : : IDENT >>) , IDENT) : : (comma_expression IDENT (ERROR : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) >) , IDENT) : : (binary_expression IDENT < IDENT) >) , IDENT) : : IDENT : : IDENT , IDENT : : IDENT : : IDENT , IDENT : : IDENT : : IDENT , IDENT : : IDENT : :) (expression_statement (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (binary_expression BOOL >> (ERROR : :) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (call_expression IDENT (argument_list ( IDENT , IDENT ))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) }) (else_clause else (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 IDENT + LIT) ))))) )) (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) }))) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) }))))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (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 IDENT + LIT) ))))) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression LIT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (return_statement return IDENT ;) })) (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 IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression LIT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (return_statement return IDENT ;) })) (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 IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) })) })) (return_statement return IDENT ;) }))
(ERROR "Gdb_index_info_reader * __thiscall\ngold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader *this,longlong param_1)" (binary_expression "Gdb_index_info_reader * __thiscall\ngold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader *this" (binary_expression "Gdb_index_info_reader * __thiscall" (identifier "Gdb_index_info_reader") (* "*") (identifier "__thiscall")) (ERROR "gold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader" (identifier "gold") (: ":") (: ":") (identifier "Gdb_index_info_reader") (: ":") (: ":") (identifier "get_context_abi_cxx11_") (( "(") (identifier "Gdb_index_info_reader")) (* "*") (identifier "this")) (, ",") (identifier "longlong") (identifier "param_1") () ")")) (compound_statement "{\n  uint uVar1;\n  Gdb_index_info_reader *pGVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 in_stack_ffffffc4;\n  Gdb_index_info_reader *local_38;\n  int local_34;\n  undefined4 local_30 [4];\n  int local_20 [3];\n  \n  iVar5 = 0x4c9240;\n  *(undefined4 *)(this + 4) = 0;\n  this[8] = (Gdb_index_info_reader)0x0;\n  *(Gdb_index_info_reader **)this = this + 8;\n  std::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n  ::find((longlong *)local_20);\n  if (local_20[0] != 0) {\n    if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }\n    iVar4 = *(int *)(local_20[0] + 0x18);\n    if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    \n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }\n  }\n  return this;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "Gdb_index_info_reader *pGVar2;" (type_identifier "Gdb_index_info_reader") (pointer_declarator "*pGVar2" (* "*") (identifier "pGVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 in_stack_ffffffc4;" (type_identifier "undefined4") (identifier "in_stack_ffffffc4") (; ";")) (declaration "Gdb_index_info_reader *local_38;" (type_identifier "Gdb_index_info_reader") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "undefined4 local_30 [4];" (type_identifier "undefined4") (array_declarator "local_30 [4]" (identifier "local_30") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_20 [3];" (primitive_type "int") (array_declarator "local_20 [3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]")) (; ";")) (expression_statement "iVar5 = 0x4c9240;" (assignment_expression "iVar5 = 0x4c9240" (identifier "iVar5") (= "=") (number_literal "0x4c9240")) (; ";")) (expression_statement "*(undefined4 *)(this + 4) = 0;" (assignment_expression "*(undefined4 *)(this + 4) = 0" (pointer_expression "*(undefined4 *)(this + 4)" (* "*") (cast_expression "(undefined4 *)(this + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "this[8] = (Gdb_index_info_reader)0x0;" (assignment_expression "this[8] = (Gdb_index_info_reader)0x0" (subscript_expression "this[8]" (identifier "this") ([ "[") (number_literal "8") (] "]")) (= "=") (cast_expression "(Gdb_index_info_reader)0x0" (( "(") (type_descriptor "Gdb_index_info_reader" (type_identifier "Gdb_index_info_reader")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(Gdb_index_info_reader **)this = this + 8;" (assignment_expression "*(Gdb_index_info_reader **)this = this + 8" (pointer_expression "*(Gdb_index_info_reader **)this" (* "*") (cast_expression "(Gdb_index_info_reader **)this" (( "(") (type_descriptor "Gdb_index_info_reader **" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this"))) (= "=") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8"))) (; ";")) (ERROR "std::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::" (comma_expression "std::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std" (identifier "std") (ERROR "::\n  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>" (: ":") (: ":") (comma_expression "_Hashtable<long_long,std" (binary_expression "_Hashtable<long_long" (identifier "_Hashtable") (< "<") (identifier "long_long")) (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "pair<long_long_const,gold" (binary_expression "pair<long_long_const" (identifier "pair") (< "<") (identifier "long_long_const")) (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "Gdb_index_info_reader::Declaration_pair>,std" (identifier "Gdb_index_info_reader") (ERROR "::Declaration_pair>" (: ":") (: ":") (identifier "Declaration_pair") (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "pair<long_long_const,gold" (binary_expression "pair<long_long_const" (identifier "pair") (< "<") (identifier "long_long_const")) (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "Gdb_index_info_reader::Declaration_pair>>,std" (identifier "Gdb_index_info_reader") (ERROR "::Declaration_pair>>" (: ":") (: ":") (identifier "Declaration_pair") (>> ">>")) (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "__detail::_Select1st,std::equal_to<long_long>,std" (identifier "__detail") (ERROR "::_Select1st,std::equal_to<long_long>" (: ":") (: ":") (comma_expression "_Select1st,std" (identifier "_Select1st") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "equal_to<long_long" (identifier "equal_to") (< "<") (identifier "long_long")) (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "hash<long_long" (identifier "hash") (< "<") (identifier "long_long")) (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (identifier "_Mod_range_hashing") (, ",") (identifier "std") (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (identifier "_Default_ranged_hash") (, ",") (identifier "std") (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (identifier "_Prime_rehash_policy") (, ",") (identifier "std") (: ":") (: ":") (identifier "__detail") (: ":") (: ":")) (expression_statement "_Hashtable_traits<false,false,true>>\n  ::find((longlong *)local_20);" (comma_expression "_Hashtable_traits<false,false,true>>\n  ::find((longlong *)local_20)" (binary_expression "_Hashtable_traits<false" (identifier "_Hashtable_traits") (< "<") (false "false")) (, ",") (comma_expression "false,true>>\n  ::find((longlong *)local_20)" (false "false") (, ",") (binary_expression "true>>\n  ::find((longlong *)local_20)" (true "true") (>> ">>") (ERROR "::" (: ":") (: ":")) (call_expression "find((longlong *)local_20)" (identifier "find") (argument_list "((longlong *)local_20)" (( "(") (cast_expression "(longlong *)local_20" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_20")) () ")")))))) (; ";")) (if_statement "if (local_20[0] != 0) {\n    if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }\n    iVar4 = *(int *)(local_20[0] + 0x18);\n    if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    \n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }\n  }" (if "if") (parenthesized_expression "(local_20[0] != 0)" (( "(") (binary_expression "local_20[0] != 0" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }\n    iVar4 = *(int *)(local_20[0] + 0x18);\n    if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    \n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }\n  }" ({ "{") (if_statement "if ((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }" (if "if") (parenthesized_expression "((0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0))))" (( "(") (binary_expression "(0 < *(int *)(local_20[0] + 0x10)) ||\n       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))" (parenthesized_expression "(0 < *(int *)(local_20[0] + 0x10))" (( "(") (binary_expression "0 < *(int *)(local_20[0] + 0x10)" (number_literal "0") (< "<") (pointer_expression "*(int *)(local_20[0] + 0x10)" (* "*") (cast_expression "(int *)(local_20[0] + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20[0] + 0x10)" (( "(") (binary_expression "local_20[0] + 0x10" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))" (( "(") (parenthesized_expression "(*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0))" (( "(") (binary_expression "*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)" (binary_expression "*(int *)(local_20[0] + 0x10) == 0" (pointer_expression "*(int *)(local_20[0] + 0x10)" (* "*") (cast_expression "(int *)(local_20[0] + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20[0] + 0x10)" (( "(") (binary_expression "local_20[0] + 0x10" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(int *)(local_20[0] + 0x14) != 0)" (( "(") (binary_expression "*(int *)(local_20[0] + 0x14) != 0" (pointer_expression "*(int *)(local_20[0] + 0x14)" (* "*") (cast_expression "(int *)(local_20[0] + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20[0] + 0x14)" (( "(") (binary_expression "local_20[0] + 0x14" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));\n      pGVar2 = *(Gdb_index_info_reader **)this;\n      if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }\n      local_34 = 0;\n      *local_38 = (Gdb_index_info_reader)0x0;\n      if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }\n      if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);\n    }" ({ "{") (expression_statement "get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));" (call_expression "get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4))" (identifier "get_context_abi_cxx11_") (argument_list "((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4))" (( "(") (cast_expression "(Gdb_index_info_reader *)&local_38" (( "(") (type_descriptor "Gdb_index_info_reader *" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (, ",") (call_expression "CONCAT44(iVar5,in_stack_ffffffc4)" (identifier "CONCAT44") (argument_list "(iVar5,in_stack_ffffffc4)" (( "(") (identifier "iVar5") (, ",") (identifier "in_stack_ffffffc4") () ")"))) () ")"))) (; ";")) (expression_statement "pGVar2 = *(Gdb_index_info_reader **)this;" (assignment_expression "pGVar2 = *(Gdb_index_info_reader **)this" (identifier "pGVar2") (= "=") (pointer_expression "*(Gdb_index_info_reader **)this" (* "*") (cast_expression "(Gdb_index_info_reader **)this" (( "(") (type_descriptor "Gdb_index_info_reader **" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this")))) (; ";")) (if_statement "if (local_38 == (Gdb_index_info_reader *)local_30) {\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }\n      else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" (if "if") (parenthesized_expression "(local_38 == (Gdb_index_info_reader *)local_30)" (( "(") (binary_expression "local_38 == (Gdb_index_info_reader *)local_30" (identifier "local_38") (== "==") (cast_expression "(Gdb_index_info_reader *)local_30" (( "(") (type_descriptor "Gdb_index_info_reader *" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_30"))) () ")")) (compound_statement "{\n        if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }\n        *(int *)(this + 4) = local_34;\n        pGVar2[local_34] = (Gdb_index_info_reader)0x0;\n      }" ({ "{") (if_statement "if (local_34 != 0) {\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }" (if "if") (parenthesized_expression "(local_34 != 0)" (( "(") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n        }" ({ "{") (if_statement "if (local_34 == 1) {\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }\n          else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }" (if "if") (parenthesized_expression "(local_34 == 1)" (( "(") (binary_expression "local_34 == 1" (identifier "local_34") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            *pGVar2 = local_30[0]._0_1_;\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }" ({ "{") (expression_statement "*pGVar2 = local_30[0]._0_1_;" (assignment_expression "*pGVar2 = local_30[0]._0_1_" (pointer_expression "*pGVar2" (* "*") (identifier "pGVar2")) (= "=") (field_expression "local_30[0]._0_1_" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_0_1_"))) (; ";")) (expression_statement "pGVar2 = *(Gdb_index_info_reader **)this;" (assignment_expression "pGVar2 = *(Gdb_index_info_reader **)this" (identifier "pGVar2") (= "=") (pointer_expression "*(Gdb_index_info_reader **)this" (* "*") (cast_expression "(Gdb_index_info_reader **)this" (( "(") (type_descriptor "Gdb_index_info_reader **" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this")))) (; ";")) (} "}")) (else_clause "else {\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }" (else "else") (compound_statement "{\n            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);\n            pGVar2 = *(Gdb_index_info_reader **)this;\n          }" ({ "{") (expression_statement "(**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);" (call_expression "(**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30)" (parenthesized_expression "(**(code **)(iVar5 + -0x3698))" (( "(") (pointer_expression "**(code **)(iVar5 + -0x3698)" (* "*") (pointer_expression "*(code **)(iVar5 + -0x3698)" (* "*") (cast_expression "(code **)(iVar5 + -0x3698)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + -0x3698)" (( "(") (binary_expression "iVar5 + -0x3698" (identifier "iVar5") (+ "+") (number_literal "-0x3698")) () ")"))))) () ")")) (argument_list "(pGVar2,(Gdb_index_info_reader *)local_30)" (( "(") (identifier "pGVar2") (, ",") (cast_expression "(Gdb_index_info_reader *)local_30" (( "(") (type_descriptor "Gdb_index_info_reader *" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_30")) () ")"))) (; ";")) (expression_statement "pGVar2 = *(Gdb_index_info_reader **)this;" (assignment_expression "pGVar2 = *(Gdb_index_info_reader **)this" (identifier "pGVar2") (= "=") (pointer_expression "*(Gdb_index_info_reader **)this" (* "*") (cast_expression "(Gdb_index_info_reader **)this" (( "(") (type_descriptor "Gdb_index_info_reader **" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "*(int *)(this + 4) = local_34;" (assignment_expression "*(int *)(this + 4) = local_34" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "pGVar2[local_34] = (Gdb_index_info_reader)0x0;" (assignment_expression "pGVar2[local_34] = (Gdb_index_info_reader)0x0" (subscript_expression "pGVar2[local_34]" (identifier "pGVar2") ([ "[") (identifier "local_34") (] "]")) (= "=") (cast_expression "(Gdb_index_info_reader)0x0" (( "(") (type_descriptor "Gdb_index_info_reader" (type_identifier "Gdb_index_info_reader")) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" (else "else") (if_statement "if (this + 8 == pGVar2) {\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }\n      else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" (if "if") (parenthesized_expression "(this + 8 == pGVar2)" (( "(") (binary_expression "this + 8 == pGVar2" (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) (== "==") (identifier "pGVar2")) () ")")) (compound_statement "{\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n      }" ({ "{") (expression_statement "*(Gdb_index_info_reader **)this = local_38;" (assignment_expression "*(Gdb_index_info_reader **)this = local_38" (pointer_expression "*(Gdb_index_info_reader **)this" (* "*") (cast_expression "(Gdb_index_info_reader **)this" (( "(") (type_descriptor "Gdb_index_info_reader **" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this"))) (= "=") (identifier "local_38")) (; ";")) (expression_statement "*(int *)(this + 4) = local_34;" (assignment_expression "*(int *)(this + 4) = local_34" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(this + 8) = local_30[0];" (assignment_expression "*(undefined4 *)(this + 8) = local_30[0]" (pointer_expression "*(undefined4 *)(this + 8)" (* "*") (cast_expression "(undefined4 *)(this + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_38 = (Gdb_index_info_reader *)local_30;" (assignment_expression "local_38 = (Gdb_index_info_reader *)local_30" (identifier "local_38") (= "=") (cast_expression "(Gdb_index_info_reader *)local_30" (( "(") (type_descriptor "Gdb_index_info_reader *" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_30"))) (; ";")) (} "}")) (else_clause "else {\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" (else "else") (compound_statement "{\n        uVar3 = *(undefined4 *)(this + 8);\n        *(Gdb_index_info_reader **)this = local_38;\n        *(int *)(this + 4) = local_34;\n        *(undefined4 *)(this + 8) = local_30[0];\n        local_38 = (Gdb_index_info_reader *)local_30;\n        if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }\n      }" ({ "{") (expression_statement "uVar3 = *(undefined4 *)(this + 8);" (assignment_expression "uVar3 = *(undefined4 *)(this + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(this + 8)" (* "*") (cast_expression "(undefined4 *)(this + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(Gdb_index_info_reader **)this = local_38;" (assignment_expression "*(Gdb_index_info_reader **)this = local_38" (pointer_expression "*(Gdb_index_info_reader **)this" (* "*") (cast_expression "(Gdb_index_info_reader **)this" (( "(") (type_descriptor "Gdb_index_info_reader **" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this"))) (= "=") (identifier "local_38")) (; ";")) (expression_statement "*(int *)(this + 4) = local_34;" (assignment_expression "*(int *)(this + 4) = local_34" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(this + 8) = local_30[0];" (assignment_expression "*(undefined4 *)(this + 8) = local_30[0]" (pointer_expression "*(undefined4 *)(this + 8)" (* "*") (cast_expression "(undefined4 *)(this + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_38 = (Gdb_index_info_reader *)local_30;" (assignment_expression "local_38 = (Gdb_index_info_reader *)local_30" (identifier "local_38") (= "=") (cast_expression "(Gdb_index_info_reader *)local_30" (( "(") (type_descriptor "Gdb_index_info_reader *" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_30"))) (; ";")) (if_statement "if (pGVar2 != (Gdb_index_info_reader *)0x0) {\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }" (if "if") (parenthesized_expression "(pGVar2 != (Gdb_index_info_reader *)0x0)" (( "(") (binary_expression "pGVar2 != (Gdb_index_info_reader *)0x0" (identifier "pGVar2") (!= "!=") (cast_expression "(Gdb_index_info_reader *)0x0" (( "(") (type_descriptor "Gdb_index_info_reader *" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_38 = pGVar2;\n          local_30[0] = uVar3;\n        }" ({ "{") (expression_statement "local_38 = pGVar2;" (assignment_expression "local_38 = pGVar2" (identifier "local_38") (= "=") (identifier "pGVar2")) (; ";")) (expression_statement "local_30[0] = uVar3;" (assignment_expression "local_30[0] = uVar3" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (} "}"))) (} "}")))))) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "*local_38 = (Gdb_index_info_reader)0x0;" (assignment_expression "*local_38 = (Gdb_index_info_reader)0x0" (pointer_expression "*local_38" (* "*") (identifier "local_38")) (= "=") (cast_expression "(Gdb_index_info_reader)0x0" (( "(") (type_descriptor "Gdb_index_info_reader" (type_identifier "Gdb_index_info_reader")) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (local_38 != (Gdb_index_info_reader *)local_30) {\n        (**(code **)(iVar5 + -0x7f44))();\n      }" (if "if") (parenthesized_expression "(local_38 != (Gdb_index_info_reader *)local_30)" (( "(") (binary_expression "local_38 != (Gdb_index_info_reader *)local_30" (identifier "local_38") (!= "!=") (cast_expression "(Gdb_index_info_reader *)local_30" (( "(") (type_descriptor "Gdb_index_info_reader *" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_30"))) () ")")) (compound_statement "{\n        (**(code **)(iVar5 + -0x7f44))();\n      }" ({ "{") (expression_statement "(**(code **)(iVar5 + -0x7f44))();" (call_expression "(**(code **)(iVar5 + -0x7f44))()" (parenthesized_expression "(**(code **)(iVar5 + -0x7f44))" (( "(") (pointer_expression "**(code **)(iVar5 + -0x7f44)" (* "*") (pointer_expression "*(code **)(iVar5 + -0x7f44)" (* "*") (cast_expression "(code **)(iVar5 + -0x7f44)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + -0x7f44)" (( "(") (binary_expression "iVar5 + -0x7f44" (identifier "iVar5") (+ "+") (number_literal "-0x7f44")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (0x7fffffffU - *(int *)(this + 4) < 2) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }" (if "if") (parenthesized_expression "(0x7fffffffU - *(int *)(this + 4) < 2)" (( "(") (binary_expression "0x7fffffffU - *(int *)(this + 4) < 2" (binary_expression "0x7fffffffU - *(int *)(this + 4)" (number_literal "0x7fffffffU") (- "-") (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }" ({ "{") (expression_statement "pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);" (assignment_expression "pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" (identifier "pGVar2") (= "=") (cast_expression "(Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" (( "(") (type_descriptor "Gdb_index_info_reader *" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" (parenthesized_expression "(**(code **)(iVar5 + -0x73cc))" (( "(") (pointer_expression "**(code **)(iVar5 + -0x73cc)" (* "*") (pointer_expression "*(code **)(iVar5 + -0x73cc)" (* "*") (cast_expression "(code **)(iVar5 + -0x73cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + -0x73cc)" (( "(") (binary_expression "iVar5 + -0x73cc" (identifier "iVar5") (+ "+") (number_literal "-0x73cc")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar5 + -0x7fc4) + 0x446c)" (( "(") (binary_expression "*(int *)(iVar5 + -0x7fc4) + 0x446c" (pointer_expression "*(int *)(iVar5 + -0x7fc4)" (* "*") (cast_expression "(int *)(iVar5 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + -0x7fc4)" (( "(") (binary_expression "iVar5 + -0x7fc4" (identifier "iVar5") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "0x446c")) () ")"))))) (; ";")) (return_statement "return pGVar2;" (return "return") (identifier "pGVar2") (; ";")) (} "}"))) (expression_statement "(**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);" (call_expression "(**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2)" (parenthesized_expression "(**(code **)(iVar5 + -0x73d8))" (( "(") (pointer_expression "**(code **)(iVar5 + -0x73d8)" (* "*") (pointer_expression "*(code **)(iVar5 + -0x73d8)" (* "*") (cast_expression "(code **)(iVar5 + -0x73d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + -0x73d8)" (( "(") (binary_expression "iVar5 + -0x73d8" (identifier "iVar5") (+ "+") (number_literal "-0x73d8")) () ")"))))) () ")")) (argument_list "(this,*(int *)(iVar5 + -0x77f0) + 0x208,2)" (( "(") (identifier "this") (, ",") (binary_expression "*(int *)(iVar5 + -0x77f0) + 0x208" (pointer_expression "*(int *)(iVar5 + -0x77f0)" (* "*") (cast_expression "(int *)(iVar5 + -0x77f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + -0x77f0)" (( "(") (binary_expression "iVar5 + -0x77f0" (identifier "iVar5") (+ "+") (number_literal "-0x77f0")) () ")")))) (+ "+") (number_literal "0x208")) (, ",") (number_literal "2") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar4 = *(int *)(local_20[0] + 0x18);" (assignment_expression "iVar4 = *(int *)(local_20[0] + 0x18)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(local_20[0] + 0x18)" (* "*") (cast_expression "(int *)(local_20[0] + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_20[0] + 0x18)" (( "(") (binary_expression "local_20[0] + 0x18" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (iVar4 != 0) {\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    \n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);\n      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }\n                    \n      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);\n    }" ({ "{") (expression_statement "uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);" (assignment_expression "uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4)" (identifier "uVar1") (= "=") (call_expression "(**(code **)(iVar5 + -0x36a4))(iVar4)" (parenthesized_expression "(**(code **)(iVar5 + -0x36a4))" (( "(") (pointer_expression "**(code **)(iVar5 + -0x36a4)" (* "*") (pointer_expression "*(code **)(iVar5 + -0x36a4)" (* "*") (cast_expression "(code **)(iVar5 + -0x36a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + -0x36a4)" (( "(") (binary_expression "iVar5 + -0x36a4" (identifier "iVar5") (+ "+") (number_literal "-0x36a4")) () ")"))))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (; ";")) (if_statement "if (0x7fffffffU - *(int *)(this + 4) < uVar1) {\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }" (if "if") (parenthesized_expression "(0x7fffffffU - *(int *)(this + 4) < uVar1)" (( "(") (binary_expression "0x7fffffffU - *(int *)(this + 4) < uVar1" (binary_expression "0x7fffffffU - *(int *)(this + 4)" (number_literal "0x7fffffffU") (- "-") (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n        pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);\n        return pGVar2;\n      }" ({ "{") (expression_statement "pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);" (assignment_expression "pGVar2 = (Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" (identifier "pGVar2") (= "=") (cast_expression "(Gdb_index_info_reader *)\n                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" (( "(") (type_descriptor "Gdb_index_info_reader *" (type_identifier "Gdb_index_info_reader") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c)" (parenthesized_expression "(**(code **)(iVar5 + -0x73cc))" (( "(") (pointer_expression "**(code **)(iVar5 + -0x73cc)" (* "*") (pointer_expression "*(code **)(iVar5 + -0x73cc)" (* "*") (cast_expression "(code **)(iVar5 + -0x73cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + -0x73cc)" (( "(") (binary_expression "iVar5 + -0x73cc" (identifier "iVar5") (+ "+") (number_literal "-0x73cc")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar5 + -0x7fc4) + 0x446c)" (( "(") (binary_expression "*(int *)(iVar5 + -0x7fc4) + 0x446c" (pointer_expression "*(int *)(iVar5 + -0x7fc4)" (* "*") (cast_expression "(int *)(iVar5 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + -0x7fc4)" (( "(") (binary_expression "iVar5 + -0x7fc4" (identifier "iVar5") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "0x446c")) () ")"))))) (; ";")) (return_statement "return pGVar2;" (return "return") (identifier "pGVar2") (; ";")) (} "}"))) (expression_statement "(**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);" (call_expression "(**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1)" (parenthesized_expression "(**(code **)(iVar5 + -0x73d8))" (( "(") (pointer_expression "**(code **)(iVar5 + -0x73d8)" (* "*") (pointer_expression "*(code **)(iVar5 + -0x73d8)" (* "*") (cast_expression "(code **)(iVar5 + -0x73d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + -0x73d8)" (( "(") (binary_expression "iVar5 + -0x73d8" (identifier "iVar5") (+ "+") (number_literal "-0x73d8")) () ")"))))) () ")")) (argument_list "(this,iVar4,uVar1)" (( "(") (identifier "this") (, ",") (identifier "iVar4") (, ",") (identifier "uVar1") () ")"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return this;" (return "return") (identifier "this") (; ";")) (} "}"))

/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: string get_context(Gdb_index_info_reader * this, off_t die_offset) */

type_2 * __thiscall
gold::Gdb_index_info_reader::var_11
          (type_2 *__return_storage_ptr__,Gdb_index_info_reader *this,off_t die_offset)

{
  type_1 var_15;
  type_2 *psVar2;
  type_2 *context;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  type_3 sVar4;
  type_4 var_14;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_6;
  int var_13;
  type_5 in_stack_ffffffc4;
  type_2 local_38;
  type_4 *var_10;
  
  var_13 = 0x4c9240;
  __return_storage_ptr__->_M_string_length = 0;
  (__return_storage_ptr__->field_2)._M_local_buf[0] = '\0';
  (__return_storage_ptr__->_M_dataplus)._M_p = (type_8)&__return_storage_ptr__->field_2;
  std::
  _Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::var_1<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>var_3>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_7<false,_false,var_8>var_3>
  ::var_9((_Hashtable<long_long_int,_std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>,_std::var_1<std::pair<long_long_int_const,_gold::Gdb_index_info_reader::Declaration_pair>var_3>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_7<false,_false,var_8>var_3>
          *)&var_10,(type_6 *)&this->declarations_);
  if (var_10 != (type_4 *)0x0) {
    if ((0 < (int)var_10[4]) ||
       ((var_10[4] == (type_4)0x0 && (var_10[5] != (type_4)0x0)))) {
      var_11(&local_38,this,var_12(var_13,in_stack_ffffffc4));
      var_6 = &local_38.field_2;
      var_5 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                *)(__return_storage_ptr__->_M_dataplus)._M_p;
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)local_38._M_dataplus._M_p == var_6) {
        if (local_38._M_string_length != 0) {
          if (local_38._M_string_length == 1) {
            var_5->_M_local_buf[0] = local_38.field_2._M_local_buf[0];
            var_5 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                      *)(__return_storage_ptr__->_M_dataplus)._M_p;
          }
          else {
            (**(type_7 **)(var_13 + -0x3698))(var_5,var_6);
            var_5 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                      *)(__return_storage_ptr__->_M_dataplus)._M_p;
          }
        }
        __return_storage_ptr__->_M_string_length = local_38._M_string_length;
        var_5->_M_local_buf[local_38._M_string_length] = '\0';
      }
      else if (&__return_storage_ptr__->field_2 == var_5) {
        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;
        __return_storage_ptr__->_M_string_length = local_38._M_string_length;
        (__return_storage_ptr__->field_2)._M_allocated_capacity =
             local_38.field_2._M_allocated_capacity;
        local_38._M_dataplus._M_p = (type_8)var_6;
      }
      else {
        sVar4 = (__return_storage_ptr__->field_2)._M_allocated_capacity;
        (__return_storage_ptr__->_M_dataplus)._M_p = local_38._M_dataplus._M_p;
        __return_storage_ptr__->_M_string_length = local_38._M_string_length;
        (__return_storage_ptr__->field_2)._M_allocated_capacity =
             local_38.field_2._M_allocated_capacity;
        local_38._M_dataplus._M_p = (type_8)var_6;
        if (var_5 != (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                       *)0x0) {
          local_38._M_dataplus._M_p = (type_8)var_5;
          local_38.field_2._M_allocated_capacity = sVar4;
        }
      }
      local_38._M_string_length = 0;
      *local_38._M_dataplus._M_p = '\0';
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)local_38._M_dataplus._M_p != var_6) {
        (**(type_7 **)(var_13 + -0x7f44))();
      }
      if (0x7fffffff - __return_storage_ptr__->_M_string_length < 2) {
        psVar2 = (type_2 *)(**(type_7 **)(var_13 + -0x73cc))(*(int *)(var_13 + -0x7fc4) + 0x446c);
        return psVar2;
      }
      (**(type_7 **)(var_13 + -0x73d8))(__return_storage_ptr__,*(int *)(var_13 + -0x77f0) + 0x208,2);
    }
    var_14 = var_10[6];
    if (var_14 != (type_4)0x0) {
      var_15 = (**(type_7 **)(var_13 + -0x36a4))(var_14);
      if (0x7fffffff - __return_storage_ptr__->_M_string_length < var_15) {
        psVar2 = (type_2 *)(**(type_7 **)(var_13 + -0x73cc))(*(int *)(var_13 + -0x7fc4) + 0x446c);
        return psVar2;
      }
                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */
      (**(type_7 **)(var_13 + -0x73d8))(__return_storage_ptr__,var_14,var_15);
    }
  }
  return __return_storage_ptr__;
}


(translation_unit (ERROR (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR (identifier) (identifier) (identifier) (identifier)) right: (identifier)) (identifier) (identifier)) (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))) (ERROR (comma_expression left: (identifier) (ERROR (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) (comma_expression left: (identifier) (ERROR (identifier)) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) (comma_expression left: (identifier) (ERROR (identifier)) right: (identifier)) (comma_expression left: (identifier) (ERROR (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier))) right: (identifier)) (binary_expression left: (identifier) right: (identifier))) right: (identifier)) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (false)) right: (comma_expression left: (false) right: (binary_expression left: (true) (ERROR) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))))) alternative: (else_clause (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: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) 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: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (return_statement (identifier)))) (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: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (return_statement (identifier)))) (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: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))))))) (return_statement (identifier))))

/* gold::Gdb_index_info_reader::MASKED(long long) */

Gdb_index_info_reader * __thiscall
gold::Gdb_index_info_reader::get_context_abi_cxx11_(Gdb_index_info_reader *this,longlong param_1)

{
  uint uVar1;
  Gdb_index_info_reader *pGVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  undefined4 in_stack_ffffffc4;
  Gdb_index_info_reader *local_38;
  int local_34;
  undefined4 local_30 [4];
  int local_20 [3];
  
  iVar5 = 0x4c9240;
  *(undefined4 *)(this + 4) = 0;
  this[8] = (Gdb_index_info_reader)0x0;
  *(Gdb_index_info_reader **)this = this + 8;
  std::
  _Hashtable<long_long,std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>,std::allocator<std::pair<long_long_const,gold::Gdb_index_info_reader::Declaration_pair>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>
  ::find((longlong *)local_20);
  if (local_20[0] != 0) {
    if ((0 < *(int *)(local_20[0] + 0x10)) ||
       ((*(int *)(local_20[0] + 0x10) == 0 && (*(int *)(local_20[0] + 0x14) != 0)))) {
      get_context_abi_cxx11_((Gdb_index_info_reader *)&local_38,CONCAT44(iVar5,in_stack_ffffffc4));
      pGVar2 = *(Gdb_index_info_reader **)this;
      if (local_38 == (Gdb_index_info_reader *)local_30) {
        if (local_34 != 0) {
          if (local_34 == 1) {
            *pGVar2 = local_30[0]._0_1_;
            pGVar2 = *(Gdb_index_info_reader **)this;
          }
          else {
            (**(code **)(iVar5 + -0x3698))(pGVar2,(Gdb_index_info_reader *)local_30);
            pGVar2 = *(Gdb_index_info_reader **)this;
          }
        }
        *(int *)(this + 4) = local_34;
        pGVar2[local_34] = (Gdb_index_info_reader)0x0;
      }
      else if (this + 8 == pGVar2) {
        *(Gdb_index_info_reader **)this = local_38;
        *(int *)(this + 4) = local_34;
        *(undefined4 *)(this + 8) = local_30[0];
        local_38 = (Gdb_index_info_reader *)local_30;
      }
      else {
        uVar3 = *(undefined4 *)(this + 8);
        *(Gdb_index_info_reader **)this = local_38;
        *(int *)(this + 4) = local_34;
        *(undefined4 *)(this + 8) = local_30[0];
        local_38 = (Gdb_index_info_reader *)local_30;
        if (pGVar2 != (Gdb_index_info_reader *)0x0) {
          local_38 = pGVar2;
          local_30[0] = uVar3;
        }
      }
      local_34 = 0;
      *local_38 = (Gdb_index_info_reader)0x0;
      if (local_38 != (Gdb_index_info_reader *)local_30) {
        (**(code **)(iVar5 + -0x7f44))();
      }
      if (0x7fffffffU - *(int *)(this + 4) < 2) {
        pGVar2 = (Gdb_index_info_reader *)
                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);
        return pGVar2;
      }
      (**(code **)(iVar5 + -0x73d8))(this,*(int *)(iVar5 + -0x77f0) + 0x208,2);
    }
    iVar4 = *(int *)(local_20[0] + 0x18);
    if (iVar4 != 0) {
      uVar1 = (**(code **)(iVar5 + -0x36a4))(iVar4);
      if (0x7fffffffU - *(int *)(this + 4) < uVar1) {
        pGVar2 = (Gdb_index_info_reader *)
                 (**(code **)(iVar5 + -0x73cc))(*(int *)(iVar5 + -0x7fc4) + 0x446c);
        return pGVar2;
      }
                    /* try { // try from 00179788 to 001798df has its CatchHandler @ 001798e0 */
      (**(code **)(iVar5 + -0x73d8))(this,iVar4,uVar1);
    }
  }
  return this;
}

