
/* DWARF original name: _M_insert<const gold::Symbol_location&,
   std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location, true> >
   > >
   DWARF original prototype:
   pair<std::__detail::_Node_iterator<gold::Symbol_location,_true,_true>,_bool>
   _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
   * this, Symbol_location * __v,
   _AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_> *
   __node_gen, true_type param_5, size_type __n_elt) */

pair<std::__detail::_Node_iterator<gold::Symbol_location,_true,_true>,_bool> __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_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>
          (_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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)

{
  long *plVar1;
  anon_struct_8_0_00000001_for___align aVar2;
  anon_struct_8_0_00000001_for___align aVar3;
  __node_type *__node;
  _Node_iterator_base<gold::Symbol_location,_true> _Var4;
  ulong __bkt;
  ulong __code;
  long *plVar5;
  key_type *__k;
  long *plVar6;
  ulong uVar7;
  undefined8 unaff_R13;
  pair<std::__detail::_Node_iterator<gold::Symbol_location,_true,_true>,_bool> pVar8;
  
  __code = (ulong)*__v ^ (ulong)__v[2] ^ (ulong)*(uint *)(__v + 1);
  __bkt = __code % *(ulong *)(this + 8);
  plVar5 = *(long **)(*(long *)this + __bkt * 8);
  if (plVar5 != (long *)0x0) {
    uVar7 = ((long *)*plVar5)[4];
    plVar6 = (long *)*plVar5;
    while ((((__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))) ||
            (*(uint *)(__v + 1) != *(uint *)(plVar6 + 2))) ||
           (__v[2] != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 3)))) {
      plVar1 = (long *)*plVar6;
      if ((plVar1 == (long *)0x0) ||
         (uVar7 = plVar1[4], plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)
         )) goto LAB_0025c7d8;
    }
    _Var4._M_cur = (__node_type *)*plVar5;
    unaff_R13 = 0;
    if (_Var4._M_cur != (__node_type *)0x0) goto LAB_0025c7c2;
  }
LAB_0025c7d8:
  __node = (__node_type *)operator_new(0x28);
  aVar2 = *__v;
  aVar3 = __v[1];
  unaff_R13 = CONCAT71((int7)((ulong)unaff_R13 >> 8),1);
  *(anon_struct_8_0_00000001_for___align *)
   ((long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 0x10
   ) = __v[2];
  (__node->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =
       (_Hash_node_base *)0x0;
  (__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage.__align = aVar2
  ;
  *(anon_struct_8_0_00000001_for___align *)
   ((long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8) =
       aVar3;
  _Var4._M_cur = (__node_type *)_M_insert_unique_node(this,__bkt,__code,__node,param_4);
LAB_0025c7c2:
  pVar8._8_8_ = unaff_R13;
  pVar8.first.super__Node_iterator_base<gold::Symbol_location,_true>._M_cur =
       (_Node_iterator_base<gold::Symbol_location,_true>)
       (_Node_iterator_base<gold::Symbol_location,_true>)_Var4._M_cur;
  return pVar8;
}



void FUN_0025c730(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)

{
  long *plVar1;
  ulong uVar2;
  undefined8 *puVar3;
  ulong uVar4;
  ulong uVar5;
  long *plVar6;
  long *plVar7;
  ulong uVar8;
  
  uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];
  uVar4 = uVar5 % (ulong)param_1[1];
  plVar6 = *(long **)(*param_1 + uVar4 * 8);
  if (plVar6 != (long *)0x0) {
    uVar8 = ((long *)*plVar6)[4];
    plVar7 = (long *)*plVar6;
    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||
            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {
      plVar1 = (long *)*plVar7;
      if ((plVar1 == (long *)0x0) ||
         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))
      goto LAB_0025c7d8;
    }
    if (*plVar6 != 0) {
      return;
    }
  }
LAB_0025c7d8:
  puVar3 = (undefined8 *)FUN_00275550(0x28);
  uVar8 = *param_2;
  uVar2 = param_2[1];
  puVar3[3] = param_2[2];
  *puVar3 = 0;
  puVar3[1] = uVar8;
  puVar3[2] = uVar2;
  FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);
  return;
}


