
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original name: _M_assign<std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1,
   _H2, _Hash, _RehashPolicy, _Traits>::_Hashtable(const std::_Hashtable<_Key, _Value, _Alloc,
   _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>&) [with _Key =
   gold::Symbol_location; _Value = gold::Symbol_location; _Alloc =
   std::allocator<gold::Symbol_location>; _ExtractKey = std::__detail::_Identity; _Equal =
   std::equal_to<gold::Symbol_location>; _H1 = gold::Symbol_location_hash; _H2 =
   std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy =
   std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, true,
   true>]::<lambda(const __node_type*)> >
   DWARF original prototype: void
   _M_assign<std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>::_Hashtable(const_std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>&)_[with__Key_=_gold::Symbol_location;__Value_=_gold::Symbol_location;__Alloc_=_std::allocator<gold::Symbol_location>;__ExtractKey_=_std::__detail::_Identity;__Equal_=_std::equal_to<gold::Symbol_location>;__H1_=_gold::Symbol_location_hash;__H2_=_std::__detail::_Mod_range_hashing;__Hash_=_std::__detail::_Default_ranged_hash;__RehashPolicy_=_std::__detail::_Prime_rehash_policy;__Traits_=_std::__detail::_Hashtable_traits<true,_true,_true>]::<lambda(const___node_type*)>_>(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
   * this,
   _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
   * __ht, <lambda(const___node_type*)> * __node_gen) */

void __thiscall
std::
_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
::
_M_assign<std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>::_Hashtable(const_std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>&)_[with__Key___gold::Symbol_location___Value___gold::Symbol_location___Alloc___std::allocator<gold::Symbol_location>___ExtractKey___std::__detail::_Identity___Equal___std::equal_to<gold::Symbol_location>___H1___gold::Symbol_location_hash___H2___std::__detail::_Mod_range_hashing___Hash___std::__detail::_Default_ranged_hash___RehashPolicy___std::__detail::_Prime_rehash_policy___Traits___std::__detail::_Hashtable_traits<true,_true,_true>]::<lambda(const___node_type*)>_>
          (_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
           *this,_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                 *__ht,<lambda(const___node_type*)> *__node_gen)

{
  _Hash_node_base *p_Var1;
  __node_type *p_Var2;
  __bucket_type *pp_Var3;
  _Hash_node_base *p_Var4;
  __node_type *p_Var5;
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>
  *in_stack_ffffffd4;
  Symbol_location *in_stack_ffffffd8;
  
  if (this->_M_buckets == (__bucket_type *)0x0) {
    if (this->_M_bucket_count == 1) {
      this->_M_single_bucket = (__bucket_type)0x0;
      this->_M_buckets = &this->_M_single_bucket;
    }
    else {
      pp_Var3 = __detail::
                _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>
                ::_M_allocate_buckets
                          ((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>
                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8);
      this->_M_buckets = pp_Var3;
    }
  }
  p_Var4 = (__ht->_M_before_begin)._M_nxt;
  if (p_Var4 != (_Hash_node_base *)0x0) {
                    /* try { // try from 00104a2f to 00104a6f has its CatchHandler @ 00104ac7 */
    p_Var2 = __detail::
             _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>
             ::_M_allocate_node<const_gold::Symbol_location&>(in_stack_ffffffd4,in_stack_ffffffd8);
    p_Var2->_M_hash_code = (size_t)p_Var4[5]._M_nxt;
    (this->_M_before_begin)._M_nxt = (_Hash_node_base *)p_Var2;
    this->_M_buckets[p_Var2->_M_hash_code % this->_M_bucket_count] = &this->_M_before_begin;
    for (p_Var4 = p_Var4->_M_nxt; p_Var5 = p_Var2, p_Var4 != (_Hash_node_base *)0x0;
        p_Var4 = p_Var4->_M_nxt) {
      while( true ) {
        p_Var2 = __detail::
                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>
                 ::_M_allocate_node<const_gold::Symbol_location&>
                           (in_stack_ffffffd4,in_stack_ffffffd8);
        (p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =
             (_Hash_node_base *)p_Var2;
        p_Var1 = p_Var4[5]._M_nxt;
        p_Var2->_M_hash_code = (size_t)p_Var1;
        if (this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] != (__bucket_type)0x0) break;
        this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] = (__bucket_type)p_Var5;
        p_Var4 = p_Var4->_M_nxt;
        p_Var5 = p_Var2;
        if (p_Var4 == (_Hash_node_base *)0x0) {
          return;
        }
      }
    }
  }
  return;
}



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

void FUN_00104a00(int *param_1,int param_2)

{
  int *piVar1;
  uint uVar2;
  int *piVar3;
  int iVar4;
  undefined4 *puVar5;
  int *piVar6;
  
  if (*param_1 == 0) {
    if (param_1[1] == 1) {
      param_1[6] = 0;
      *param_1 = (int)(param_1 + 6);
    }
    else {
      iVar4 = FUN_000b0a20();
      *param_1 = iVar4;
    }
  }
  puVar5 = *(undefined4 **)(param_2 + 8);
  if (puVar5 != (undefined4 *)0x0) {
                    /* try { // try from 00104a2f to 00104a6f has its CatchHandler @ 00104ac7 */
    piVar3 = (int *)FUN_000b1310();
    piVar3[5] = puVar5[5];
    param_1[2] = (int)piVar3;
    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;
    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;
        puVar5 = (undefined4 *)*puVar5) {
      while( true ) {
        piVar3 = (int *)FUN_000b1310();
        *piVar6 = (int)piVar3;
        uVar2 = puVar5[5];
        piVar3[5] = uVar2;
        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);
        if (*piVar1 != 0) break;
        *piVar1 = (int)piVar6;
        puVar5 = (undefined4 *)*puVar5;
        piVar6 = piVar3;
        if (puVar5 == (undefined4 *)0x0) {
          return;
        }
      }
    }
  }
  return;
}