PUSH R15
XOR EDX,EDX
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x8
MOV R14,qword ptr [RSI]
MOV R8,qword ptr [RSI + 0x10]
MOV EAX,dword ptr [RSI + 0x8]
MOV R10,qword ptr [RDI + 0x8]
MOV RBX,R14
XOR RBX,R8
MOV R15,RAX
XOR RBX,RAX
MOV RAX,RBX
DIV R10
MOV RAX,qword ptr [RDI]
MOV RBP,qword ptr [RAX + RDX*0x8]
MOV R12,RDX
TEST RBP,RBP
JZ 0x0025c7d8
MOV R9,qword ptr [RBP]
MOV R11,qword ptr [R9 + 0x20]
JMP 0x0025c79f
MOV RAX,qword ptr [R9]
TEST RAX,RAX
JZ 0x0025c7d8
MOV R11,qword ptr [RAX + 0x20]
MOV RBP,R9
XOR EDX,EDX
MOV R9,RAX
MOV RAX,R11
DIV R10
CMP R12,RDX
JNZ 0x0025c7d8
CMP RBX,R11
JNZ 0x0025c780
CMP R14,qword ptr [R9 + 0x8]
JNZ 0x0025c780
CMP R15D,dword ptr [R9 + 0x10]
JNZ 0x0025c780
CMP R8,qword ptr [R9 + 0x18]
JNZ 0x0025c780
MOV RAX,qword ptr [RBP]
XOR R13D,R13D
TEST RAX,RAX
JZ 0x0025c7d8
ADD RSP,0x8
MOV RDX,R13
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV R15,RSI
MOV R14,RDI
MOV EDI,0x28
MOV RBP,RCX
CALL 0x00275550
MOV RDX,qword ptr [R15 + 0x10]
MOV R8,RBP
MOV RSI,R12
MOVDQU XMM0,xmmword ptr [R15]
MOV RCX,RAX
MOV RDI,R14
MOV R13B,0x1
MOV qword ptr [RAX + 0x18],RDX
MOV RDX,RBX
MOV qword ptr [RAX],0x0
MOVUPS xmmword ptr [RAX + 0x8],XMM0
CALL 0x0025c640
JMP 0x0025c7c2
(translation_unit "void FUN_0025c730(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  long *plVar1;\n  ulong uVar2;\n  undefined8 *puVar3;\n  ulong uVar4;\n  ulong uVar5;\n  long *plVar6;\n  long *plVar7;\n  ulong uVar8;\n  \n  uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];\n  uVar4 = uVar5 % (ulong)param_1[1];\n  plVar6 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar6 != (long *)0x0) {\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }\nLAB_0025c7d8:\n  puVar3 = (undefined8 *)FUN_00275550(0x28);\n  uVar8 = *param_2;\n  uVar2 = param_2[1];\n  puVar3[3] = param_2[2];\n  *puVar3 = 0;\n  puVar3[1] = uVar8;\n  puVar3[2] = uVar2;\n  FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);\n  return;\n}\n\n" (function_definition "void FUN_0025c730(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  long *plVar1;\n  ulong uVar2;\n  undefined8 *puVar3;\n  ulong uVar4;\n  ulong uVar5;\n  long *plVar6;\n  long *plVar7;\n  ulong uVar8;\n  \n  uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];\n  uVar4 = uVar5 % (ulong)param_1[1];\n  plVar6 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar6 != (long *)0x0) {\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }\nLAB_0025c7d8:\n  puVar3 = (undefined8 *)FUN_00275550(0x28);\n  uVar8 = *param_2;\n  uVar2 = param_2[1];\n  puVar3[3] = param_2[2];\n  *puVar3 = 0;\n  puVar3[1] = uVar8;\n  puVar3[2] = uVar2;\n  FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);\n  return;\n}" primitive_type (function_declarator "FUN_0025c730(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)" identifier (parameter_list "(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  long *plVar1;\n  ulong uVar2;\n  undefined8 *puVar3;\n  ulong uVar4;\n  ulong uVar5;\n  long *plVar6;\n  long *plVar7;\n  ulong uVar8;\n  \n  uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];\n  uVar4 = uVar5 % (ulong)param_1[1];\n  plVar6 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar6 != (long *)0x0) {\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }\nLAB_0025c7d8:\n  puVar3 = (undefined8 *)FUN_00275550(0x28);\n  uVar8 = *param_2;\n  uVar2 = param_2[1];\n  puVar3[3] = param_2[2];\n  *puVar3 = 0;\n  puVar3[1] = uVar8;\n  puVar3[2] = uVar2;\n  FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);\n  return;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "ulong uVar8;" type_identifier identifier ;) (expression_statement "uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];" (assignment_expression "uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1]" identifier = (binary_expression "*param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1]" (binary_expression "*param_2 ^ param_2[2]" (pointer_expression "*param_2" * identifier) ^ (subscript_expression "param_2[2]" identifier [ number_literal ])) ^ (cast_expression "(ulong)(uint)param_2[1]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)param_2[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))))) ;) (expression_statement "uVar4 = uVar5 % (ulong)param_1[1];" (assignment_expression "uVar4 = uVar5 % (ulong)param_1[1]" identifier = (binary_expression "uVar5 % (ulong)param_1[1]" identifier % (cast_expression "(ulong)param_1[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])))) ;) (expression_statement "plVar6 = *(long **)(*param_1 + uVar4 * 8);" (assignment_expression "plVar6 = *(long **)(*param_1 + uVar4 * 8)" identifier = (pointer_expression "*(long **)(*param_1 + uVar4 * 8)" * (cast_expression "(long **)(*param_1 + uVar4 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + uVar4 * 8)" ( (binary_expression "*param_1 + uVar4 * 8" (pointer_expression "*param_1" * identifier) + (binary_expression "uVar4 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar6 != (long *)0x0) {\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }" if (parenthesized_expression "(plVar6 != (long *)0x0)" ( (binary_expression "plVar6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }" { (expression_statement "uVar8 = ((long *)*plVar6)[4];" (assignment_expression "uVar8 = ((long *)*plVar6)[4]" identifier = (subscript_expression "((long *)*plVar6)[4]" (parenthesized_expression "((long *)*plVar6)" ( (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier)) )) [ number_literal ])) ;) (expression_statement "plVar7 = (long *)*plVar6;" (assignment_expression "plVar7 = (long *)*plVar6" identifier = (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) ;) (while_statement "while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }" while (parenthesized_expression "((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3])))" ( (parenthesized_expression "(((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))" ( (binary_expression "((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3])" (parenthesized_expression "((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2)))" ( (binary_expression "(uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))" (parenthesized_expression "(uVar5 != uVar8 || (*param_2 != plVar7[1]))" ( (binary_expression "uVar5 != uVar8 || (*param_2 != plVar7[1])" (binary_expression "uVar5 != uVar8" identifier != identifier) || (parenthesized_expression "(*param_2 != plVar7[1])" ( (binary_expression "*param_2 != plVar7[1]" (pointer_expression "*param_2" * identifier) != (subscript_expression "plVar7[1]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "((uint)param_2[1] != *(uint *)(plVar7 + 2))" ( (binary_expression "(uint)param_2[1] != *(uint *)(plVar7 + 2)" (cast_expression "(uint)param_2[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) != (pointer_expression "*(uint *)(plVar7 + 2)" * (cast_expression "(uint *)(plVar7 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 2)" ( (binary_expression "plVar7 + 2" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(param_2[2] != plVar7[3])" ( (binary_expression "param_2[2] != plVar7[3]" (subscript_expression "param_2[2]" identifier [ number_literal ]) != (subscript_expression "plVar7[3]" identifier [ number_literal ])) ))) )) )) (compound_statement "{\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }" { (expression_statement "plVar1 = (long *)*plVar7;" (assignment_expression "plVar1 = (long *)*plVar7" identifier = (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier))) ;) (if_statement "if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;" if (parenthesized_expression "((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))" ( (binary_expression "(plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1])" (parenthesized_expression "(plVar1 == (long *)0x0)" ( (binary_expression "plVar1 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1])" ( (comma_expression "uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]" (assignment_expression "uVar8 = plVar1[4]" identifier = (subscript_expression "plVar1[4]" identifier [ number_literal ])) , (comma_expression "plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]" (assignment_expression "plVar6 = plVar7" identifier = identifier) , (comma_expression "plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]" (assignment_expression "plVar7 = plVar1" identifier = identifier) , (binary_expression "uVar4 != uVar8 % (ulong)param_1[1]" identifier != (binary_expression "uVar8 % (ulong)param_1[1]" identifier % (cast_expression "(ulong)param_1[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))))))) ))) )) (goto_statement "goto LAB_0025c7d8;" goto statement_identifier ;)) })) (if_statement "if (*plVar6 != 0) {\n      return;\n    }" if (parenthesized_expression "(*plVar6 != 0)" ( (binary_expression "*plVar6 != 0" (pointer_expression "*plVar6" * identifier) != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (labeled_statement "LAB_0025c7d8:\n  puVar3 = (undefined8 *)FUN_00275550(0x28);" statement_identifier : (expression_statement "puVar3 = (undefined8 *)FUN_00275550(0x28);" (assignment_expression "puVar3 = (undefined8 *)FUN_00275550(0x28)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;)) (expression_statement "uVar8 = *param_2;" (assignment_expression "uVar8 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar2 = param_2[1];" (assignment_expression "uVar2 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar3[3] = param_2[2];" (assignment_expression "puVar3[3] = param_2[2]" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "puVar3[1] = uVar8;" (assignment_expression "puVar3[1] = uVar8" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[2] = uVar2;" (assignment_expression "puVar3[2] = uVar2" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);" (call_expression "FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4)" identifier (argument_list "(param_1,uVar4,uVar5,puVar3,param_4)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(ERROR "/* DWARF original name: _M_insert<const gold::Symbol_location&,\n   std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location, true> >\n   > >\n   DWARF original prototype:\n   pair<std::__detail::_Node_iterator<gold::Symbol_location,_true,_true>,_bool>\n   _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n   * this, Symbol_location * __v,\n   _AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_> *\n   __node_gen, true_type param_5, size_type __n_elt) */\n\npair<std::__detail::_Node_iterator<gold::Symbol_location,_true,_true>,_bool> __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_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)\n\n{\n  long *plVar1;\n  anon_struct_8_0_00000001_for___align aVar2;\n  anon_struct_8_0_00000001_for___align aVar3;\n  __node_type *__node;\n  _Node_iterator_base<gold::Symbol_location,_true> _Var4;\n  ulong __bkt;\n  ulong __code;\n  long *plVar5;\n  key_type *__k;\n  long *plVar6;\n  ulong uVar7;\n  undefined8 unaff_R13;\n  pair<std::__detail::_Node_iterator<gold::Symbol_location,_true,_true>,_bool> pVar8;\n  \n  __code = (ulong)*__v ^ (ulong)__v[2] ^ (ulong)*(uint *)(__v + 1);\n  __bkt = __code % *(ulong *)(this + 8);\n  plVar5 = *(long **)(*(long *)this + __bkt * 8);\n  if (plVar5 != (long *)0x0) {\n    uVar7 = ((long *)*plVar5)[4];\n    plVar6 = (long *)*plVar5;\n    while ((((__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))) ||\n            (*(uint *)(__v + 1) != *(uint *)(plVar6 + 2))) ||\n           (__v[2] != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 3)))) {\n      plVar1 = (long *)*plVar6;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar7 = plVar1[4], plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)\n         )) goto LAB_0025c7d8;\n    }\n    _Var4._M_cur = (__node_type *)*plVar5;\n    unaff_R13 = 0;\n    if (_Var4._M_cur != (__node_type *)0x0) goto LAB_0025c7c2;\n  }\nLAB_0025c7d8:\n  __node = (__node_type *)operator_new(0x28);\n  aVar2 = *__v;\n  aVar3 = __v[1];\n  unaff_R13 = CONCAT71((int7)((ulong)unaff_R13 >> 8),1);\n  *(anon_struct_8_0_00000001_for___align *)\n   ((long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 0x10\n   ) = __v[2];\n  (__node->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =\n       (_Hash_node_base *)0x0;\n  (__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage.__align = aVar2\n  ;\n  *(anon_struct_8_0_00000001_for___align *)\n   ((long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8) =\n       aVar3;\n  _Var4._M_cur = (__node_type *)_M_insert_unique_node(this,__bkt,__code,__node,param_4);\nLAB_0025c7c2:\n  pVar8._8_8_ = unaff_R13;\n  pVar8.first.super__Node_iterator_base<gold::Symbol_location,_true>._M_cur =\n       (_Node_iterator_base<gold::Symbol_location,_true>)\n       (_Node_iterator_base<gold::Symbol_location,_true>)_Var4._M_cur;\n  return pVar8;\n}\n\n" comment (ERROR "pair<std::" (binary_expression "pair<std" identifier < identifier) : :) (labeled_statement "__detail::_Node_iterator<gold::Symbol_location,_true,_true>,_bool> __thiscall" statement_identifier (ERROR "::_Node_iterator<gold:" : : (binary_expression "_Node_iterator<gold" identifier < identifier) :) : (expression_statement "Symbol_location,_true,_true>,_bool> __thiscall" (comma_expression "Symbol_location,_true,_true>,_bool> __thiscall" identifier , (comma_expression "_true,_true>,_bool> __thiscall" identifier , (binary_expression "_true>,_bool> __thiscall" (binary_expression "_true>,_bool" identifier > (ERROR "," ,) identifier) > identifier))) ;)) (labeled_statement "std::\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_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)" statement_identifier (ERROR "::\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:" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold" identifier (ERROR "::_Identity,_std::equal_to<gold::Symbol_location>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : identifier >) , identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<const_gold::Symbol_location&,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<const_gold::Symbol_location&,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<const_gold::Symbol_location&" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<const_gold" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n::\n_M_insert<const_gold" identifier , (binary_expression "_true>_>\n::\n_M_insert<const_gold" (binary_expression "_true>_>\n::\n_M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : identifier &) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (labeled_statement "__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>\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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)" statement_identifier (ERROR "::_Hash_node<gold:" : : (binary_expression "_Hash_node<gold" identifier < identifier) :) : (expression_statement "Symbol_location,_true>_>_>_>\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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)" (comma_expression "Symbol_location,_true>_>_>_>\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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)" identifier , (binary_expression "_true>_>_>_>\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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "(_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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)" ( (ERROR "_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::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n           *this,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n           *this,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type" identifier , (comma_expression "_true>_>\n           *this,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type" (binary_expression "_true>_>\n           *this" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*this" * identifier)) , (comma_expression "anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type" (binary_expression "anon_struct_8_0_00000001_for___align *__v" identifier * identifier) , (comma_expression "undefined8 param_3,size_type" identifier (ERROR "param_3" identifier) , identifier))))) (ERROR "param_4" identifier) )))) ;))))))) { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "anon_struct_8_0_00000001_for___align aVar2;" type_identifier identifier ;) (declaration "anon_struct_8_0_00000001_for___align aVar3;" type_identifier identifier ;) (declaration "__node_type *__node;" type_identifier (pointer_declarator "*__node" * identifier) ;) (expression_statement "_Node_iterator_base<gold::Symbol_location,_true> _Var4;" (comma_expression "_Node_iterator_base<gold::Symbol_location,_true> _Var4" (binary_expression "_Node_iterator_base<gold" identifier < identifier) (ERROR "::Symbol_location" : : identifier) , (binary_expression "_true> _Var4" identifier > identifier)) ;) (declaration "ulong __bkt;" type_identifier identifier ;) (declaration "ulong __code;" type_identifier identifier ;) (declaration "long *plVar5;" (sized_type_specifier "long" long) (pointer_declarator "*plVar5" * identifier) ;) (declaration "key_type *__k;" type_identifier (pointer_declarator "*__k" * identifier) ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "undefined8 unaff_R13;" type_identifier identifier ;) (ERROR "pair<std::" (binary_expression "pair<std" identifier < identifier) : :) (labeled_statement "__detail::_Node_iterator<gold::Symbol_location,_true,_true>,_bool> pVar8;" statement_identifier (ERROR "::_Node_iterator<gold:" : : (binary_expression "_Node_iterator<gold" identifier < identifier) :) : (expression_statement "Symbol_location,_true,_true>,_bool> pVar8;" (comma_expression "Symbol_location,_true,_true>,_bool> pVar8" identifier , (comma_expression "_true,_true>,_bool> pVar8" identifier , (binary_expression "_true>,_bool> pVar8" (binary_expression "_true>,_bool" identifier > (ERROR "," ,) identifier) > identifier))) ;)) (expression_statement "__code = (ulong)*__v ^ (ulong)__v[2] ^ (ulong)*(uint *)(__v + 1);" (assignment_expression "__code = (ulong)*__v ^ (ulong)__v[2] ^ (ulong)*(uint *)(__v + 1)" identifier = (binary_expression "(ulong)*__v ^ (ulong)__v[2] ^ (ulong)*(uint *)(__v + 1)" (binary_expression "(ulong)*__v ^ (ulong)__v[2]" (binary_expression "(ulong)*__v" (parenthesized_expression "(ulong)" ( identifier )) * identifier) ^ (cast_expression "(ulong)__v[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "__v[2]" identifier [ number_literal ]))) ^ (binary_expression "(ulong)*(uint *)(__v + 1)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(__v + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__v + 1)" ( (binary_expression "__v + 1" identifier + number_literal) )))))) ;) (expression_statement "__bkt = __code % *(ulong *)(this + 8);" (assignment_expression "__bkt = __code % *(ulong *)(this + 8)" identifier = (binary_expression "__code % *(ulong *)(this + 8)" identifier % (pointer_expression "*(ulong *)(this + 8)" * (cast_expression "(ulong *)(this + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))))) ;) (expression_statement "plVar5 = *(long **)(*(long *)this + __bkt * 8);" (assignment_expression "plVar5 = *(long **)(*(long *)this + __bkt * 8)" identifier = (pointer_expression "*(long **)(*(long *)this + __bkt * 8)" * (cast_expression "(long **)(*(long *)this + __bkt * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)this + __bkt * 8)" ( (binary_expression "*(long *)this + __bkt * 8" (pointer_expression "*(long *)this" * (cast_expression "(long *)this" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "__bkt * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar5 != (long *)0x0) {\n    uVar7 = ((long *)*plVar5)[4];\n    plVar6 = (long *)*plVar5;\n    while ((((__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))) ||\n            (*(uint *)(__v + 1) != *(uint *)(plVar6 + 2))) ||\n           (__v[2] != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 3)))) {\n      plVar1 = (long *)*plVar6;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar7 = plVar1[4], plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)\n         )) goto LAB_0025c7d8;\n    }\n    _Var4._M_cur = (__node_type *)*plVar5;\n    unaff_R13 = 0;\n    if (_Var4._M_cur != (__node_type *)0x0) goto LAB_0025c7c2;\n  }" if (parenthesized_expression "(plVar5 != (long *)0x0)" ( (binary_expression "plVar5 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = ((long *)*plVar5)[4];\n    plVar6 = (long *)*plVar5;\n    while ((((__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))) ||\n            (*(uint *)(__v + 1) != *(uint *)(plVar6 + 2))) ||\n           (__v[2] != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 3)))) {\n      plVar1 = (long *)*plVar6;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar7 = plVar1[4], plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)\n         )) goto LAB_0025c7d8;\n    }\n    _Var4._M_cur = (__node_type *)*plVar5;\n    unaff_R13 = 0;\n    if (_Var4._M_cur != (__node_type *)0x0) goto LAB_0025c7c2;\n  }" { (expression_statement "uVar7 = ((long *)*plVar5)[4];" (assignment_expression "uVar7 = ((long *)*plVar5)[4]" identifier = (subscript_expression "((long *)*plVar5)[4]" (parenthesized_expression "((long *)*plVar5)" ( (cast_expression "(long *)*plVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar5" * identifier)) )) [ number_literal ])) ;) (expression_statement "plVar6 = (long *)*plVar5;" (assignment_expression "plVar6 = (long *)*plVar5" identifier = (cast_expression "(long *)*plVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar5" * identifier))) ;) (while_statement "while ((((__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))) ||\n            (*(uint *)(__v + 1) != *(uint *)(plVar6 + 2))) ||\n           (__v[2] != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 3)))) {\n      plVar1 = (long *)*plVar6;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar7 = plVar1[4], plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)\n         )) goto LAB_0025c7d8;\n    }" while (parenthesized_expression "((((__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))) ||\n            (*(uint *)(__v + 1) != *(uint *)(plVar6 + 2))) ||\n           (__v[2] != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 3))))" ( (parenthesized_expression "(((__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))) ||\n            (*(uint *)(__v + 1) != *(uint *)(plVar6 + 2))) ||\n           (__v[2] != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 3)))" ( (binary_expression "((__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))) ||\n            (*(uint *)(__v + 1) != *(uint *)(plVar6 + 2))) ||\n           (__v[2] != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 3))" (parenthesized_expression "((__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))) ||\n            (*(uint *)(__v + 1) != *(uint *)(plVar6 + 2)))" ( (binary_expression "(__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))) ||\n            (*(uint *)(__v + 1) != *(uint *)(plVar6 + 2))" (parenthesized_expression "(__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1)))" ( (binary_expression "__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))" (binary_expression "__code != uVar7" identifier != identifier) || (parenthesized_expression "(*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))" ( (binary_expression "*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1)" (pointer_expression "*__v" * identifier) != (pointer_expression "*(anon_struct_8_0_00000001_for___align *)(plVar6 + 1)" * (cast_expression "(anon_struct_8_0_00000001_for___align *)(plVar6 + 1)" ( (type_descriptor "anon_struct_8_0_00000001_for___align *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 1)" ( (binary_expression "plVar6 + 1" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(*(uint *)(__v + 1) != *(uint *)(plVar6 + 2))" ( (binary_expression "*(uint *)(__v + 1) != *(uint *)(plVar6 + 2)" (pointer_expression "*(uint *)(__v + 1)" * (cast_expression "(uint *)(__v + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__v + 1)" ( (binary_expression "__v + 1" identifier + number_literal) )))) != (pointer_expression "*(uint *)(plVar6 + 2)" * (cast_expression "(uint *)(plVar6 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 2)" ( (binary_expression "plVar6 + 2" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(__v[2] != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 3))" ( (binary_expression "__v[2] != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 3)" (subscript_expression "__v[2]" identifier [ number_literal ]) != (pointer_expression "*(anon_struct_8_0_00000001_for___align *)(plVar6 + 3)" * (cast_expression "(anon_struct_8_0_00000001_for___align *)(plVar6 + 3)" ( (type_descriptor "anon_struct_8_0_00000001_for___align *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 3)" ( (binary_expression "plVar6 + 3" identifier + number_literal) ))))) ))) )) )) (compound_statement "{\n      plVar1 = (long *)*plVar6;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar7 = plVar1[4], plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)\n         )) goto LAB_0025c7d8;\n    }" { (expression_statement "plVar1 = (long *)*plVar6;" (assignment_expression "plVar1 = (long *)*plVar6" identifier = (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) ;) (if_statement "if ((plVar1 == (long *)0x0) ||\n         (uVar7 = plVar1[4], plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)\n         )) goto LAB_0025c7d8;" if (parenthesized_expression "((plVar1 == (long *)0x0) ||\n         (uVar7 = plVar1[4], plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)\n         ))" ( (binary_expression "(plVar1 == (long *)0x0) ||\n         (uVar7 = plVar1[4], plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)\n         )" (parenthesized_expression "(plVar1 == (long *)0x0)" ( (binary_expression "plVar1 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar7 = plVar1[4], plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)\n         )" ( (comma_expression "uVar7 = plVar1[4], plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)" (assignment_expression "uVar7 = plVar1[4]" identifier = (subscript_expression "plVar1[4]" identifier [ number_literal ])) , (comma_expression "plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)" (assignment_expression "plVar5 = plVar6" identifier = identifier) , (comma_expression "plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)" (assignment_expression "plVar6 = plVar1" identifier = identifier) , (binary_expression "__bkt != uVar7 % *(ulong *)(this + 8)" identifier != (binary_expression "uVar7 % *(ulong *)(this + 8)" identifier % (pointer_expression "*(ulong *)(this + 8)" * (cast_expression "(ulong *)(this + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))))))) ))) )) (goto_statement "goto LAB_0025c7d8;" goto statement_identifier ;)) })) (expression_statement "_Var4._M_cur = (__node_type *)*plVar5;" (assignment_expression "_Var4._M_cur = (__node_type *)*plVar5" (field_expression "_Var4._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)*plVar5" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar5" * identifier))) ;) (expression_statement "unaff_R13 = 0;" (assignment_expression "unaff_R13 = 0" identifier = number_literal) ;) (if_statement "if (_Var4._M_cur != (__node_type *)0x0) goto LAB_0025c7c2;" if (parenthesized_expression "(_Var4._M_cur != (__node_type *)0x0)" ( (binary_expression "_Var4._M_cur != (__node_type *)0x0" (field_expression "_Var4._M_cur" identifier . field_identifier) != (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025c7c2;" goto statement_identifier ;)) })) (labeled_statement "LAB_0025c7d8:\n  __node = (__node_type *)operator_new(0x28);" statement_identifier : (expression_statement "__node = (__node_type *)operator_new(0x28);" (assignment_expression "__node = (__node_type *)operator_new(0x28)" identifier = (cast_expression "(__node_type *)operator_new(0x28)" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;)) (expression_statement "aVar2 = *__v;" (assignment_expression "aVar2 = *__v" identifier = (pointer_expression "*__v" * identifier)) ;) (expression_statement "aVar3 = __v[1];" (assignment_expression "aVar3 = __v[1]" identifier = (subscript_expression "__v[1]" identifier [ number_literal ])) ;) (expression_statement "unaff_R13 = CONCAT71((int7)((ulong)unaff_R13 >> 8),1);" (assignment_expression "unaff_R13 = CONCAT71((int7)((ulong)unaff_R13 >> 8),1)" identifier = (call_expression "CONCAT71((int7)((ulong)unaff_R13 >> 8),1)" identifier (argument_list "((int7)((ulong)unaff_R13 >> 8),1)" ( (call_expression "(int7)((ulong)unaff_R13 >> 8)" (parenthesized_expression "(int7)" ( identifier )) (argument_list "((ulong)unaff_R13 >> 8)" ( (binary_expression "(ulong)unaff_R13 >> 8" (cast_expression "(ulong)unaff_R13" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) , number_literal )))) ;) * ( (type_descriptor "anon_struct_8_0_00000001_for___align *" type_identifier (abstract_pointer_declarator "*" *)) ) ( (cast_expression "(long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 0x10\n   ) = __v[2]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (assignment_expression "&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 0x10\n   ) = __v[2]" (pointer_expression "&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 0x10\n   )" & (parenthesized_expression "(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 0x10\n   )" ( (binary_expression "__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 0x10" (field_expression "__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage" (field_expression "__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage" (binary_expression "__node->super__Hash_node_value_base<gold" (field_expression "__node->super__Hash_node_value_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol_location>)" : : identifier > )) . field_identifier) . field_identifier) + number_literal) ))) = (subscript_expression "__v[2]" identifier [ number_literal ]))) (ERROR ";" ;) ( (assignment_expression "__node->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =\n       (_Hash_node_base *)0x0" (field_expression "__node->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt" (field_expression "__node->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base" (binary_expression "__node->super__Hash_node_value_base<gold" (field_expression "__node->super__Hash_node_value_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol_location>)" : : identifier > )) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) (ERROR ";" ;) ( (assignment_expression "__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage.__align = aVar2" (field_expression "__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage.__align" (field_expression "__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage" (field_expression "__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage" (binary_expression "__node->super__Hash_node_value_base<gold" (field_expression "__node->super__Hash_node_value_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol_location>)" : : identifier > )) . field_identifier) . field_identifier) . field_identifier) = identifier) (ERROR ";" ;) * ( (type_descriptor "anon_struct_8_0_00000001_for___align *" type_identifier (abstract_pointer_declarator "*" *)) ) ( (binary_expression "(long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8) =\n       aVar3;\n  _Var4._M_cur = (__node_type *)_M_insert_unique_node(this,__bkt,__code,__node,param_4);\nLAB_0025c7c2:\n  pVar8._8_8_ = unaff_R13;\n  pVar8.first.super__Node_iterator_base<gold" (field_expression "(long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8) =\n       aVar3;\n  _Var4._M_cur = (__node_type *)_M_insert_unique_node(this,__bkt,__code,__node,param_4);\nLAB_0025c7c2:\n  pVar8._8_8_ = unaff_R13;\n  pVar8.first.super__Node_iterator_base" (field_expression "(long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8) =\n       aVar3;\n  _Var4._M_cur = (__node_type *)_M_insert_unique_node(this,__bkt,__code,__node,param_4);\nLAB_0025c7c2:\n  pVar8._8_8_ = unaff_R13;\n  pVar8.first" (assignment_expression "(long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8) =\n       aVar3;\n  _Var4._M_cur = (__node_type *)_M_insert_unique_node(this,__bkt,__code,__node,param_4);\nLAB_0025c7c2:\n  pVar8._8_8_ = unaff_R13" (field_expression "(long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8) =\n       aVar3;\n  _Var4._M_cur = (__node_type *)_M_insert_unique_node(this,__bkt,__code,__node,param_4);\nLAB_0025c7c2:\n  pVar8._8_8_" (assignment_expression "(long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8) =\n       aVar3;\n  _Var4._M_cur = (__node_type *)_M_insert_unique_node(this,__bkt,__code,__node,param_4)" (field_expression "(long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8) =\n       aVar3;\n  _Var4._M_cur" (cast_expression "(long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8) =\n       aVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (assignment_expression "&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8) =\n       aVar3" (pointer_expression "&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8)" & (parenthesized_expression "(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8)" ( (binary_expression "__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8" (field_expression "__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage" (field_expression "__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage" (binary_expression "__node->super__Hash_node_value_base<gold" (field_expression "__node->super__Hash_node_value_base" identifier -> field_identifier) < identifier) (ERROR "::Symbol_location>)" : : identifier > )) . field_identifier) . field_identifier) + number_literal) ))) = identifier)) (ERROR ";\n  _Var4" ; identifier) . field_identifier) = (cast_expression "(__node_type *)_M_insert_unique_node(this,__bkt,__code,__node,param_4)" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "_M_insert_unique_node(this,__bkt,__code,__node,param_4)" identifier (argument_list "(this,__bkt,__code,__node,param_4)" ( identifier , identifier , identifier , identifier , identifier ))))) (ERROR ";\nLAB_0025c7c2:\n  pVar8" ; identifier : identifier) . field_identifier) = identifier) (ERROR ";\n  pVar8" ; identifier) . field_identifier) . field_identifier) < identifier) (ERROR "::Symbol_location" : : identifier) , (field_expression "_true>._M_cur" identifier (ERROR ">" >) . field_identifier) = (parenthesized_expression "(_Node_iterator_base<gold::Symbol_location,_true>)" ( (comma_expression "_Node_iterator_base<gold::Symbol_location,_true" (binary_expression "_Node_iterator_base<gold" identifier < identifier) (ERROR "::Symbol_location" : : identifier) , identifier) (ERROR ">" >) )) ( (binary_expression "_Node_iterator_base<gold" identifier < identifier) (ERROR "::Symbol_location" : : identifier) , (binary_expression "_true>)_Var4._M_cur" identifier > (ERROR ")" )) (field_expression "_Var4._M_cur" identifier . field_identifier)) ; return identifier ; })
(translation_unit "void FUN_0025c730(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  long *plVar1;\n  ulong uVar2;\n  undefined8 *puVar3;\n  ulong uVar4;\n  ulong uVar5;\n  long *plVar6;\n  long *plVar7;\n  ulong uVar8;\n  \n  uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];\n  uVar4 = uVar5 % (ulong)param_1[1];\n  plVar6 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar6 != (long *)0x0) {\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }\nLAB_0025c7d8:\n  puVar3 = (undefined8 *)FUN_00275550(0x28);\n  uVar8 = *param_2;\n  uVar2 = param_2[1];\n  puVar3[3] = param_2[2];\n  *puVar3 = 0;\n  puVar3[1] = uVar8;\n  puVar3[2] = uVar2;\n  FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);\n  return;\n}\n\n" (function_definition "void FUN_0025c730(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  long *plVar1;\n  ulong uVar2;\n  undefined8 *puVar3;\n  ulong uVar4;\n  ulong uVar5;\n  long *plVar6;\n  long *plVar7;\n  ulong uVar8;\n  \n  uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];\n  uVar4 = uVar5 % (ulong)param_1[1];\n  plVar6 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar6 != (long *)0x0) {\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }\nLAB_0025c7d8:\n  puVar3 = (undefined8 *)FUN_00275550(0x28);\n  uVar8 = *param_2;\n  uVar2 = param_2[1];\n  puVar3[3] = param_2[2];\n  *puVar3 = 0;\n  puVar3[1] = uVar8;\n  puVar3[2] = uVar2;\n  FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);\n  return;\n}" primitive_type (function_declarator "FUN_0025c730(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)" identifier (parameter_list "(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  long *plVar1;\n  ulong uVar2;\n  undefined8 *puVar3;\n  ulong uVar4;\n  ulong uVar5;\n  long *plVar6;\n  long *plVar7;\n  ulong uVar8;\n  \n  uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];\n  uVar4 = uVar5 % (ulong)param_1[1];\n  plVar6 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar6 != (long *)0x0) {\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }\nLAB_0025c7d8:\n  puVar3 = (undefined8 *)FUN_00275550(0x28);\n  uVar8 = *param_2;\n  uVar2 = param_2[1];\n  puVar3[3] = param_2[2];\n  *puVar3 = 0;\n  puVar3[1] = uVar8;\n  puVar3[2] = uVar2;\n  FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);\n  return;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "ulong uVar8;" type_identifier identifier ;) (expression_statement "uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];" (assignment_expression "uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1]" identifier = (binary_expression "*param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1]" (binary_expression "*param_2 ^ param_2[2]" (pointer_expression "*param_2" * identifier) ^ (subscript_expression "param_2[2]" identifier [ number_literal ])) ^ (cast_expression "(ulong)(uint)param_2[1]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)param_2[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))))) ;) (expression_statement "uVar4 = uVar5 % (ulong)param_1[1];" (assignment_expression "uVar4 = uVar5 % (ulong)param_1[1]" identifier = (binary_expression "uVar5 % (ulong)param_1[1]" identifier % (cast_expression "(ulong)param_1[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])))) ;) (expression_statement "plVar6 = *(long **)(*param_1 + uVar4 * 8);" (assignment_expression "plVar6 = *(long **)(*param_1 + uVar4 * 8)" identifier = (pointer_expression "*(long **)(*param_1 + uVar4 * 8)" * (cast_expression "(long **)(*param_1 + uVar4 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + uVar4 * 8)" ( (binary_expression "*param_1 + uVar4 * 8" (pointer_expression "*param_1" * identifier) + (binary_expression "uVar4 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar6 != (long *)0x0) {\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }" if (parenthesized_expression "(plVar6 != (long *)0x0)" ( (binary_expression "plVar6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }" { (expression_statement "uVar8 = ((long *)*plVar6)[4];" (assignment_expression "uVar8 = ((long *)*plVar6)[4]" identifier = (subscript_expression "((long *)*plVar6)[4]" (parenthesized_expression "((long *)*plVar6)" ( (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier)) )) [ number_literal ])) ;) (expression_statement "plVar7 = (long *)*plVar6;" (assignment_expression "plVar7 = (long *)*plVar6" identifier = (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) ;) (while_statement "while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }" while (parenthesized_expression "((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3])))" ( (parenthesized_expression "(((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))" ( (binary_expression "((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3])" (parenthesized_expression "((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2)))" ( (binary_expression "(uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))" (parenthesized_expression "(uVar5 != uVar8 || (*param_2 != plVar7[1]))" ( (binary_expression "uVar5 != uVar8 || (*param_2 != plVar7[1])" (binary_expression "uVar5 != uVar8" identifier != identifier) || (parenthesized_expression "(*param_2 != plVar7[1])" ( (binary_expression "*param_2 != plVar7[1]" (pointer_expression "*param_2" * identifier) != (subscript_expression "plVar7[1]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "((uint)param_2[1] != *(uint *)(plVar7 + 2))" ( (binary_expression "(uint)param_2[1] != *(uint *)(plVar7 + 2)" (cast_expression "(uint)param_2[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) != (pointer_expression "*(uint *)(plVar7 + 2)" * (cast_expression "(uint *)(plVar7 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar7 + 2)" ( (binary_expression "plVar7 + 2" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(param_2[2] != plVar7[3])" ( (binary_expression "param_2[2] != plVar7[3]" (subscript_expression "param_2[2]" identifier [ number_literal ]) != (subscript_expression "plVar7[3]" identifier [ number_literal ])) ))) )) )) (compound_statement "{\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }" { (expression_statement "plVar1 = (long *)*plVar7;" (assignment_expression "plVar1 = (long *)*plVar7" identifier = (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier))) ;) (if_statement "if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;" if (parenthesized_expression "((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))" ( (binary_expression "(plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1])" (parenthesized_expression "(plVar1 == (long *)0x0)" ( (binary_expression "plVar1 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1])" ( (comma_expression "uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]" (assignment_expression "uVar8 = plVar1[4]" identifier = (subscript_expression "plVar1[4]" identifier [ number_literal ])) , (comma_expression "plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]" (assignment_expression "plVar6 = plVar7" identifier = identifier) , (comma_expression "plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]" (assignment_expression "plVar7 = plVar1" identifier = identifier) , (binary_expression "uVar4 != uVar8 % (ulong)param_1[1]" identifier != (binary_expression "uVar8 % (ulong)param_1[1]" identifier % (cast_expression "(ulong)param_1[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))))))) ))) )) (goto_statement "goto LAB_0025c7d8;" goto statement_identifier ;)) })) (if_statement "if (*plVar6 != 0) {\n      return;\n    }" if (parenthesized_expression "(*plVar6 != 0)" ( (binary_expression "*plVar6 != 0" (pointer_expression "*plVar6" * identifier) != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (labeled_statement "LAB_0025c7d8:\n  puVar3 = (undefined8 *)FUN_00275550(0x28);" statement_identifier : (expression_statement "puVar3 = (undefined8 *)FUN_00275550(0x28);" (assignment_expression "puVar3 = (undefined8 *)FUN_00275550(0x28)" identifier = (cast_expression "(undefined8 *)FUN_00275550(0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00275550(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;)) (expression_statement "uVar8 = *param_2;" (assignment_expression "uVar8 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar2 = param_2[1];" (assignment_expression "uVar2 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar3[3] = param_2[2];" (assignment_expression "puVar3[3] = param_2[2]" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "puVar3[1] = uVar8;" (assignment_expression "puVar3[1] = uVar8" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[2] = uVar2;" (assignment_expression "puVar3[2] = uVar2" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);" (call_expression "FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4)" identifier (argument_list "(param_1,uVar4,uVar5,puVar3,param_4)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) ^ (subscript_expression IDENT [ LIT ])) ^ (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) ))) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (binary_expression IDENT % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))))) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (return_statement return ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0025c730(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  long *plVar1;\n  ulong uVar2;\n  undefined8 *puVar3;\n  ulong uVar4;\n  ulong uVar5;\n  long *plVar6;\n  long *plVar7;\n  ulong uVar8;\n  \n  uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];\n  uVar4 = uVar5 % (ulong)param_1[1];\n  plVar6 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar6 != (long *)0x0) {\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }\nLAB_0025c7d8:\n  puVar3 = (undefined8 *)FUN_00275550(0x28);\n  uVar8 = *param_2;\n  uVar2 = param_2[1];\n  puVar3[3] = param_2[2];\n  *puVar3 = 0;\n  puVar3[1] = uVar8;\n  puVar3[2] = uVar2;\n  FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0025c730(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)" (identifier "FUN_0025c730") (parameter_list "(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "ulong *param_2" (type_identifier "ulong") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) () ")"))) (compound_statement "{\n  long *plVar1;\n  ulong uVar2;\n  undefined8 *puVar3;\n  ulong uVar4;\n  ulong uVar5;\n  long *plVar6;\n  long *plVar7;\n  ulong uVar8;\n  \n  uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];\n  uVar4 = uVar5 % (ulong)param_1[1];\n  plVar6 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar6 != (long *)0x0) {\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }\nLAB_0025c7d8:\n  puVar3 = (undefined8 *)FUN_00275550(0x28);\n  uVar8 = *param_2;\n  uVar2 = param_2[1];\n  puVar3[3] = param_2[2];\n  *puVar3 = 0;\n  puVar3[1] = uVar8;\n  puVar3[2] = uVar2;\n  FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);\n  return;\n}" ({ "{") (declaration "long *plVar1;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar1" (* "*") (identifier "plVar1")) (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "long *plVar6;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar6" (* "*") (identifier "plVar6")) (; ";")) (declaration "long *plVar7;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar7" (* "*") (identifier "plVar7")) (; ";")) (declaration "ulong uVar8;" (type_identifier "ulong") (identifier "uVar8") (; ";")) (expression_statement "uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];" (assignment_expression "uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1]" (identifier "uVar5") (= "=") (binary_expression "*param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1]" (binary_expression "*param_2 ^ param_2[2]" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (^ "^") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (^ "^") (cast_expression "(ulong)(uint)param_2[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(uint)param_2[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))))) (; ";")) (expression_statement "uVar4 = uVar5 % (ulong)param_1[1];" (assignment_expression "uVar4 = uVar5 % (ulong)param_1[1]" (identifier "uVar4") (= "=") (binary_expression "uVar5 % (ulong)param_1[1]" (identifier "uVar5") (% "%") (cast_expression "(ulong)param_1[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "plVar6 = *(long **)(*param_1 + uVar4 * 8);" (assignment_expression "plVar6 = *(long **)(*param_1 + uVar4 * 8)" (identifier "plVar6") (= "=") (pointer_expression "*(long **)(*param_1 + uVar4 * 8)" (* "*") (cast_expression "(long **)(*param_1 + uVar4 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + uVar4 * 8)" (( "(") (binary_expression "*param_1 + uVar4 * 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (binary_expression "uVar4 * 8" (identifier "uVar4") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (plVar6 != (long *)0x0) {\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(plVar6 != (long *)0x0)" (( "(") (binary_expression "plVar6 != (long *)0x0" (identifier "plVar6") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar8 = ((long *)*plVar6)[4];\n    plVar7 = (long *)*plVar6;\n    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }\n    if (*plVar6 != 0) {\n      return;\n    }\n  }" ({ "{") (expression_statement "uVar8 = ((long *)*plVar6)[4];" (assignment_expression "uVar8 = ((long *)*plVar6)[4]" (identifier "uVar8") (= "=") (subscript_expression "((long *)*plVar6)[4]" (parenthesized_expression "((long *)*plVar6)" (( "(") (cast_expression "(long *)*plVar6" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar6" (* "*") (identifier "plVar6"))) () ")")) ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "plVar7 = (long *)*plVar6;" (assignment_expression "plVar7 = (long *)*plVar6" (identifier "plVar7") (= "=") (cast_expression "(long *)*plVar6" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar6" (* "*") (identifier "plVar6")))) (; ";")) (while_statement "while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }" (while "while") (parenthesized_expression "((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3])))" (( "(") (parenthesized_expression "(((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))" (( "(") (binary_expression "((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3])" (parenthesized_expression "((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2)))" (( "(") (binary_expression "(uVar5 != uVar8 || (*param_2 != plVar7[1])) ||\n            ((uint)param_2[1] != *(uint *)(plVar7 + 2))" (parenthesized_expression "(uVar5 != uVar8 || (*param_2 != plVar7[1]))" (( "(") (binary_expression "uVar5 != uVar8 || (*param_2 != plVar7[1])" (binary_expression "uVar5 != uVar8" (identifier "uVar5") (!= "!=") (identifier "uVar8")) (|| "||") (parenthesized_expression "(*param_2 != plVar7[1])" (( "(") (binary_expression "*param_2 != plVar7[1]" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (!= "!=") (subscript_expression "plVar7[1]" (identifier "plVar7") ([ "[") (number_literal "1") (] "]"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((uint)param_2[1] != *(uint *)(plVar7 + 2))" (( "(") (binary_expression "(uint)param_2[1] != *(uint *)(plVar7 + 2)" (cast_expression "(uint)param_2[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (pointer_expression "*(uint *)(plVar7 + 2)" (* "*") (cast_expression "(uint *)(plVar7 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar7 + 2)" (( "(") (binary_expression "plVar7 + 2" (identifier "plVar7") (+ "+") (number_literal "2")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(param_2[2] != plVar7[3])" (( "(") (binary_expression "param_2[2] != plVar7[3]" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (!= "!=") (subscript_expression "plVar7[3]" (identifier "plVar7") ([ "[") (number_literal "3") (] "]"))) () ")"))) () ")")) () ")")) (compound_statement "{\n      plVar1 = (long *)*plVar7;\n      if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;\n    }" ({ "{") (expression_statement "plVar1 = (long *)*plVar7;" (assignment_expression "plVar1 = (long *)*plVar7" (identifier "plVar1") (= "=") (cast_expression "(long *)*plVar7" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar7" (* "*") (identifier "plVar7")))) (; ";")) (if_statement "if ((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))\n      goto LAB_0025c7d8;" (if "if") (parenthesized_expression "((plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))" (( "(") (binary_expression "(plVar1 == (long *)0x0) ||\n         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1])" (parenthesized_expression "(plVar1 == (long *)0x0)" (( "(") (binary_expression "plVar1 == (long *)0x0" (identifier "plVar1") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1])" (( "(") (comma_expression "uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]" (assignment_expression "uVar8 = plVar1[4]" (identifier "uVar8") (= "=") (subscript_expression "plVar1[4]" (identifier "plVar1") ([ "[") (number_literal "4") (] "]"))) (, ",") (comma_expression "plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]" (assignment_expression "plVar6 = plVar7" (identifier "plVar6") (= "=") (identifier "plVar7")) (, ",") (comma_expression "plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]" (assignment_expression "plVar7 = plVar1" (identifier "plVar7") (= "=") (identifier "plVar1")) (, ",") (binary_expression "uVar4 != uVar8 % (ulong)param_1[1]" (identifier "uVar4") (!= "!=") (binary_expression "uVar8 % (ulong)param_1[1]" (identifier "uVar8") (% "%") (cast_expression "(ulong)param_1[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))))))) () ")"))) () ")")) (goto_statement "goto LAB_0025c7d8;" (goto "goto") (statement_identifier "LAB_0025c7d8") (; ";"))) (} "}"))) (if_statement "if (*plVar6 != 0) {\n      return;\n    }" (if "if") (parenthesized_expression "(*plVar6 != 0)" (( "(") (binary_expression "*plVar6 != 0" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0025c7d8:\n  puVar3 = (undefined8 *)FUN_00275550(0x28);" (statement_identifier "LAB_0025c7d8") (: ":") (expression_statement "puVar3 = (undefined8 *)FUN_00275550(0x28);" (assignment_expression "puVar3 = (undefined8 *)FUN_00275550(0x28)" (identifier "puVar3") (= "=") (cast_expression "(undefined8 *)FUN_00275550(0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00275550(0x28)" (identifier "FUN_00275550") (argument_list "(0x28)" (( "(") (number_literal "0x28") () ")"))))) (; ";"))) (expression_statement "uVar8 = *param_2;" (assignment_expression "uVar8 = *param_2" (identifier "uVar8") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar2 = param_2[1];" (assignment_expression "uVar2 = param_2[1]" (identifier "uVar2") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar3[3] = param_2[2];" (assignment_expression "puVar3[3] = param_2[2]" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3[1] = uVar8;" (assignment_expression "puVar3[1] = uVar8" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar3[2] = uVar2;" (assignment_expression "puVar3[2] = uVar2" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);" (call_expression "FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4)" (identifier "FUN_0025c640") (argument_list "(param_1,uVar4,uVar5,puVar3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "uVar4") (, ",") (identifier "uVar5") (, ",") (identifier "puVar3") (, ",") (identifier "param_4") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original name: _M_insert<const gold::Symbol_location&,
   std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location, true> >
   > >
   DWARF original prototype:
   pair<std::__detail::_Node_iterator<gold::Symbol_location,_true,_true>,_bool>
   _M_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
   * this, Symbol_location * __v,
   _AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_> *
   __node_gen, true_type param_5, size_type __n_elt) */

pair<std::__detail::_Node_iterator<gold::Symbol_location,_true,_true>,_bool> __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_insert<const_gold::Symbol_location&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<gold::Symbol_location,_true>_>_>_>
          (_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,anon_struct_8_0_00000001_for___align *__v,undefined8 param_3,size_type param_4)

{
  long *plVar1;
  anon_struct_8_0_00000001_for___align aVar2;
  anon_struct_8_0_00000001_for___align aVar3;
  __node_type *__node;
  _Node_iterator_base<gold::Symbol_location,_true> _Var4;
  ulong __bkt;
  ulong __code;
  long *plVar5;
  key_type *__k;
  long *plVar6;
  ulong uVar7;
  undefined8 unaff_R13;
  pair<std::__detail::_Node_iterator<gold::Symbol_location,_true,_true>,_bool> pVar8;
  
  __code = (ulong)*__v ^ (ulong)__v[2] ^ (ulong)*(uint *)(__v + 1);
  __bkt = __code % *(ulong *)(this + 8);
  plVar5 = *(long **)(*(long *)this + __bkt * 8);
  if (plVar5 != (long *)0x0) {
    uVar7 = ((long *)*plVar5)[4];
    plVar6 = (long *)*plVar5;
    while ((((__code != uVar7 || (*__v != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 1))) ||
            (*(uint *)(__v + 1) != *(uint *)(plVar6 + 2))) ||
           (__v[2] != *(anon_struct_8_0_00000001_for___align *)(plVar6 + 3)))) {
      plVar1 = (long *)*plVar6;
      if ((plVar1 == (long *)0x0) ||
         (uVar7 = plVar1[4], plVar5 = plVar6, plVar6 = plVar1, __bkt != uVar7 % *(ulong *)(this + 8)
         )) goto LAB_0025c7d8;
    }
    _Var4._M_cur = (__node_type *)*plVar5;
    unaff_R13 = 0;
    if (_Var4._M_cur != (__node_type *)0x0) goto LAB_0025c7c2;
  }
LAB_0025c7d8:
  __node = (__node_type *)operator_new(0x28);
  aVar2 = *__v;
  aVar3 = __v[1];
  unaff_R13 = CONCAT71((int7)((ulong)unaff_R13 >> 8),1);
  *(anon_struct_8_0_00000001_for___align *)
   ((long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 0x10
   ) = __v[2];
  (__node->super__Hash_node_value_base<gold::Symbol_location>).super__Hash_node_base._M_nxt =
       (_Hash_node_base *)0x0;
  (__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage.__align = aVar2
  ;
  *(anon_struct_8_0_00000001_for___align *)
   ((long)&(__node->super__Hash_node_value_base<gold::Symbol_location>)._M_storage._M_storage + 8) =
       aVar3;
  _Var4._M_cur = (__node_type *)_M_insert_unique_node(this,__bkt,__code,__node,param_4);
LAB_0025c7c2:
  pVar8._8_8_ = unaff_R13;
  pVar8.first.super__Node_iterator_base<gold::Symbol_location,_true>._M_cur =
       (_Node_iterator_base<gold::Symbol_location,_true>)
       (_Node_iterator_base<gold::Symbol_location,_true>)_Var4._M_cur;
  return pVar8;
}


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

void MASKED(long *param_1,ulong *param_2,undefined8 param_3,undefined8 param_4)

{
  long *plVar1;
  ulong uVar2;
  undefined8 *puVar3;
  ulong uVar4;
  ulong uVar5;
  long *plVar6;
  long *plVar7;
  ulong uVar8;
  
  uVar5 = *param_2 ^ param_2[2] ^ (ulong)(uint)param_2[1];
  uVar4 = uVar5 % (ulong)param_1[1];
  plVar6 = *(long **)(*param_1 + uVar4 * 8);
  if (plVar6 != (long *)0x0) {
    uVar8 = ((long *)*plVar6)[4];
    plVar7 = (long *)*plVar6;
    while ((((uVar5 != uVar8 || (*param_2 != plVar7[1])) ||
            ((uint)param_2[1] != *(uint *)(plVar7 + 2))) || (param_2[2] != plVar7[3]))) {
      plVar1 = (long *)*plVar7;
      if ((plVar1 == (long *)0x0) ||
         (uVar8 = plVar1[4], plVar6 = plVar7, plVar7 = plVar1, uVar4 != uVar8 % (ulong)param_1[1]))
      goto LAB_0025c7d8;
    }
    if (*plVar6 != 0) {
      return;
    }
  }
LAB_0025c7d8:
  puVar3 = (undefined8 *)FUN_00275550(0x28);
  uVar8 = *param_2;
  uVar2 = param_2[1];
  puVar3[3] = param_2[2];
  *puVar3 = 0;
  puVar3[1] = uVar8;
  puVar3[2] = uVar2;
  FUN_0025c640(param_1,uVar4,uVar5,puVar3,param_4);
  return;
}