CALL 0x00074f02
ADD EAX,0x4e55fb
PUSH EBP
PUSH EDI
XOR EDI,EDI
PUSH ESI
PUSH EBX
SUB ESP,0x1c
MOV ESI,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0xc],EAX
MOV ECX,dword ptr [ESI]
TEST ECX,ECX
JZ 0x00104aa0
MOV EAX,dword ptr [ESP + 0x34]
MOV EBX,dword ptr [EAX + 0x8]
TEST EBX,EBX
JZ 0x00104a95
LEA EAX,[EBX + 0x4]
CALL 0x000b1310
MOV EBP,EAX
MOV EAX,dword ptr [EBX + 0x14]
XOR EDX,EDX
LEA ECX,[ESI + 0x8]
MOV dword ptr [EBP + 0x14],EAX
MOV dword ptr [ESI + 0x8],EBP
MOV EAX,dword ptr [EBP + 0x14]
DIV dword ptr [ESI + 0x4]
MOV EAX,dword ptr [ESI]
MOV dword ptr [EAX + EDX*0x4],ECX
MOV EBX,dword ptr [EBX]
TEST EBX,EBX
JNZ 0x00104a68
JMP 0x00104a95
MOV EBX,dword ptr [EBX]
MOV EBP,ECX
TEST EBX,EBX
JZ 0x00104a95
LEA EAX,[EBX + 0x4]
CALL 0x000b1310
MOV dword ptr [EBP],EAX
MOV ECX,EAX
MOV EAX,dword ptr [EBX + 0x14]
XOR EDX,EDX
MOV dword ptr [ECX + 0x14],EAX
DIV dword ptr [ESI + 0x4]
MOV EAX,dword ptr [ESI]
LEA EAX,[EAX + EDX*0x4]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JNZ 0x00104a60
MOV dword ptr [EAX],EBP
MOV EBX,dword ptr [EBX]
MOV EBP,ECX
TEST EBX,EBX
JNZ 0x00104a68
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESI + 0x4]
CMP EAX,0x1
JZ 0x00104ab6
CALL 0x000b0a20
MOV EDI,EAX
MOV dword ptr [ESI],EDI
JMP 0x00104a21
LEA EDI,[ESI + 0x18]
MOV dword ptr [ESI + 0x18],0x0
MOV dword ptr [ESI],EDI
JMP 0x00104a21
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_00104a00(int *param_1,int param_2)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  if (*param_1 == 0) {\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_2 + 8);\n  if (puVar5 != (undefined4 *)0x0) {\n                    /* try { // try from 00104a2f to 00104a6f has its CatchHandler @ 00104ac7 */\n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00104a00(int *param_1,int param_2)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  if (*param_1 == 0) {\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_2 + 8);\n  if (puVar5 != (undefined4 *)0x0) {\n                    /* try { // try from 00104a2f to 00104a6f has its CatchHandler @ 00104ac7 */\n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00104a00(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  if (*param_1 == 0) {\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_2 + 8);\n  if (puVar5 != (undefined4 *)0x0) {\n                    /* try { // try from 00104a2f to 00104a6f has its CatchHandler @ 00104ac7 */\n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (if_statement "if (*param_1 == 0) {\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }" { (if_statement "if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }" if (parenthesized_expression "(param_1[1] == 1)" ( (binary_expression "param_1[1] == 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }" { (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = (int)(param_1 + 6);" (assignment_expression "*param_1 = (int)(param_1 + 6)" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)(param_1 + 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) )))) ;) }) (else_clause "else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }" else (compound_statement "{\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }" { (expression_statement "iVar4 = FUN_000b0a20();" (assignment_expression "iVar4 = FUN_000b0a20()" identifier = (call_expression "FUN_000b0a20()" identifier (argument_list "()" ( )))) ;) (expression_statement "*param_1 = iVar4;" (assignment_expression "*param_1 = iVar4" (pointer_expression "*param_1" * identifier) = identifier) ;) }))) })) (expression_statement "puVar5 = *(undefined4 **)(param_2 + 8);" (assignment_expression "puVar5 = *(undefined4 **)(param_2 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 8)" * (cast_expression "(undefined4 **)(param_2 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 != (undefined4 *)0x0) {\n                    /* try { // try from 00104a2f to 00104a6f has its CatchHandler @ 00104ac7 */\n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 00104a2f to 00104a6f has its CatchHandler @ 00104ac7 */\n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }" { comment (expression_statement "piVar3 = (int *)FUN_000b1310();" (assignment_expression "piVar3 = (int *)FUN_000b1310()" identifier = (cast_expression "(int *)FUN_000b1310()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000b1310()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar3[5] = puVar5[5];" (assignment_expression "piVar3[5] = puVar5[5]" (subscript_expression "piVar3[5]" identifier [ number_literal ]) = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = (int)piVar3;" (assignment_expression "param_1[2] = (int)piVar3" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;" (assignment_expression "*(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2" (pointer_expression "*(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4)" * (cast_expression "(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4)" ( (binary_expression "*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4" (pointer_expression "*param_1" * identifier) + (binary_expression "((uint)piVar3[5] % (uint)param_1[1]) * 4" (parenthesized_expression "((uint)piVar3[5] % (uint)param_1[1])" ( (binary_expression "(uint)piVar3[5] % (uint)param_1[1]" (cast_expression "(uint)piVar3[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[5]" identifier [ number_literal ])) % (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) * number_literal)) )))) = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (for_statement "for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }" for ( (assignment_expression "puVar5 = (undefined4 *)*puVar5" identifier = (cast_expression "(undefined4 *)*puVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ; (comma_expression "piVar6 = piVar3, puVar5 != (undefined4 *)0x0" (assignment_expression "piVar6 = piVar3" identifier = identifier) , (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar5 = (undefined4 *)*puVar5" identifier = (cast_expression "(undefined4 *)*puVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ) (compound_statement "{\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }" { (while_statement "while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }" { (expression_statement "piVar3 = (int *)FUN_000b1310();" (assignment_expression "piVar3 = (int *)FUN_000b1310()" identifier = (cast_expression "(int *)FUN_000b1310()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000b1310()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*piVar6 = (int)piVar3;" (assignment_expression "*piVar6 = (int)piVar3" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar2 = puVar5[5];" (assignment_expression "uVar2 = puVar5[5]" identifier = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (expression_statement "piVar3[5] = uVar2;" (assignment_expression "piVar3[5] = uVar2" (subscript_expression "piVar3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);" (assignment_expression "piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4)" identifier = (cast_expression "(int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + (uVar2 % (uint)param_1[1]) * 4)" ( (binary_expression "*param_1 + (uVar2 % (uint)param_1[1]) * 4" (pointer_expression "*param_1" * identifier) + (binary_expression "(uVar2 % (uint)param_1[1]) * 4" (parenthesized_expression "(uVar2 % (uint)param_1[1])" ( (binary_expression "uVar2 % (uint)param_1[1]" identifier % (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) * number_literal)) )))) ;) (if_statement "if (*piVar1 != 0) break;" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*piVar1 = (int)piVar6;" (assignment_expression "*piVar1 = (int)piVar6" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar5 = (undefined4 *)*puVar5;" (assignment_expression "puVar5 = (undefined4 *)*puVar5" identifier = (cast_expression "(undefined4 *)*puVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (expression_statement "piVar6 = piVar3;" (assignment_expression "piVar6 = piVar3" identifier = identifier) ;) (if_statement "if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }" if (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" ( (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) })) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* DWARF original name: _M_assign<std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1,\n   _H2, _Hash, _RehashPolicy, _Traits>::_Hashtable(const std::_Hashtable<_Key, _Value, _Alloc,\n   _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>&) [with _Key =\n   gold::Symbol_location; _Value = gold::Symbol_location; _Alloc =\n   std::allocator<gold::Symbol_location>; _ExtractKey = std::__detail::_Identity; _Equal =\n   std::equal_to<gold::Symbol_location>; _H1 = gold::Symbol_location_hash; _H2 =\n   std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy =\n   std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, true,\n   true>]::<lambda(const __node_type*)> >\n   DWARF original prototype: void\n   _M_assign<std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>::_Hashtable(const_std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>&)_[with__Key_=_gold::Symbol_location;__Value_=_gold::Symbol_location;__Alloc_=_std::allocator<gold::Symbol_location>;__ExtractKey_=_std::__detail::_Identity;__Equal_=_std::equal_to<gold::Symbol_location>;__H1_=_gold::Symbol_location_hash;__H2_=_std::__detail::_Mod_range_hashing;__Hash_=_std::__detail::_Default_ranged_hash;__RehashPolicy_=_std::__detail::_Prime_rehash_policy;__Traits_=_std::__detail::_Hashtable_traits<true,_true,_true>]::<lambda(const___node_type*)>_>(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n   * this,\n   _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n   * __ht, <lambda(const___node_type*)> * __node_gen) */\n\nvoid __thiscall\nstd::\n_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_assign<std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>::_Hashtable(const_std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>&)_[with__Key___gold::Symbol_location___Value___gold::Symbol_location___Alloc___std::allocator<gold::Symbol_location>___ExtractKey___std::__detail::_Identity___Equal___std::equal_to<gold::Symbol_location>___H1___gold::Symbol_location_hash___H2___std::__detail::_Mod_range_hashing___Hash___std::__detail::_Default_ranged_hash___RehashPolicy___std::__detail::_Prime_rehash_policy___Traits___std::__detail::_Hashtable_traits<true,_true,_true>]::<lambda(const___node_type*)>_>\n          (_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *__ht,<lambda(const___node_type*)> *__node_gen)\n\n{\n  _Hash_node_base *p_Var1;\n  __node_type *p_Var2;\n  __bucket_type *pp_Var3;\n  _Hash_node_base *p_Var4;\n  __node_type *p_Var5;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n  *in_stack_ffffffd4;\n  Symbol_location *in_stack_ffffffd8;\n  \n  if (this->_M_buckets == (__bucket_type *)0x0) {\n    if (this->_M_bucket_count == 1) {\n      this->_M_single_bucket = (__bucket_type)0x0;\n      this->_M_buckets = &this->_M_single_bucket;\n    }\n    else {\n      pp_Var3 = __detail::\n                _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                ::_M_allocate_buckets\n                          ((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8);\n      this->_M_buckets = pp_Var3;\n    }\n  }\n  p_Var4 = (__ht->_M_before_begin)._M_nxt;\n  if (p_Var4 != (_Hash_node_base *)0x0) {\n                    /* try { // try from 00104a2f to 00104a6f has its CatchHandler @ 00104ac7 */\n    p_Var2 = __detail::\n             _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n             ::_M_allocate_node<const_gold::Symbol_location&>(in_stack_ffffffd4,in_stack_ffffffd8);\n    p_Var2->_M_hash_code = (size_t)p_Var4[5]._M_nxt;\n    (this->_M_before_begin)._M_nxt = (_Hash_node_base *)p_Var2;\n    this->_M_buckets[p_Var2->_M_hash_code % this->_M_bucket_count] = &this->_M_before_begin;\n    for (p_Var4 = p_Var4->_M_nxt; p_Var5 = p_Var2, p_Var4 != (_Hash_node_base *)0x0;\n        p_Var4 = p_Var4->_M_nxt) {\n      while( true ) {\n        p_Var2 = __detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n                 ::_M_allocate_node<const_gold::Symbol_location&>\n                           (in_stack_ffffffd4,in_stack_ffffffd8);\n        (p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =\n             (_Hash_node_base *)p_Var2;\n        p_Var1 = p_Var4[5]._M_nxt;\n        p_Var2->_M_hash_code = (size_t)p_Var1;\n        if (this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] != (__bucket_type)0x0) break;\n        this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] = (__bucket_type)p_Var5;\n        p_Var4 = p_Var4->_M_nxt;\n        p_Var5 = p_Var2;\n        if (p_Var4 == (_Hash_node_base *)0x0) {\n          return;\n        }\n      }\n    }\n  }\n  return;\n}\n\n" comment comment (declaration "void __thiscall\nstd::\n_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_assign<std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>::_Hashtable(const_std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>&)_[with__Key___gold::Symbol_location___Value___gold::Symbol_location___Alloc___std::allocator<gold::Symbol_location>___ExtractKey___std::__detail::_Identity___Equal___std::equal_to<gold::Symbol_location>___H1___gold::Symbol_location_hash___H2___std::__detail::_Mod_range_hashing___Hash___std::__detail::_Default_ranged_hash___RehashPolicy___std::__detail::_Prime_rehash_policy___Traits___std::__detail::_Hashtable_traits<true,_true,_true>]::<lambda(const___node_type*)>_>\n          (_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *__ht,<lambda(const___node_type*)> *__node_gen)\n\n{\n  _Hash_node_base *p_Var1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::\n_Hashtable<gold::" identifier : : identifier < identifier : :) identifier , (ERROR "_gold::" identifier : :) identifier , (ERROR "_std::allocator<gold::" identifier : : identifier < identifier : :) identifier (ERROR ">" >) , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::equal_to<gold::" identifier : : identifier < identifier : :) identifier (ERROR ">" >) , (ERROR "_gold::" identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier (ERROR "<true" < true) , identifier , (ERROR "_true>_>\n::\n_M_assign<std::_Hashtable<" identifier > identifier > : : identifier < identifier : : identifier <) identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , (ERROR "__Traits>::" identifier > : :) (array_declarator "_Hashtable(const_std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>&)_[with__Key___gold::Symbol_location___Value___gold::Symbol_location___Alloc___std::allocator<gold::Symbol_location>___ExtractKey___std::__detail::_Identity___Equal___std::equal_to<gold::Symbol_location>___H1___gold::Symbol_location_hash___H2___std::__detail::_Mod_range_hashing___Hash___std::__detail::_Default_ranged_hash___RehashPolicy___std::__detail::_Prime_rehash_policy___Traits___std::__detail::_Hashtable_traits<true" (function_declarator "_Hashtable(const_std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>&)_" identifier (parameter_list "(const_std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>&)" ( (parameter_declaration "const_std::_Hashtable<_Key" type_identifier (ERROR "::_Hashtable<" : : identifier <) identifier) , (parameter_declaration "__Value" type_identifier) , (parameter_declaration "__Alloc" type_identifier) , (parameter_declaration "__ExtractKey" type_identifier) , (parameter_declaration "__Equal" type_identifier) , (parameter_declaration "__H1" type_identifier) , (parameter_declaration "__H2" type_identifier) , (parameter_declaration "__Hash" type_identifier) , (parameter_declaration "__RehashPolicy" type_identifier) , (parameter_declaration "__Traits" type_identifier) (ERROR ">&" > &) )) identifier) [ (ERROR "with__Key___gold::Symbol_location___Value___gold::Symbol_location___Alloc___std::" identifier : : identifier : : identifier : :) (binary_expression "allocator<gold::Symbol_location>___ExtractKey___std::__detail::_Identity___Equal___std::equal_to<gold::Symbol_location>___H1___gold::Symbol_location_hash___H2___std::__detail::_Mod_range_hashing___Hash___std::__detail::_Default_ranged_hash___RehashPolicy___std::__detail::_Prime_rehash_policy___Traits___std::__detail::_Hashtable_traits<true" (binary_expression "allocator<gold::Symbol_location>___ExtractKey___std::__detail::_Identity___Equal___std::equal_to<gold::Symbol_location>___H1___gold::Symbol_location_hash___H2___std::__detail::_Mod_range_hashing___Hash___std::__detail::_Default_ranged_hash___RehashPolicy___std::__detail::_Prime_rehash_policy___Traits___std::__detail::_Hashtable_traits" (binary_expression "allocator<gold::Symbol_location>___ExtractKey___std::__detail::_Identity___Equal___std::equal_to<gold::Symbol_location" (binary_expression "allocator<gold::Symbol_location>___ExtractKey___std::__detail::_Identity___Equal___std::equal_to" (binary_expression "allocator<gold::Symbol_location" identifier < (ERROR "gold::" identifier : :) identifier) > (ERROR "___ExtractKey___std::__detail::_Identity___Equal___std::" identifier : : identifier : : identifier : :) identifier) < (ERROR "gold::" identifier : :) identifier) > (ERROR "___H1___gold::Symbol_location_hash___H2___std::__detail::_Mod_range_hashing___Hash___std::__detail::_Default_ranged_hash___RehashPolicy___std::__detail::_Prime_rehash_policy___Traits___std::__detail::" identifier : : identifier : : identifier : : identifier : : identifier : : identifier : : identifier : : identifier : : identifier : :) identifier) < true) ]) , identifier , (ERROR "_true>]::<lambda(const___node_type*)>_>\n          (_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *__ht,<lambda(const___node_type*)> *__node_gen)\n\n{\n  _Hash_node_base" identifier > ] : : < (function_declarator "lambda(const___node_type*)>_>\n          (_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *__ht,<lambda(const___node_type*)> *__node_gen)" identifier (parameter_list "(const___node_type*)" ( (parameter_declaration "const___node_type*" type_identifier (abstract_pointer_declarator "*" *)) )) (ERROR ">" >) (call_expression "_>\n          (_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *__ht,<lambda(const___node_type*)> *__node_gen)" identifier (ERROR ">" >) (argument_list "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                 *__ht,<lambda(const___node_type*)> *__node_gen)" ( (binary_expression "_Hashtable<gold::Symbol_location" identifier < (ERROR "gold::" identifier : :) identifier) , (ERROR "_gold::" identifier : :) identifier , (ERROR "_std::allocator<gold::Symbol_location>,_std::__detail::" identifier : : (binary_expression "allocator<gold::Symbol_location>,_std" (binary_expression "allocator<gold::Symbol_location" identifier < (ERROR "gold::" identifier : :) identifier) > (ERROR "," ,) identifier) : : identifier : :) identifier , (ERROR "_std::equal_to<gold::Symbol_location>,_gold::" identifier : : (binary_expression "equal_to<gold::Symbol_location>,_gold" (binary_expression "equal_to<gold::Symbol_location" identifier < (ERROR "gold::" identifier : :) identifier) > (ERROR "," ,) identifier) : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) (binary_expression "_Hashtable_traits<true" identifier < identifier) , identifier , (binary_expression "_true>_>\n           *this" (binary_expression "_true>_" identifier > identifier) (ERROR ">" >) * identifier) , (binary_expression "_Hashtable<gold::Symbol_location" identifier < (ERROR "gold::" identifier : :) identifier) , (ERROR "_gold::" identifier : :) identifier , (ERROR "_std::allocator<gold::Symbol_location>,_std::__detail::" identifier : : (binary_expression "allocator<gold::Symbol_location>,_std" (binary_expression "allocator<gold::Symbol_location" identifier < (ERROR "gold::" identifier : :) identifier) > (ERROR "," ,) identifier) : : identifier : :) identifier , (ERROR "_std::equal_to<gold::Symbol_location>,_gold::" identifier : : (binary_expression "equal_to<gold::Symbol_location>,_gold" (binary_expression "equal_to<gold::Symbol_location" identifier < (ERROR "gold::" identifier : :) identifier) > (ERROR "," ,) identifier) : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) (binary_expression "_Hashtable_traits<true" identifier < identifier) , identifier , (binary_expression "_true>_>\n                 *__ht" (binary_expression "_true>_" identifier > identifier) (ERROR ">" >) * identifier) , (ERROR "<" <) (binary_expression "lambda(const___node_type*)> *__node_gen" (call_expression "lambda(const___node_type*)" identifier (argument_list "(const___node_type*)" ( (binary_expression "const___node_type*" identifier * identifier) ))) (ERROR ">" >) * identifier) )))) { identifier) (pointer_declarator "*p_Var1" * identifier) ;) (declaration "__node_type *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "__bucket_type *pp_Var3;" type_identifier (pointer_declarator "*pp_Var3" * identifier) ;) (declaration "_Hash_node_base *p_Var4;" type_identifier (pointer_declarator "*p_Var4" * identifier) ;) (declaration "__node_type *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (ERROR "_Hashtable_alloc<std::allocator<std::" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) : :) (labeled_statement "__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n  *in_stack_ffffffd4;" statement_identifier (ERROR "::_Hash_node<gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) :) : (expression_statement "Symbol_location,_true>_>_>\n  *in_stack_ffffffd4;" (comma_expression "Symbol_location,_true>_>_>\n  *in_stack_ffffffd4" identifier , (binary_expression "_true>_>_>\n  *in_stack_ffffffd4" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > (pointer_expression "*in_stack_ffffffd4" * identifier))) ;)) (declaration "Symbol_location *in_stack_ffffffd8;" type_identifier (pointer_declarator "*in_stack_ffffffd8" * identifier) ;) (if_statement "if (this->_M_buckets == (__bucket_type *)0x0) {\n    if (this->_M_bucket_count == 1) {\n      this->_M_single_bucket = (__bucket_type)0x0;\n      this->_M_buckets = &this->_M_single_bucket;\n    }\n    else {\n      pp_Var3 = __detail::\n                _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                ::_M_allocate_buckets\n                          ((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8);\n      this->_M_buckets = pp_Var3;\n    }\n  }" if (parenthesized_expression "(this->_M_buckets == (__bucket_type *)0x0)" ( (binary_expression "this->_M_buckets == (__bucket_type *)0x0" (field_expression "this->_M_buckets" identifier -> field_identifier) == (cast_expression "(__bucket_type *)0x0" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (this->_M_bucket_count == 1) {\n      this->_M_single_bucket = (__bucket_type)0x0;\n      this->_M_buckets = &this->_M_single_bucket;\n    }\n    else {\n      pp_Var3 = __detail::\n                _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                ::_M_allocate_buckets\n                          ((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8);\n      this->_M_buckets = pp_Var3;\n    }\n  }" { (if_statement "if (this->_M_bucket_count == 1) {\n      this->_M_single_bucket = (__bucket_type)0x0;\n      this->_M_buckets = &this->_M_single_bucket;\n    }\n    else {\n      pp_Var3 = __detail::\n                _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                ::_M_allocate_buckets\n                          ((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8);\n      this->_M_buckets = pp_Var3;\n    }" if (parenthesized_expression "(this->_M_bucket_count == 1)" ( (binary_expression "this->_M_bucket_count == 1" (field_expression "this->_M_bucket_count" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      this->_M_single_bucket = (__bucket_type)0x0;\n      this->_M_buckets = &this->_M_single_bucket;\n    }" { (expression_statement "this->_M_single_bucket = (__bucket_type)0x0;" (assignment_expression "this->_M_single_bucket = (__bucket_type)0x0" (field_expression "this->_M_single_bucket" identifier -> field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ;) (expression_statement "this->_M_buckets = &this->_M_single_bucket;" (assignment_expression "this->_M_buckets = &this->_M_single_bucket" (field_expression "this->_M_buckets" identifier -> field_identifier) = (pointer_expression "&this->_M_single_bucket" & (field_expression "this->_M_single_bucket" identifier -> field_identifier))) ;) }) (else_clause "else {\n      pp_Var3 = __detail::\n                _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                ::_M_allocate_buckets\n                          ((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8);\n      this->_M_buckets = pp_Var3;\n    }" else (compound_statement "{\n      pp_Var3 = __detail::\n                _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                ::_M_allocate_buckets\n                          ((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8);\n      this->_M_buckets = pp_Var3;\n    }" { (ERROR "pp_Var3 = __detail::\n                _Hashtable_alloc<std::allocator<std::" (assignment_expression "pp_Var3 = __detail" identifier = identifier) : : (binary_expression "_Hashtable_alloc<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) : :) (labeled_statement "__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                ::_M_allocate_buckets\n                          ((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8);" statement_identifier (ERROR "::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace):" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (binary_expression "pair<const_(anonymous_namespace)" identifier < (call_expression "const_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)" (binary_expression "Stub_table<64" identifier < number_literal) , (comma_expression "_false>::Plt_stub_key,_(anonymous_namespace)" (binary_expression "_false>::Plt_stub_key" identifier > (ERROR "::" : :) identifier) , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) :) : (expression_statement "Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                ::_M_allocate_buckets\n                          ((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8);" (comma_expression "Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                ::_M_allocate_buckets\n                          ((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8)" (binary_expression "Stub_table<64" identifier < number_literal) , (binary_expression "_false>::Plt_stub_ent>,_true>_>_>\n                ::_M_allocate_buckets\n                          ((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8)" (binary_expression "_false>::Plt_stub_ent>,_true>_>_" (binary_expression "_false>::Plt_stub_ent>,_true>_" (binary_expression "_false>::Plt_stub_ent>,_true" (binary_expression "_false>::Plt_stub_ent" identifier > (ERROR "::" : :) identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_allocate_buckets\n                          ((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8)" identifier (argument_list "((_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8)" ( (parenthesized_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8)" ( (ERROR "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)::" (comma_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64,_false>::Plt_stub_key,_(anonymous_namespace)" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::Stub_table<64" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::__detail::_Hash_node" : : identifier : : identifier) < identifier) (ERROR "::pair" : : identifier) < (call_expression "const_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) (ERROR "::Stub_table" : : identifier) < number_literal) , (comma_expression "_false>::Plt_stub_key,_(anonymous_namespace)" (binary_expression "_false>::Plt_stub_key" identifier > (ERROR "::" : :) identifier) , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : :) (comma_expression "Stub_table<64,_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8" (binary_expression "Stub_table<64" identifier < number_literal) , (comma_expression "_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8" (binary_expression "_false>::Plt_stub_ent>,_true>_>_>\n                            *)in_stack_ffffffd4" (binary_expression "_false>::Plt_stub_ent>,_true>_>_" (binary_expression "_false>::Plt_stub_ent>,_true>_" (binary_expression "_false>::Plt_stub_ent>,_true" (binary_expression "_false>::Plt_stub_ent" identifier > (ERROR "::" : :) identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "*)in_stack_ffffffd4" * (ERROR ")" )) identifier)) , (cast_expression "(size_t)in_stack_ffffffd8" ( (type_descriptor "size_t" primitive_type) ) identifier))) )) ))))) ;)) (expression_statement "this->_M_buckets = pp_Var3;" (assignment_expression "this->_M_buckets = pp_Var3" (field_expression "this->_M_buckets" identifier -> field_identifier) = identifier) ;) }))) })) (expression_statement "p_Var4 = (__ht->_M_before_begin)._M_nxt;" (assignment_expression "p_Var4 = (__ht->_M_before_begin)._M_nxt" identifier = (field_expression "(__ht->_M_before_begin)._M_nxt" (parenthesized_expression "(__ht->_M_before_begin)" ( (field_expression "__ht->_M_before_begin" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (p_Var4 != (_Hash_node_base *)0x0) {\n                    /* try { // try from 00104a2f to 00104a6f has its CatchHandler @ 00104ac7 */\n    p_Var2 = __detail::\n             _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n             ::_M_allocate_node<const_gold::Symbol_location&>(in_stack_ffffffd4,in_stack_ffffffd8);\n    p_Var2->_M_hash_code = (size_t)p_Var4[5]._M_nxt;\n    (this->_M_before_begin)._M_nxt = (_Hash_node_base *)p_Var2;\n    this->_M_buckets[p_Var2->_M_hash_code % this->_M_bucket_count] = &this->_M_before_begin;\n    for (p_Var4 = p_Var4->_M_nxt; p_Var5 = p_Var2, p_Var4 != (_Hash_node_base *)0x0;\n        p_Var4 = p_Var4->_M_nxt) {\n      while( true ) {\n        p_Var2 = __detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n                 ::_M_allocate_node<const_gold::Symbol_location&>\n                           (in_stack_ffffffd4,in_stack_ffffffd8);\n        (p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =\n             (_Hash_node_base *)p_Var2;\n        p_Var1 = p_Var4[5]._M_nxt;\n        p_Var2->_M_hash_code = (size_t)p_Var1;\n        if (this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] != (__bucket_type)0x0) break;\n        this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] = (__bucket_type)p_Var5;\n        p_Var4 = p_Var4->_M_nxt;\n        p_Var5 = p_Var2;\n        if (p_Var4 == (_Hash_node_base *)0x0) {\n          return;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(p_Var4 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var4 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 00104a2f to 00104a6f has its CatchHandler @ 00104ac7 */\n    p_Var2 = __detail::\n             _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n             ::_M_allocate_node<const_gold::Symbol_location&>(in_stack_ffffffd4,in_stack_ffffffd8);\n    p_Var2->_M_hash_code = (size_t)p_Var4[5]._M_nxt;\n    (this->_M_before_begin)._M_nxt = (_Hash_node_base *)p_Var2;\n    this->_M_buckets[p_Var2->_M_hash_code % this->_M_bucket_count] = &this->_M_before_begin;\n    for (p_Var4 = p_Var4->_M_nxt; p_Var5 = p_Var2, p_Var4 != (_Hash_node_base *)0x0;\n        p_Var4 = p_Var4->_M_nxt) {\n      while( true ) {\n        p_Var2 = __detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n                 ::_M_allocate_node<const_gold::Symbol_location&>\n                           (in_stack_ffffffd4,in_stack_ffffffd8);\n        (p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =\n             (_Hash_node_base *)p_Var2;\n        p_Var1 = p_Var4[5]._M_nxt;\n        p_Var2->_M_hash_code = (size_t)p_Var1;\n        if (this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] != (__bucket_type)0x0) break;\n        this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] = (__bucket_type)p_Var5;\n        p_Var4 = p_Var4->_M_nxt;\n        p_Var5 = p_Var2;\n        if (p_Var4 == (_Hash_node_base *)0x0) {\n          return;\n        }\n      }\n    }\n  }" { comment (ERROR "p_Var2 = __detail::\n             _Hashtable_alloc<std::allocator<std::" (assignment_expression "p_Var2 = __detail" identifier = identifier) : : (binary_expression "_Hashtable_alloc<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) : :) (labeled_statement "__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n             ::_M_allocate_node<const_gold::Symbol_location&>(in_stack_ffffffd4,in_stack_ffffffd8);" statement_identifier (ERROR "::_Hash_node<gold::Symbol_location,_true>_>_>\n             ::_M_allocate_node<const_gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) : : (comma_expression "Symbol_location,_true>_>_>\n             ::_M_allocate_node<const_gold" identifier , (binary_expression "_true>_>_>\n             ::_M_allocate_node<const_gold" (binary_expression "_true>_>_>\n             ::_M_allocate_node" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "Symbol_location&>(in_stack_ffffffd4,in_stack_ffffffd8);" (binary_expression "Symbol_location&>(in_stack_ffffffd4,in_stack_ffffffd8)" identifier (ERROR "&" &) > (parenthesized_expression "(in_stack_ffffffd4,in_stack_ffffffd8)" ( (comma_expression "in_stack_ffffffd4,in_stack_ffffffd8" identifier , identifier) ))) ;)) (expression_statement "p_Var2->_M_hash_code = (size_t)p_Var4[5]._M_nxt;" (assignment_expression "p_Var2->_M_hash_code = (size_t)p_Var4[5]._M_nxt" (field_expression "p_Var2->_M_hash_code" identifier -> field_identifier) = (cast_expression "(size_t)p_Var4[5]._M_nxt" ( (type_descriptor "size_t" primitive_type) ) (field_expression "p_Var4[5]._M_nxt" (subscript_expression "p_Var4[5]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "(this->_M_before_begin)._M_nxt = (_Hash_node_base *)p_Var2;" (assignment_expression "(this->_M_before_begin)._M_nxt = (_Hash_node_base *)p_Var2" (field_expression "(this->_M_before_begin)._M_nxt" (parenthesized_expression "(this->_M_before_begin)" ( (field_expression "this->_M_before_begin" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_Hash_node_base *)p_Var2" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "this->_M_buckets[p_Var2->_M_hash_code % this->_M_bucket_count] = &this->_M_before_begin;" (assignment_expression "this->_M_buckets[p_Var2->_M_hash_code % this->_M_bucket_count] = &this->_M_before_begin" (subscript_expression "this->_M_buckets[p_Var2->_M_hash_code % this->_M_bucket_count]" (field_expression "this->_M_buckets" identifier -> field_identifier) [ (binary_expression "p_Var2->_M_hash_code % this->_M_bucket_count" (field_expression "p_Var2->_M_hash_code" identifier -> field_identifier) % (field_expression "this->_M_bucket_count" identifier -> field_identifier)) ]) = (pointer_expression "&this->_M_before_begin" & (field_expression "this->_M_before_begin" identifier -> field_identifier))) ;) (for_statement "for (p_Var4 = p_Var4->_M_nxt; p_Var5 = p_Var2, p_Var4 != (_Hash_node_base *)0x0;\n        p_Var4 = p_Var4->_M_nxt) {\n      while( true ) {\n        p_Var2 = __detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n                 ::_M_allocate_node<const_gold::Symbol_location&>\n                           (in_stack_ffffffd4,in_stack_ffffffd8);\n        (p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =\n             (_Hash_node_base *)p_Var2;\n        p_Var1 = p_Var4[5]._M_nxt;\n        p_Var2->_M_hash_code = (size_t)p_Var1;\n        if (this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] != (__bucket_type)0x0) break;\n        this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] = (__bucket_type)p_Var5;\n        p_Var4 = p_Var4->_M_nxt;\n        p_Var5 = p_Var2;\n        if (p_Var4 == (_Hash_node_base *)0x0) {\n          return;\n        }\n      }\n    }" for ( (assignment_expression "p_Var4 = p_Var4->_M_nxt" identifier = (field_expression "p_Var4->_M_nxt" identifier -> field_identifier)) ; (comma_expression "p_Var5 = p_Var2, p_Var4 != (_Hash_node_base *)0x0" (assignment_expression "p_Var5 = p_Var2" identifier = identifier) , (binary_expression "p_Var4 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "p_Var4 = p_Var4->_M_nxt" identifier = (field_expression "p_Var4->_M_nxt" identifier -> field_identifier)) ) (compound_statement "{\n      while( true ) {\n        p_Var2 = __detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n                 ::_M_allocate_node<const_gold::Symbol_location&>\n                           (in_stack_ffffffd4,in_stack_ffffffd8);\n        (p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =\n             (_Hash_node_base *)p_Var2;\n        p_Var1 = p_Var4[5]._M_nxt;\n        p_Var2->_M_hash_code = (size_t)p_Var1;\n        if (this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] != (__bucket_type)0x0) break;\n        this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] = (__bucket_type)p_Var5;\n        p_Var4 = p_Var4->_M_nxt;\n        p_Var5 = p_Var2;\n        if (p_Var4 == (_Hash_node_base *)0x0) {\n          return;\n        }\n      }\n    }" { (while_statement "while( true ) {\n        p_Var2 = __detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n                 ::_M_allocate_node<const_gold::Symbol_location&>\n                           (in_stack_ffffffd4,in_stack_ffffffd8);\n        (p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =\n             (_Hash_node_base *)p_Var2;\n        p_Var1 = p_Var4[5]._M_nxt;\n        p_Var2->_M_hash_code = (size_t)p_Var1;\n        if (this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] != (__bucket_type)0x0) break;\n        this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] = (__bucket_type)p_Var5;\n        p_Var4 = p_Var4->_M_nxt;\n        p_Var5 = p_Var2;\n        if (p_Var4 == (_Hash_node_base *)0x0) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        p_Var2 = __detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n                 ::_M_allocate_node<const_gold::Symbol_location&>\n                           (in_stack_ffffffd4,in_stack_ffffffd8);\n        (p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =\n             (_Hash_node_base *)p_Var2;\n        p_Var1 = p_Var4[5]._M_nxt;\n        p_Var2->_M_hash_code = (size_t)p_Var1;\n        if (this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] != (__bucket_type)0x0) break;\n        this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] = (__bucket_type)p_Var5;\n        p_Var4 = p_Var4->_M_nxt;\n        p_Var5 = p_Var2;\n        if (p_Var4 == (_Hash_node_base *)0x0) {\n          return;\n        }\n      }" { (ERROR "p_Var2 = __detail::\n                 _Hashtable_alloc<std::allocator<std::" (assignment_expression "p_Var2 = __detail" identifier = identifier) : : (binary_expression "_Hashtable_alloc<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) : :) (labeled_statement "__detail::_Hash_node<gold::Symbol_location,_true>_>_>\n                 ::_M_allocate_node<const_gold::Symbol_location&>\n                           (in_stack_ffffffd4,in_stack_ffffffd8);" statement_identifier (ERROR "::_Hash_node<gold::Symbol_location,_true>_>_>\n                 ::_M_allocate_node<const_gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) : : (comma_expression "Symbol_location,_true>_>_>\n                 ::_M_allocate_node<const_gold" identifier , (binary_expression "_true>_>_>\n                 ::_M_allocate_node<const_gold" (binary_expression "_true>_>_>\n                 ::_M_allocate_node" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "Symbol_location&>\n                           (in_stack_ffffffd4,in_stack_ffffffd8);" (binary_expression "Symbol_location&>\n                           (in_stack_ffffffd4,in_stack_ffffffd8)" identifier (ERROR "&" &) > (parenthesized_expression "(in_stack_ffffffd4,in_stack_ffffffd8)" ( (comma_expression "in_stack_ffffffd4,in_stack_ffffffd8" identifier , identifier) ))) ;)) (expression_statement "(p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =\n             (_Hash_node_base *)p_Var2;" (parenthesized_expression "(p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =\n             (_Hash_node_base *)p_Var2" ( (assignment_expression "p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =\n             (_Hash_node_base *)p_Var2" (field_expression "p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt" (field_expression "p_Var5->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base" (binary_expression "p_Var5->super__Hash_node_value_base<gold" (field_expression "p_Var5->super__Hash_node_value_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol_location>)" : : identifier > )) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)p_Var2" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) ;) (expression_statement "p_Var1 = p_Var4[5]._M_nxt;" (assignment_expression "p_Var1 = p_Var4[5]._M_nxt" identifier = (field_expression "p_Var4[5]._M_nxt" (subscript_expression "p_Var4[5]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var2->_M_hash_code = (size_t)p_Var1;" (assignment_expression "p_Var2->_M_hash_code = (size_t)p_Var1" (field_expression "p_Var2->_M_hash_code" identifier -> field_identifier) = (cast_expression "(size_t)p_Var1" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (if_statement "if (this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] != (__bucket_type)0x0) break;" if (parenthesized_expression "(this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] != (__bucket_type)0x0)" ( (binary_expression "this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] != (__bucket_type)0x0" (subscript_expression "this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count]" (field_expression "this->_M_buckets" identifier -> field_identifier) [ (binary_expression "(uint)p_Var1 % this->_M_bucket_count" (cast_expression "(uint)p_Var1" ( (type_descriptor "uint" type_identifier) ) identifier) % (field_expression "this->_M_bucket_count" identifier -> field_identifier)) ]) != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] = (__bucket_type)p_Var5;" (assignment_expression "this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count] = (__bucket_type)p_Var5" (subscript_expression "this->_M_buckets[(uint)p_Var1 % this->_M_bucket_count]" (field_expression "this->_M_buckets" identifier -> field_identifier) [ (binary_expression "(uint)p_Var1 % this->_M_bucket_count" (cast_expression "(uint)p_Var1" ( (type_descriptor "uint" type_identifier) ) identifier) % (field_expression "this->_M_bucket_count" identifier -> field_identifier)) ]) = (cast_expression "(__bucket_type)p_Var5" ( (type_descriptor "__bucket_type" type_identifier) ) identifier)) ;) (expression_statement "p_Var4 = p_Var4->_M_nxt;" (assignment_expression "p_Var4 = p_Var4->_M_nxt" identifier = (field_expression "p_Var4->_M_nxt" identifier -> field_identifier)) ;) (expression_statement "p_Var5 = p_Var2;" (assignment_expression "p_Var5 = p_Var2" identifier = identifier) ;) (if_statement "if (p_Var4 == (_Hash_node_base *)0x0) {\n          return;\n        }" if (parenthesized_expression "(p_Var4 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var4 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) })) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_00104a00(int *param_1,int param_2)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  if (*param_1 == 0) {\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_2 + 8);\n  if (puVar5 != (undefined4 *)0x0) {\n                    \n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00104a00(int *param_1,int param_2)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  if (*param_1 == 0) {\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_2 + 8);\n  if (puVar5 != (undefined4 *)0x0) {\n                    \n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00104a00(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  if (*param_1 == 0) {\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_2 + 8);\n  if (puVar5 != (undefined4 *)0x0) {\n                    \n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (if_statement "if (*param_1 == 0) {\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }" { (if_statement "if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }" if (parenthesized_expression "(param_1[1] == 1)" ( (binary_expression "param_1[1] == 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }" { (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = (int)(param_1 + 6);" (assignment_expression "*param_1 = (int)(param_1 + 6)" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)(param_1 + 6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) )))) ;) }) (else_clause "else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }" else (compound_statement "{\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }" { (expression_statement "iVar4 = FUN_000b0a20();" (assignment_expression "iVar4 = FUN_000b0a20()" identifier = (call_expression "FUN_000b0a20()" identifier (argument_list "()" ( )))) ;) (expression_statement "*param_1 = iVar4;" (assignment_expression "*param_1 = iVar4" (pointer_expression "*param_1" * identifier) = identifier) ;) }))) })) (expression_statement "puVar5 = *(undefined4 **)(param_2 + 8);" (assignment_expression "puVar5 = *(undefined4 **)(param_2 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 8)" * (cast_expression "(undefined4 **)(param_2 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar5 != (undefined4 *)0x0) {\n                    \n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }" if (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }" { (expression_statement "piVar3 = (int *)FUN_000b1310();" (assignment_expression "piVar3 = (int *)FUN_000b1310()" identifier = (cast_expression "(int *)FUN_000b1310()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000b1310()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar3[5] = puVar5[5];" (assignment_expression "piVar3[5] = puVar5[5]" (subscript_expression "piVar3[5]" identifier [ number_literal ]) = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = (int)piVar3;" (assignment_expression "param_1[2] = (int)piVar3" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;" (assignment_expression "*(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2" (pointer_expression "*(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4)" * (cast_expression "(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4)" ( (binary_expression "*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4" (pointer_expression "*param_1" * identifier) + (binary_expression "((uint)piVar3[5] % (uint)param_1[1]) * 4" (parenthesized_expression "((uint)piVar3[5] % (uint)param_1[1])" ( (binary_expression "(uint)piVar3[5] % (uint)param_1[1]" (cast_expression "(uint)piVar3[5]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[5]" identifier [ number_literal ])) % (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) * number_literal)) )))) = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (for_statement "for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }" for ( (assignment_expression "puVar5 = (undefined4 *)*puVar5" identifier = (cast_expression "(undefined4 *)*puVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ; (comma_expression "piVar6 = piVar3, puVar5 != (undefined4 *)0x0" (assignment_expression "piVar6 = piVar3" identifier = identifier) , (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar5 = (undefined4 *)*puVar5" identifier = (cast_expression "(undefined4 *)*puVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ) (compound_statement "{\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }" { (while_statement "while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }" { (expression_statement "piVar3 = (int *)FUN_000b1310();" (assignment_expression "piVar3 = (int *)FUN_000b1310()" identifier = (cast_expression "(int *)FUN_000b1310()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000b1310()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*piVar6 = (int)piVar3;" (assignment_expression "*piVar6 = (int)piVar3" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar2 = puVar5[5];" (assignment_expression "uVar2 = puVar5[5]" identifier = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (expression_statement "piVar3[5] = uVar2;" (assignment_expression "piVar3[5] = uVar2" (subscript_expression "piVar3[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);" (assignment_expression "piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4)" identifier = (cast_expression "(int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + (uVar2 % (uint)param_1[1]) * 4)" ( (binary_expression "*param_1 + (uVar2 % (uint)param_1[1]) * 4" (pointer_expression "*param_1" * identifier) + (binary_expression "(uVar2 % (uint)param_1[1]) * 4" (parenthesized_expression "(uVar2 % (uint)param_1[1])" ( (binary_expression "uVar2 % (uint)param_1[1]" identifier % (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) * number_literal)) )))) ;) (if_statement "if (*piVar1 != 0) break;" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*piVar1 = (int)piVar6;" (assignment_expression "*piVar1 = (int)piVar6" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar5 = (undefined4 *)*puVar5;" (assignment_expression "puVar5 = (undefined4 *)*puVar5" identifier = (cast_expression "(undefined4 *)*puVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (expression_statement "piVar6 = piVar3;" (assignment_expression "piVar6 = piVar3" identifier = identifier) ;) (if_statement "if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }" if (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" ( (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) * LIT)) )))) = (binary_expression IDENT + LIT)) ;) (for_statement for ( (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ; (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) })) })) })) (return_statement return ;) })))
(function_definition "void FUN_00104a00(int *param_1,int param_2)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  if (*param_1 == 0) {\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_2 + 8);\n  if (puVar5 != (undefined4 *)0x0) {\n                    \n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00104a00(int *param_1,int param_2)" (identifier "FUN_00104a00") (parameter_list "(int *param_1,int param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  int *piVar6;\n  \n  if (*param_1 == 0) {\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }\n  puVar5 = *(undefined4 **)(param_2 + 8);\n  if (puVar5 != (undefined4 *)0x0) {\n                    \n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (if_statement "if (*param_1 == 0) {\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }" (if "if") (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }\n  }" ({ "{") (if_statement "if (param_1[1] == 1) {\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }\n    else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }" (if "if") (parenthesized_expression "(param_1[1] == 1)" (( "(") (binary_expression "param_1[1] == 1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      param_1[6] = 0;\n      *param_1 = (int)(param_1 + 6);\n    }" ({ "{") (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_1 = (int)(param_1 + 6);" (assignment_expression "*param_1 = (int)(param_1 + 6)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)(param_1 + 6)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_1 + 6)" (( "(") (binary_expression "param_1 + 6" (identifier "param_1") (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }" (else "else") (compound_statement "{\n      iVar4 = FUN_000b0a20();\n      *param_1 = iVar4;\n    }" ({ "{") (expression_statement "iVar4 = FUN_000b0a20();" (assignment_expression "iVar4 = FUN_000b0a20()" (identifier "iVar4") (= "=") (call_expression "FUN_000b0a20()" (identifier "FUN_000b0a20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*param_1 = iVar4;" (assignment_expression "*param_1 = iVar4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar4")) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar5 = *(undefined4 **)(param_2 + 8);" (assignment_expression "puVar5 = *(undefined4 **)(param_2 + 8)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(param_2 + 8)" (* "*") (cast_expression "(undefined4 **)(param_2 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (puVar5 != (undefined4 *)0x0) {\n                    \n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 != (undefined4 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    piVar3 = (int *)FUN_000b1310();\n    piVar3[5] = puVar5[5];\n    param_1[2] = (int)piVar3;\n    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;\n    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "piVar3 = (int *)FUN_000b1310();" (assignment_expression "piVar3 = (int *)FUN_000b1310()" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_000b1310()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000b1310()" (identifier "FUN_000b1310") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar3[5] = puVar5[5];" (assignment_expression "piVar3[5] = puVar5[5]" (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "param_1[2] = (int)piVar3;" (assignment_expression "param_1[2] = (int)piVar3" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3"))) (; ";")) (expression_statement "*(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;" (assignment_expression "*(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2" (pointer_expression "*(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4)" (* "*") (cast_expression "(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4)" (( "(") (binary_expression "*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (binary_expression "((uint)piVar3[5] % (uint)param_1[1]) * 4" (parenthesized_expression "((uint)piVar3[5] % (uint)param_1[1])" (( "(") (binary_expression "(uint)piVar3[5] % (uint)param_1[1]" (cast_expression "(uint)piVar3[5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]"))) (% "%") (cast_expression "(uint)param_1[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) () ")")) (* "*") (number_literal "4"))) () ")")))) (= "=") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2"))) (; ";")) (for_statement "for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;\n        puVar5 = (undefined4 *)*puVar5) {\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }" (for "for") (( "(") (assignment_expression "puVar5 = (undefined4 *)*puVar5" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*puVar5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) (; ";") (comma_expression "piVar6 = piVar3, puVar5 != (undefined4 *)0x0" (assignment_expression "piVar6 = piVar3" (identifier "piVar6") (= "=") (identifier "piVar3")) (, ",") (binary_expression "puVar5 != (undefined4 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "puVar5 = (undefined4 *)*puVar5" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*puVar5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) () ")") (compound_statement "{\n      while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }\n    }" ({ "{") (while_statement "while( true ) {\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        piVar3 = (int *)FUN_000b1310();\n        *piVar6 = (int)piVar3;\n        uVar2 = puVar5[5];\n        piVar3[5] = uVar2;\n        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);\n        if (*piVar1 != 0) break;\n        *piVar1 = (int)piVar6;\n        puVar5 = (undefined4 *)*puVar5;\n        piVar6 = piVar3;\n        if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }\n      }" ({ "{") (expression_statement "piVar3 = (int *)FUN_000b1310();" (assignment_expression "piVar3 = (int *)FUN_000b1310()" (identifier "piVar3") (= "=") (cast_expression "(int *)FUN_000b1310()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000b1310()" (identifier "FUN_000b1310") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*piVar6 = (int)piVar3;" (assignment_expression "*piVar6 = (int)piVar3" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3"))) (; ";")) (expression_statement "uVar2 = puVar5[5];" (assignment_expression "uVar2 = puVar5[5]" (identifier "uVar2") (= "=") (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "piVar3[5] = uVar2;" (assignment_expression "piVar3[5] = uVar2" (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);" (assignment_expression "piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4)" (identifier "piVar1") (= "=") (cast_expression "(int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + (uVar2 % (uint)param_1[1]) * 4)" (( "(") (binary_expression "*param_1 + (uVar2 % (uint)param_1[1]) * 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (binary_expression "(uVar2 % (uint)param_1[1]) * 4" (parenthesized_expression "(uVar2 % (uint)param_1[1])" (( "(") (binary_expression "uVar2 % (uint)param_1[1]" (identifier "uVar2") (% "%") (cast_expression "(uint)param_1[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if (*piVar1 != 0) break;" (if "if") (parenthesized_expression "(*piVar1 != 0)" (( "(") (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*piVar1 = (int)piVar6;" (assignment_expression "*piVar1 = (int)piVar6" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "puVar5 = (undefined4 *)*puVar5;" (assignment_expression "puVar5 = (undefined4 *)*puVar5" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*puVar5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")))) (; ";")) (expression_statement "piVar6 = piVar3;" (assignment_expression "piVar6 = piVar3" (identifier "piVar6") (= "=") (identifier "piVar3")) (; ";")) (if_statement "if (puVar5 == (undefined4 *)0x0) {\n          return;\n        }" (if "if") (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined4 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original name: _M_assign<std::_Hashtable<_Key, _Value, _Alloc, _ExtractKey, _Equal, _H1,
   _H2, _Hash, _RehashPolicy, _Traits>::_Hashtable(const std::_Hashtable<_Key, _Value, _Alloc,
   _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits>&) [with _Key =
   gold::Symbol_location; _Value = gold::Symbol_location; _Alloc =
   std::allocator<gold::Symbol_location>; _ExtractKey = std::__detail::_Identity; _Equal =
   std::equal_to<gold::Symbol_location>; _H1 = gold::Symbol_location_hash; _H2 =
   std::__detail::_Mod_range_hashing; _Hash = std::__detail::_Default_ranged_hash; _RehashPolicy =
   std::__detail::_Prime_rehash_policy; _Traits = std::__detail::_Hashtable_traits<true, true,
   true>]::<lambda(const __node_type*)> >
   DWARF original prototype: void
   _M_assign<std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>::_Hashtable(const_std::_Hashtable<_Key,__Value,__Alloc,__ExtractKey,__Equal,__H1,__H2,__Hash,__RehashPolicy,__Traits>&)_[with__Key_=_gold::Symbol_location;__Value_=_gold::Symbol_location;__Alloc_=_std::allocator<gold::Symbol_location>;__ExtractKey_=_std::__detail::_Identity;__Equal_=_std::equal_to<gold::Symbol_location>;__H1_=_gold::Symbol_location_hash;__H2_=_std::__detail::_Mod_range_hashing;__Hash_=_std::__detail::_Default_ranged_hash;__RehashPolicy_=_std::__detail::_Prime_rehash_policy;__Traits_=_std::__detail::_Hashtable_traits<true,_true,_true>]::<lambda(const___node_type*)>_>(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
   * this,
   _Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
   * __ht, <lambda(const___node_type*)> * __node_gen) */

void __thiscall
std::
function_1<var_11::var_2,_gold::var_2,_std::var_1<var_11::var_2>,_std::__detail::_Identity,_std::var_3<var_11::var_2>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_4<true,var_5,var_5>function_2>
::
_M_assign<std::function_1<_Key,type_2,type_3,type_4,type_5,type_6,type_7,type_8,type_9,type_10>::function_1(type_1::function_1<_Key,type_2,type_3,type_4,type_5,type_6,type_7,type_8,type_9,type_10>&)function_2[with__Key___gold::Symbol_location___Value___gold::Symbol_location___Alloc___std::var_1<var_11::var_2>___ExtractKey___std::__detail::_Identity___Equal___std::var_3<var_11::var_2>___H1___gold::Symbol_location_hash___H2___std::__detail::_Mod_range_hashing___Hash___std::__detail::_Default_ranged_hash___RehashPolicy___std::__detail::_Prime_rehash_policy___Traits___std::__detail::var_4<true,var_5,var_5>]::<lambda(const___node_type*)>function_2>
          (function_1<var_11::var_2,_gold::var_2,_std::var_1<var_11::var_2>,_std::__detail::_Identity,_std::var_3<var_11::var_2>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_4<true,var_5,var_5>function_2>
           *this,function_1<var_11::var_2,_gold::var_2,_std::var_1<var_11::var_2>,_std::__detail::_Identity,_std::var_3<var_11::var_2>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_4<true,var_5,var_5>function_2>
                 *__ht,<lambda(const___node_type*)> *__node_gen)

{
  type_13 *p_Var1;
  type_11 *p_Var2;
  type_12 *pp_Var3;
  type_13 *var_10;
  type_11 *p_Var5;
  _Hashtable_alloc<std::var_1<std::__detail::_Hash_node<var_11::var_2,var_5>function_2>function_2>
  *in_stack_ffffffd4;
  var_2 *in_stack_ffffffd8;
  
  if (this->_M_buckets == (type_12 *)0x0) {
    if (this->_M_bucket_count == 1) {
      this->_M_single_bucket = (type_12)0x0;
      this->_M_buckets = &this->_M_single_bucket;
    }
    else {
      pp_Var3 = __detail::
                _Hashtable_alloc<std::var_1<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::var_6<64,var_7>::Plt_stub_key,function_2(anonymous_namespace)::var_6<64,var_7>::var_8>,var_5>function_2>function_2>
                ::var_9
                          ((_Hashtable_alloc<std::var_1<std::__detail::_Hash_node<std::pair<const_(anonymous_namespace)::var_6<64,var_7>::Plt_stub_key,function_2(anonymous_namespace)::var_6<64,var_7>::var_8>,var_5>function_2>function_2>
                            *)in_stack_ffffffd4,(size_t)in_stack_ffffffd8);
      this->_M_buckets = pp_Var3;
    }
  }
  var_10 = (__ht->_M_before_begin)._M_nxt;
  if (var_10 != (type_13 *)0x0) {
                    /* try { // try from 00104a2f to 00104a6f has its CatchHandler @ 00104ac7 */
    p_Var2 = __detail::
             _Hashtable_alloc<std::var_1<std::__detail::_Hash_node<var_11::var_2,var_5>function_2>function_2>
             ::_M_allocate_node<const_gold::var_2&>(in_stack_ffffffd4,in_stack_ffffffd8);
    p_Var2->_M_hash_code = (size_t)var_10[5]._M_nxt;
    (this->_M_before_begin)._M_nxt = (type_13 *)p_Var2;
    this->_M_buckets[p_Var2->_M_hash_code % this->_M_bucket_count] = &this->_M_before_begin;
    for (var_10 = var_10->_M_nxt; p_Var5 = p_Var2, var_10 != (type_13 *)0x0;
        var_10 = var_10->_M_nxt) {
      while( true ) {
        p_Var2 = __detail::
                 _Hashtable_alloc<std::var_1<std::__detail::_Hash_node<var_11::var_2,var_5>function_2>function_2>
                 ::_M_allocate_node<const_gold::var_2&>
                           (in_stack_ffffffd4,in_stack_ffffffd8);
        (p_Var5->super__Hash_node_value_base<var_11::var_2>).super__Hash_node_base._M_nxt =
             (type_13 *)p_Var2;
        p_Var1 = var_10[5]._M_nxt;
        p_Var2->_M_hash_code = (size_t)p_Var1;
        if (this->_M_buckets[(type_14)p_Var1 % this->_M_bucket_count] != (type_12)0x0) break;
        this->_M_buckets[(type_14)p_Var1 % this->_M_bucket_count] = (type_12)p_Var5;
        var_10 = var_10->_M_nxt;
        p_Var5 = p_Var2;
        if (var_10 == (type_13 *)0x0) {
          return;
        }
      }
    }
  }
  return;
}


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

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

void MASKED(int *param_1,int param_2)

{
  int *piVar1;
  uint uVar2;
  int *piVar3;
  int iVar4;
  undefined4 *puVar5;
  int *piVar6;
  
  if (*param_1 == 0) {
    if (param_1[1] == 1) {
      param_1[6] = 0;
      *param_1 = (int)(param_1 + 6);
    }
    else {
      iVar4 = FUN_000b0a20();
      *param_1 = iVar4;
    }
  }
  puVar5 = *(undefined4 **)(param_2 + 8);
  if (puVar5 != (undefined4 *)0x0) {
                    /* try { // try from 00104a2f to 00104a6f has its CatchHandler @ 00104ac7 */
    piVar3 = (int *)FUN_000b1310();
    piVar3[5] = puVar5[5];
    param_1[2] = (int)piVar3;
    *(int **)(*param_1 + ((uint)piVar3[5] % (uint)param_1[1]) * 4) = param_1 + 2;
    for (puVar5 = (undefined4 *)*puVar5; piVar6 = piVar3, puVar5 != (undefined4 *)0x0;
        puVar5 = (undefined4 *)*puVar5) {
      while( true ) {
        piVar3 = (int *)FUN_000b1310();
        *piVar6 = (int)piVar3;
        uVar2 = puVar5[5];
        piVar3[5] = uVar2;
        piVar1 = (int *)(*param_1 + (uVar2 % (uint)param_1[1]) * 4);
        if (*piVar1 != 0) break;
        *piVar1 = (int)piVar6;
        puVar5 = (undefined4 *)*puVar5;
        piVar6 = piVar3;
        if (puVar5 == (undefined4 *)0x0) {
          return;
        }
      }
    }
  }
  return;
}

