
/* DWARF original prototype:
   pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>
   equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>
   * this, key_type * __k) */

pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>
 __thiscall
std::
_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>
::equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>
              *this,key_type *__k)

{
  anon_struct_4_0_00000001_for___align aVar1;
  anon_struct_4_0_00000001_for___align aVar2;
  ulong uVar3;
  _Hash_node_base *p_Var4;
  _Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false> _Var5;
  ulong uVar6;
  ulong uVar7;
  __bucket_type p_Var8;
  _Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false> _Var9;
  __bucket_type p_Var10;
  pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>
  pVar11;
  
  aVar1 = (anon_struct_4_0_00000001_for___align)*__k;
  uVar3 = this->_M_bucket_count;
  uVar7 = (ulong)(uint)aVar1 % uVar3;
  p_Var10 = this->_M_buckets[uVar7];
  if (p_Var10 != (__bucket_type)0x0) {
    uVar6 = (ulong)*(uint *)&p_Var10->_M_nxt[1]._M_nxt;
    p_Var4 = p_Var10->_M_nxt;
    while (p_Var8 = p_Var4, aVar1 != SUB84(uVar6,0)) {
      p_Var4 = p_Var8->_M_nxt;
      if ((p_Var4 == (_Hash_node_base *)0x0) ||
         (uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt, p_Var10 = p_Var8, uVar7 != uVar6 % uVar3))
      goto LAB_00182218;
    }
    _Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur =
         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)p_Var10->_M_nxt;
    if (_Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur
        != (__node_type *)0x0) {
      _Var9._M_cur = *(__node_type **)
                      _Var5.
                      super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>.
                      _M_cur;
      if (((_Var9._M_cur == (__node_type *)0x0) ||
          (aVar2 = ((_Var9._M_cur)->
                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).
                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) ||
         (aVar1 != aVar2)) goto LAB_0018220d;
      goto LAB_00182205;
    }
  }
LAB_00182218:
  return (pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>
          )ZEXT816(0);
  while (aVar2 == aVar1) {
LAB_00182205:
    _Var9._M_cur = (__node_type *)
                   ((_Var9._M_cur)->
                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).
                   super__Hash_node_base._M_nxt;
    if ((_Var9._M_cur == (__node_type *)0x0) ||
       (aVar2 = ((_Var9._M_cur)->
                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).
                _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) break;
  }
LAB_0018220d:
  pVar11.second.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur
       = (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)
         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)_Var9._M_cur;
  pVar11.first.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur
       = _Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur;
  return pVar11;
}



undefined1  [16] FUN_00182170(long *param_1,uint *param_2)

{
  uint uVar1;
  ulong uVar2;
  ulong uVar3;
  ulong uVar4;
  long *plVar5;
  long *plVar6;
  long *plVar7;
  undefined1 auVar8 [16];
  
  uVar1 = *param_2;
  uVar2 = param_1[1];
  uVar4 = (ulong)uVar1 % uVar2;
  plVar7 = *(long **)(*param_1 + uVar4 * 8);
  if (plVar7 != (long *)0x0) {
    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);
    plVar6 = (long *)*plVar7;
    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {
      plVar6 = (long *)*plVar5;
      if ((plVar6 == (long *)0x0) ||
         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))
      goto LAB_00182218;
    }
    plVar7 = (long *)*plVar7;
    if (plVar7 != (long *)0x0) {
      plVar6 = (long *)*plVar7;
      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||
         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;
      goto LAB_00182205;
    }
  }
LAB_00182218:
  return ZEXT816(0);
  while (*(uint *)(plVar6 + 1) == uVar1) {
LAB_00182205:
    plVar6 = (long *)*plVar6;
    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;
  }
LAB_0018220d:
  auVar8._8_8_ = plVar6;
  auVar8._0_8_ = plVar7;
  return auVar8;
}


MOV EAX,dword ptr [RSI]
MOV RCX,qword ptr [RDI + 0x8]
XOR EDX,EDX
MOV R9,RAX
DIV RCX
MOV RAX,qword ptr [RDI]
MOV R10,qword ptr [RAX + RDX*0x8]
MOV R8,RDX
TEST R10,R10
JZ 0x00182218
MOV RSI,qword ptr [R10]
MOV EDI,dword ptr [RSI + 0x8]
JMP 0x001821be
MOV RDX,qword ptr [RSI]
TEST RDX,RDX
JZ 0x00182218
MOV EAX,dword ptr [RDX + 0x8]
MOV R10,RSI
MOV RSI,RDX
XOR EDX,EDX
MOV RDI,RAX
DIV RCX
CMP R8,RDX
JNZ 0x00182218
CMP R9D,EDI
JNZ 0x001821a0
MOV R10,qword ptr [R10]
TEST R10,R10
JZ 0x00182218
MOV RSI,qword ptr [R10]
TEST RSI,RSI
JZ 0x0018220d
MOV EAX,dword ptr [RSI + 0x8]
XOR EDX,EDX
MOV RDI,RAX
DIV RCX
CMP RDX,R8
JNZ 0x0018220d
CMP R9D,EDI
JZ 0x00182205
JMP 0x0018220d
MOV EAX,dword ptr [RSI + 0x8]
XOR EDX,EDX
MOV RDI,RAX
DIV RCX
CMP RDX,R8
JNZ 0x0018220d
CMP EDI,R9D
JNZ 0x0018220d
MOV RSI,qword ptr [RSI]
TEST RSI,RSI
JNZ 0x001821f0
MOV RAX,R10
MOV RDX,RSI
RET
XOR EAX,EAX
XOR EDX,EDX
RET
(translation_unit "undefined1  [16] FUN_00182170(long *param_1,uint *param_2)\n\n{\n  uint uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  undefined1 auVar8 [16];\n  \n  uVar1 = *param_2;\n  uVar2 = param_1[1];\n  uVar4 = (ulong)uVar1 % uVar2;\n  plVar7 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar7 != (long *)0x0) {\n    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);\n    plVar6 = (long *)*plVar7;\n    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }\n    plVar7 = (long *)*plVar7;\n    if (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }\nLAB_00182218:\n  return ZEXT816(0);\n  while (*(uint *)(plVar6 + 1) == uVar1) {\nLAB_00182205:\n    plVar6 = (long *)*plVar6;\n    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;\n  }\nLAB_0018220d:\n  auVar8._8_8_ = plVar6;\n  auVar8._0_8_ = plVar7;\n  return auVar8;\n}\n\n" (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (expression_statement "FUN_00182170(long *param_1,uint *param_2)" (call_expression "FUN_00182170(long *param_1,uint *param_2)" identifier (argument_list "(long *param_1,uint *param_2)" ( (binary_expression "long *param_1" identifier * identifier) , (binary_expression "uint *param_2" identifier * identifier) ))) ;) (compound_statement "{\n  uint uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  undefined1 auVar8 [16];\n  \n  uVar1 = *param_2;\n  uVar2 = param_1[1];\n  uVar4 = (ulong)uVar1 % uVar2;\n  plVar7 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar7 != (long *)0x0) {\n    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);\n    plVar6 = (long *)*plVar7;\n    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }\n    plVar7 = (long *)*plVar7;\n    if (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }\nLAB_00182218:\n  return ZEXT816(0);\n  while (*(uint *)(plVar6 + 1) == uVar1) {\nLAB_00182205:\n    plVar6 = (long *)*plVar6;\n    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;\n  }\nLAB_0018220d:\n  auVar8._8_8_ = plVar6;\n  auVar8._0_8_ = plVar7;\n  return auVar8;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long *plVar5;" (sized_type_specifier "long" long) (pointer_declarator "*plVar5" * 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 "undefined1 auVar8 [16];" type_identifier (array_declarator "auVar8 [16]" identifier [ number_literal ]) ;) (expression_statement "uVar1 = *param_2;" (assignment_expression "uVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = (ulong)uVar1 % uVar2;" (assignment_expression "uVar4 = (ulong)uVar1 % uVar2" identifier = (binary_expression "(ulong)uVar1 % uVar2" (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)) ;) (expression_statement "plVar7 = *(long **)(*param_1 + uVar4 * 8);" (assignment_expression "plVar7 = *(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 (plVar7 != (long *)0x0) {\n    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);\n    plVar6 = (long *)*plVar7;\n    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }\n    plVar7 = (long *)*plVar7;\n    if (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }" if (parenthesized_expression "(plVar7 != (long *)0x0)" ( (binary_expression "plVar7 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);\n    plVar6 = (long *)*plVar7;\n    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }\n    plVar7 = (long *)*plVar7;\n    if (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }" { (expression_statement "uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);" (assignment_expression "uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1)" identifier = (binary_expression "(ulong)*(uint *)((long *)*plVar7 + 1)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)((long *)*plVar7 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long *)*plVar7 + 1)" ( (binary_expression "(long *)*plVar7 + 1" (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier)) + number_literal) ))))) ;) (expression_statement "plVar6 = (long *)*plVar7;" (assignment_expression "plVar6 = (long *)*plVar7" identifier = (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier))) ;) (while_statement "while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }" while (parenthesized_expression "(plVar5 = plVar6, uVar1 != (uint)uVar3)" ( (comma_expression "plVar5 = plVar6, uVar1 != (uint)uVar3" (assignment_expression "plVar5 = plVar6" identifier = identifier) , (binary_expression "uVar1 != (uint)uVar3" identifier != (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }" { (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))) ;) (if_statement "if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;" if (parenthesized_expression "((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))" ( (binary_expression "(plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2)" (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)) )) || (parenthesized_expression "(uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2)" ( (comma_expression "uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2" (assignment_expression "uVar3 = (ulong)*(uint *)(plVar6 + 1)" identifier = (binary_expression "(ulong)*(uint *)(plVar6 + 1)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(plVar6 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 1)" ( (binary_expression "plVar6 + 1" identifier + number_literal) ))))) , (comma_expression "plVar7 = plVar5, uVar4 != uVar3 % uVar2" (assignment_expression "plVar7 = plVar5" identifier = identifier) , (binary_expression "uVar4 != uVar3 % uVar2" identifier != (binary_expression "uVar3 % uVar2" identifier % identifier)))) ))) )) (goto_statement "goto LAB_00182218;" goto statement_identifier ;)) })) (expression_statement "plVar7 = (long *)*plVar7;" (assignment_expression "plVar7 = (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 (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }" if (parenthesized_expression "(plVar7 != (long *)0x0)" ( (binary_expression "plVar7 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }" { (expression_statement "plVar6 = (long *)*plVar7;" (assignment_expression "plVar6 = (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 (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;" if (parenthesized_expression "(((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1)))" ( (binary_expression "((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))" (parenthesized_expression "((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4))" ( (binary_expression "(plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)" (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)) )) || (parenthesized_expression "((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)" ( (binary_expression "(ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4" (binary_expression "(ulong)*(uint *)(plVar6 + 1) % uVar2" (binary_expression "(ulong)*(uint *)(plVar6 + 1)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(plVar6 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 1)" ( (binary_expression "plVar6 + 1" identifier + number_literal) )))) % identifier) != identifier) ))) )) || (parenthesized_expression "(uVar1 != *(uint *)(plVar6 + 1))" ( (binary_expression "uVar1 != *(uint *)(plVar6 + 1)" identifier != (pointer_expression "*(uint *)(plVar6 + 1)" * (cast_expression "(uint *)(plVar6 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 1)" ( (binary_expression "plVar6 + 1" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_0018220d;" goto statement_identifier ;)) (goto_statement "goto LAB_00182205;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00182218:\n  return ZEXT816(0);" statement_identifier : (return_statement "return ZEXT816(0);" return (call_expression "ZEXT816(0)" identifier (argument_list "(0)" ( number_literal ))) ;)) (while_statement "while (*(uint *)(plVar6 + 1) == uVar1) {\nLAB_00182205:\n    plVar6 = (long *)*plVar6;\n    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;\n  }" while (parenthesized_expression "(*(uint *)(plVar6 + 1) == uVar1)" ( (binary_expression "*(uint *)(plVar6 + 1) == uVar1" (pointer_expression "*(uint *)(plVar6 + 1)" * (cast_expression "(uint *)(plVar6 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 1)" ( (binary_expression "plVar6 + 1" identifier + number_literal) )))) == identifier) )) (compound_statement "{\nLAB_00182205:\n    plVar6 = (long *)*plVar6;\n    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;\n  }" { (labeled_statement "LAB_00182205:\n    plVar6 = (long *)*plVar6;" statement_identifier : (expression_statement "plVar6 = (long *)*plVar6;" (assignment_expression "plVar6 = (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 ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;" if (parenthesized_expression "((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4))" ( (binary_expression "(plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)" (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)) )) || (parenthesized_expression "((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)" ( (binary_expression "(ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4" (binary_expression "(ulong)*(uint *)(plVar6 + 1) % uVar2" (binary_expression "(ulong)*(uint *)(plVar6 + 1)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(plVar6 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 1)" ( (binary_expression "plVar6 + 1" identifier + number_literal) )))) % identifier) != identifier) ))) )) (break_statement "break;" break ;)) })) (labeled_statement "LAB_0018220d:\n  auVar8._8_8_ = plVar6;" statement_identifier : (expression_statement "auVar8._8_8_ = plVar6;" (assignment_expression "auVar8._8_8_ = plVar6" (field_expression "auVar8._8_8_" identifier . field_identifier) = identifier) ;)) (expression_statement "auVar8._0_8_ = plVar7;" (assignment_expression "auVar8._0_8_ = plVar7" (field_expression "auVar8._0_8_" identifier . field_identifier) = identifier) ;) (return_statement "return auVar8;" return identifier ;) }))
(translation_unit "/* DWARF original prototype:\n   pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n   equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n   * this, key_type * __k) */\n\npair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n __thiscall\nstd::\n_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n::equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n              *this,key_type *__k)\n\n{\n  anon_struct_4_0_00000001_for___align aVar1;\n  anon_struct_4_0_00000001_for___align aVar2;\n  ulong uVar3;\n  _Hash_node_base *p_Var4;\n  _Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false> _Var5;\n  ulong uVar6;\n  ulong uVar7;\n  __bucket_type p_Var8;\n  _Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false> _Var9;\n  __bucket_type p_Var10;\n  pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n  pVar11;\n  \n  aVar1 = (anon_struct_4_0_00000001_for___align)*__k;\n  uVar3 = this->_M_bucket_count;\n  uVar7 = (ulong)(uint)aVar1 % uVar3;\n  p_Var10 = this->_M_buckets[uVar7];\n  if (p_Var10 != (__bucket_type)0x0) {\n    uVar6 = (ulong)*(uint *)&p_Var10->_M_nxt[1]._M_nxt;\n    p_Var4 = p_Var10->_M_nxt;\n    while (p_Var8 = p_Var4, aVar1 != SUB84(uVar6,0)) {\n      p_Var4 = p_Var8->_M_nxt;\n      if ((p_Var4 == (_Hash_node_base *)0x0) ||\n         (uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt, p_Var10 = p_Var8, uVar7 != uVar6 % uVar3))\n      goto LAB_00182218;\n    }\n    _Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur =\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)p_Var10->_M_nxt;\n    if (_Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n        != (__node_type *)0x0) {\n      _Var9._M_cur = *(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>.\n                      _M_cur;\n      if (((_Var9._M_cur == (__node_type *)0x0) ||\n          (aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) ||\n         (aVar1 != aVar2)) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }\nLAB_00182218:\n  return (pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n          )ZEXT816(0);\n  while (aVar2 == aVar1) {\nLAB_00182205:\n    _Var9._M_cur = (__node_type *)\n                   ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   super__Hash_node_base._M_nxt;\n    if ((_Var9._M_cur == (__node_type *)0x0) ||\n       (aVar2 = ((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) break;\n  }\nLAB_0018220d:\n  pVar11.second.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n       = (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)_Var9._M_cur;\n  pVar11.first.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n       = _Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur;\n  return pVar11;\n}\n\n" comment (ERROR "pair<std::" (binary_expression "pair<std" identifier < identifier) : :) (labeled_statement "__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n __thiscall" statement_identifier (ERROR "::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std:" : : (binary_expression "_Node_iterator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (comma_expression "_unsigned_int>,_false,_false>,_std" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier))) :) : (labeled_statement "__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n __thiscall" statement_identifier (ERROR "::_Node_iterator<std:" : : (binary_expression "_Node_iterator<std" identifier < identifier) :) : (expression_statement "pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n __thiscall" (comma_expression "pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n __thiscall" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (comma_expression "_unsigned_int>,_false,_false>_>\n __thiscall" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) , (binary_expression "_false>_>\n __thiscall" (binary_expression "_false>_" identifier > identifier) > identifier))) ;))) (labeled_statement "std::\n_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n::equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n              *this,key_type *__k)" statement_identifier (ERROR "::\n_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std:" : : (comma_expression "_Hashtable<unsigned_int,_std" (binary_expression "_Hashtable<unsigned_int" identifier < identifier) , identifier) : : (comma_expression "pair<unsigned_int_const,_unsigned_int>,_std" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int_const,_unsigned_int>_>,_std" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (comma_expression "__detail::_Select1st,_std::equal_to<unsigned_int>,_std" identifier (ERROR "::_Select1st,_std::equal_to<unsigned_int>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<unsigned_int" identifier < identifier) >) , identifier) : : (binary_expression "hash<unsigned_int>,_std" (binary_expression "hash<unsigned_int" identifier < identifier) > (ERROR "," ,) identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n::equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n              *this,key_type *__k)" 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<false,_false,_false>_>\n::equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n              *this,key_type *__k)" 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<false,_false,_false>_>\n::equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n              *this,key_type *__k)" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,_false,_false>_>\n::equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n              *this,key_type *__k)" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<false,_false,_false>_>\n::equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n              *this,key_type *__k)" (comma_expression "_Hashtable_traits<false,_false,_false>_>\n::equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n              *this,key_type *__k)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_false>_>\n::equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n              *this,key_type *__k)" identifier , (binary_expression "_false>_>\n::equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n              *this,key_type *__k)" (binary_expression "_false>_" identifier > identifier) > (ERROR "::" : :) (call_expression "equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n              *this,key_type *__k)" identifier (argument_list "(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>\n              *this,key_type *__k)" ( (binary_expression "_Hashtable<unsigned_int" identifier < identifier) , (ERROR "_std::" identifier : :) (binary_expression "pair<unsigned_int_const" identifier < identifier) , identifier (ERROR ">" >) , (ERROR "_std::allocator<std::" identifier : : (binary_expression "allocator<std" identifier < identifier) : :) (binary_expression "pair<unsigned_int_const" identifier < identifier) , (binary_expression "_unsigned_int>_" identifier > identifier) (ERROR ">" >) , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::" identifier : :) (binary_expression "equal_to<unsigned_int" identifier < identifier) (ERROR ">" >) , (ERROR "_std::" identifier : :) (binary_expression "hash<unsigned_int" identifier < identifier) (ERROR ">" >) , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::__detail::" identifier : : identifier : :) (binary_expression "_Hashtable_traits<false" identifier < false) , identifier , (binary_expression "_false>_>\n              *this" (binary_expression "_false>_" identifier > identifier) > (pointer_expression "*this" * identifier)) , (binary_expression "key_type *__k" identifier * identifier) )))))) ;)))))) (compound_statement "{\n  anon_struct_4_0_00000001_for___align aVar1;\n  anon_struct_4_0_00000001_for___align aVar2;\n  ulong uVar3;\n  _Hash_node_base *p_Var4;\n  _Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false> _Var5;\n  ulong uVar6;\n  ulong uVar7;\n  __bucket_type p_Var8;\n  _Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false> _Var9;\n  __bucket_type p_Var10;\n  pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n  pVar11;\n  \n  aVar1 = (anon_struct_4_0_00000001_for___align)*__k;\n  uVar3 = this->_M_bucket_count;\n  uVar7 = (ulong)(uint)aVar1 % uVar3;\n  p_Var10 = this->_M_buckets[uVar7];\n  if (p_Var10 != (__bucket_type)0x0) {\n    uVar6 = (ulong)*(uint *)&p_Var10->_M_nxt[1]._M_nxt;\n    p_Var4 = p_Var10->_M_nxt;\n    while (p_Var8 = p_Var4, aVar1 != SUB84(uVar6,0)) {\n      p_Var4 = p_Var8->_M_nxt;\n      if ((p_Var4 == (_Hash_node_base *)0x0) ||\n         (uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt, p_Var10 = p_Var8, uVar7 != uVar6 % uVar3))\n      goto LAB_00182218;\n    }\n    _Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur =\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)p_Var10->_M_nxt;\n    if (_Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n        != (__node_type *)0x0) {\n      _Var9._M_cur = *(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>.\n                      _M_cur;\n      if (((_Var9._M_cur == (__node_type *)0x0) ||\n          (aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) ||\n         (aVar1 != aVar2)) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }\nLAB_00182218:\n  return (pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n          )ZEXT816(0);\n  while (aVar2 == aVar1) {\nLAB_00182205:\n    _Var9._M_cur = (__node_type *)\n                   ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   super__Hash_node_base._M_nxt;\n    if ((_Var9._M_cur == (__node_type *)0x0) ||\n       (aVar2 = ((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) break;\n  }\nLAB_0018220d:\n  pVar11.second.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n       = (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)_Var9._M_cur;\n  pVar11.first.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n       = _Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur;\n  return pVar11;\n}" { (declaration "anon_struct_4_0_00000001_for___align aVar1;" type_identifier identifier ;) (declaration "anon_struct_4_0_00000001_for___align aVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var4;" type_identifier (pointer_declarator "*p_Var4" * identifier) ;) (expression_statement "_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false> _Var5;" (comma_expression "_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false> _Var5" (binary_expression "_Node_iterator<std::pair<unsigned_int_const" (binary_expression "_Node_iterator<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (comma_expression "_unsigned_int>,_false,_false> _Var5" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) , (binary_expression "_false> _Var5" identifier > identifier))) ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "__bucket_type p_Var8;" type_identifier identifier ;) (expression_statement "_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false> _Var9;" (comma_expression "_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false> _Var9" (binary_expression "_Node_iterator_base<std::pair<unsigned_int_const" (binary_expression "_Node_iterator_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_int>,_false> _Var9" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) > identifier)) ;) (declaration "__bucket_type p_Var10;" type_identifier identifier ;) (ERROR "pair<std::" (binary_expression "pair<std" identifier < identifier) : :) (labeled_statement "__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n  pVar11;" statement_identifier (ERROR "::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std:" : : (binary_expression "_Node_iterator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (comma_expression "_unsigned_int>,_false,_false>,_std" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier))) :) : (labeled_statement "__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n  pVar11;" statement_identifier (ERROR "::_Node_iterator<std:" : : (binary_expression "_Node_iterator<std" identifier < identifier) :) : (expression_statement "pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n  pVar11;" (comma_expression "pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n  pVar11" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (comma_expression "_unsigned_int>,_false,_false>_>\n  pVar11" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) , (binary_expression "_false>_>\n  pVar11" (binary_expression "_false>_" identifier > identifier) > identifier))) ;))) (expression_statement "aVar1 = (anon_struct_4_0_00000001_for___align)*__k;" (assignment_expression "aVar1 = (anon_struct_4_0_00000001_for___align)*__k" identifier = (binary_expression "(anon_struct_4_0_00000001_for___align)*__k" (parenthesized_expression "(anon_struct_4_0_00000001_for___align)" ( identifier )) * identifier)) ;) (expression_statement "uVar3 = this->_M_bucket_count;" (assignment_expression "uVar3 = this->_M_bucket_count" identifier = (field_expression "this->_M_bucket_count" identifier -> field_identifier)) ;) (expression_statement "uVar7 = (ulong)(uint)aVar1 % uVar3;" (assignment_expression "uVar7 = (ulong)(uint)aVar1 % uVar3" identifier = (binary_expression "(ulong)(uint)aVar1 % uVar3" (cast_expression "(ulong)(uint)aVar1" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)aVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) % identifier)) ;) (expression_statement "p_Var10 = this->_M_buckets[uVar7];" (assignment_expression "p_Var10 = this->_M_buckets[uVar7]" identifier = (subscript_expression "this->_M_buckets[uVar7]" (field_expression "this->_M_buckets" identifier -> field_identifier) [ identifier ])) ;) (if_statement "if (p_Var10 != (__bucket_type)0x0) {\n    uVar6 = (ulong)*(uint *)&p_Var10->_M_nxt[1]._M_nxt;\n    p_Var4 = p_Var10->_M_nxt;\n    while (p_Var8 = p_Var4, aVar1 != SUB84(uVar6,0)) {\n      p_Var4 = p_Var8->_M_nxt;\n      if ((p_Var4 == (_Hash_node_base *)0x0) ||\n         (uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt, p_Var10 = p_Var8, uVar7 != uVar6 % uVar3))\n      goto LAB_00182218;\n    }\n    _Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur =\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)p_Var10->_M_nxt;\n    if (_Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n        != (__node_type *)0x0) {\n      _Var9._M_cur = *(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>.\n                      _M_cur;\n      if (((_Var9._M_cur == (__node_type *)0x0) ||\n          (aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) ||\n         (aVar1 != aVar2)) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }" if (parenthesized_expression "(p_Var10 != (__bucket_type)0x0)" ( (binary_expression "p_Var10 != (__bucket_type)0x0" identifier != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n    uVar6 = (ulong)*(uint *)&p_Var10->_M_nxt[1]._M_nxt;\n    p_Var4 = p_Var10->_M_nxt;\n    while (p_Var8 = p_Var4, aVar1 != SUB84(uVar6,0)) {\n      p_Var4 = p_Var8->_M_nxt;\n      if ((p_Var4 == (_Hash_node_base *)0x0) ||\n         (uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt, p_Var10 = p_Var8, uVar7 != uVar6 % uVar3))\n      goto LAB_00182218;\n    }\n    _Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur =\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)p_Var10->_M_nxt;\n    if (_Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n        != (__node_type *)0x0) {\n      _Var9._M_cur = *(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>.\n                      _M_cur;\n      if (((_Var9._M_cur == (__node_type *)0x0) ||\n          (aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) ||\n         (aVar1 != aVar2)) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }" { (expression_statement "uVar6 = (ulong)*(uint *)&p_Var10->_M_nxt[1]._M_nxt;" (assignment_expression "uVar6 = (ulong)*(uint *)&p_Var10->_M_nxt[1]._M_nxt" identifier = (binary_expression "(ulong)*(uint *)&p_Var10->_M_nxt[1]._M_nxt" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)&p_Var10->_M_nxt[1]._M_nxt" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p_Var10->_M_nxt[1]._M_nxt" & (field_expression "p_Var10->_M_nxt[1]._M_nxt" (subscript_expression "p_Var10->_M_nxt[1]" (field_expression "p_Var10->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier))))) ;) (expression_statement "p_Var4 = p_Var10->_M_nxt;" (assignment_expression "p_Var4 = p_Var10->_M_nxt" identifier = (field_expression "p_Var10->_M_nxt" identifier -> field_identifier)) ;) (while_statement "while (p_Var8 = p_Var4, aVar1 != SUB84(uVar6,0)) {\n      p_Var4 = p_Var8->_M_nxt;\n      if ((p_Var4 == (_Hash_node_base *)0x0) ||\n         (uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt, p_Var10 = p_Var8, uVar7 != uVar6 % uVar3))\n      goto LAB_00182218;\n    }" while (parenthesized_expression "(p_Var8 = p_Var4, aVar1 != SUB84(uVar6,0))" ( (comma_expression "p_Var8 = p_Var4, aVar1 != SUB84(uVar6,0)" (assignment_expression "p_Var8 = p_Var4" identifier = identifier) , (binary_expression "aVar1 != SUB84(uVar6,0)" identifier != (call_expression "SUB84(uVar6,0)" identifier (argument_list "(uVar6,0)" ( identifier , number_literal ))))) )) (compound_statement "{\n      p_Var4 = p_Var8->_M_nxt;\n      if ((p_Var4 == (_Hash_node_base *)0x0) ||\n         (uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt, p_Var10 = p_Var8, uVar7 != uVar6 % uVar3))\n      goto LAB_00182218;\n    }" { (expression_statement "p_Var4 = p_Var8->_M_nxt;" (assignment_expression "p_Var4 = p_Var8->_M_nxt" identifier = (field_expression "p_Var8->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if ((p_Var4 == (_Hash_node_base *)0x0) ||\n         (uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt, p_Var10 = p_Var8, uVar7 != uVar6 % uVar3))\n      goto LAB_00182218;" if (parenthesized_expression "((p_Var4 == (_Hash_node_base *)0x0) ||\n         (uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt, p_Var10 = p_Var8, uVar7 != uVar6 % uVar3))" ( (binary_expression "(p_Var4 == (_Hash_node_base *)0x0) ||\n         (uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt, p_Var10 = p_Var8, uVar7 != uVar6 % uVar3)" (parenthesized_expression "(p_Var4 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var4 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt, p_Var10 = p_Var8, uVar7 != uVar6 % uVar3)" ( (comma_expression "uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt, p_Var10 = p_Var8, uVar7 != uVar6 % uVar3" (assignment_expression "uVar6 = (ulong)*(uint *)&p_Var4[1]._M_nxt" identifier = (binary_expression "(ulong)*(uint *)&p_Var4[1]._M_nxt" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)&p_Var4[1]._M_nxt" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p_Var4[1]._M_nxt" & (field_expression "p_Var4[1]._M_nxt" (subscript_expression "p_Var4[1]" identifier [ number_literal ]) . field_identifier))))) , (comma_expression "p_Var10 = p_Var8, uVar7 != uVar6 % uVar3" (assignment_expression "p_Var10 = p_Var8" identifier = identifier) , (binary_expression "uVar7 != uVar6 % uVar3" identifier != (binary_expression "uVar6 % uVar3" identifier % identifier)))) ))) )) (goto_statement "goto LAB_00182218;" goto statement_identifier ;)) })) (expression_statement "_Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur =\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)p_Var10->_M_nxt;" (comma_expression "_Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur =\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)p_Var10->_M_nxt" (binary_expression "_Var5.super__Node_iterator_base<std::pair<unsigned_int_const" (binary_expression "_Var5.super__Node_iterator_base<std" (field_expression "_Var5.super__Node_iterator_base" identifier . field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (assignment_expression "_unsigned_int>,_false>._M_cur =\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)p_Var10->_M_nxt" (field_expression "_unsigned_int>,_false>._M_cur" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) (ERROR ">" >) . field_identifier) = (parenthesized_expression "(_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)p_Var10->_M_nxt" ( (comma_expression "_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)p_Var10->_M_nxt" (binary_expression "_Node_iterator_base<std::pair<unsigned_int_const" (binary_expression "_Node_iterator_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_int>,_false>)p_Var10->_M_nxt" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) > (ERROR ")" )) (field_expression "p_Var10->_M_nxt" identifier -> field_identifier))) )))) ;) (if_statement "if (_Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n        != (__node_type *)0x0) {\n      _Var9._M_cur = *(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>.\n                      _M_cur;\n      if (((_Var9._M_cur == (__node_type *)0x0) ||\n          (aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) ||\n         (aVar1 != aVar2)) goto LAB_0018220d;\n      goto LAB_00182205;\n    }" if (parenthesized_expression "(_Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n        != (__node_type *)0x0)" ( (comma_expression "_Var5.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n        != (__node_type *)0x0" (binary_expression "_Var5.super__Node_iterator_base<std::pair<unsigned_int_const" (binary_expression "_Var5.super__Node_iterator_base<std" (field_expression "_Var5.super__Node_iterator_base" identifier . field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_int>,_false>._M_cur\n        != (__node_type *)0x0" (field_expression "_unsigned_int>,_false>._M_cur" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) (ERROR ">" >) . field_identifier) != (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      _Var9._M_cur = *(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>.\n                      _M_cur;\n      if (((_Var9._M_cur == (__node_type *)0x0) ||\n          (aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) ||\n         (aVar1 != aVar2)) goto LAB_0018220d;\n      goto LAB_00182205;\n    }" { (expression_statement "_Var9._M_cur = *(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>.\n                      _M_cur;" (comma_expression "_Var9._M_cur = *(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>.\n                      _M_cur" (binary_expression "_Var9._M_cur = *(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base<std::pair<unsigned_int_const" (assignment_expression "_Var9._M_cur = *(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base<std" (field_expression "_Var9._M_cur" identifier . field_identifier) = (binary_expression "*(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base<std" (pointer_expression "*(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base" * (cast_expression "(__node_type **)\n                      _Var5.\n                      super__Node_iterator_base" ( (type_descriptor "__node_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "_Var5.\n                      super__Node_iterator_base" identifier . field_identifier))) < identifier)) (ERROR "::pair" : : identifier) < identifier) , (field_expression "_unsigned_int>,_false>.\n                      _M_cur" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) (ERROR ">" >) . field_identifier)) ;) (if_statement "if (((_Var9._M_cur == (__node_type *)0x0) ||\n          (aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) ||\n         (aVar1 != aVar2)) goto LAB_0018220d;" if (parenthesized_expression "(((_Var9._M_cur == (__node_type *)0x0) ||\n          (aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) ||\n         (aVar1 != aVar2))" ( (binary_expression "((_Var9._M_cur == (__node_type *)0x0) ||\n          (aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) ||\n         (aVar1 != aVar2)" (parenthesized_expression "((_Var9._M_cur == (__node_type *)0x0) ||\n          (aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7))" ( (binary_expression "(_Var9._M_cur == (__node_type *)0x0) ||\n          (aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)" (parenthesized_expression "(_Var9._M_cur == (__node_type *)0x0)" ( (binary_expression "_Var9._M_cur == (__node_type *)0x0" (field_expression "_Var9._M_cur" identifier . field_identifier) == (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)" ( (comma_expression "aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7" (assignment_expression "aVar2 = ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align" identifier = (field_expression "((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage.__align" (field_expression "((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage._M_storage" (field_expression "((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   _M_storage" (parenthesized_expression "((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>)" ( (comma_expression "(_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_" (binary_expression "(_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const" (binary_expression "(_Var9._M_cur)->\n                   super__Hash_node_value_base<std" (field_expression "(_Var9._M_cur)->\n                   super__Hash_node_value_base" (parenthesized_expression "(_Var9._M_cur)" ( (field_expression "_Var9._M_cur" identifier . field_identifier) )) -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_int>_" identifier > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) , (binary_expression "(ulong)(uint)aVar2 % uVar3 != uVar7" (binary_expression "(ulong)(uint)aVar2 % uVar3" (cast_expression "(ulong)(uint)aVar2" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)aVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) % identifier) != identifier)) ))) )) || (parenthesized_expression "(aVar1 != aVar2)" ( (binary_expression "aVar1 != aVar2" identifier != identifier) ))) )) (goto_statement "goto LAB_0018220d;" goto statement_identifier ;)) (goto_statement "goto LAB_00182205;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00182218:\n  return (pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n          )ZEXT816(0);" statement_identifier : (return_statement "return (pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n          )ZEXT816(0);" return (parenthesized_expression "(pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n          )ZEXT816(0)" ( (ERROR "pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::" (binary_expression "pair<std" identifier < identifier) : : identifier : : (binary_expression "_Node_iterator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (comma_expression "_unsigned_int>,_false,_false>,_std" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier))) : : identifier : : (binary_expression "_Node_iterator<std" identifier < identifier) : :) (comma_expression "pair<unsigned_int_const,_unsigned_int>,_false,_false>_>\n          )ZEXT816(0)" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (comma_expression "_unsigned_int>,_false,_false>_>\n          )ZEXT816(0)" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) , (binary_expression "_false>_>\n          )ZEXT816(0)" (binary_expression "_false>_" identifier > identifier) > (ERROR ")" )) (call_expression "ZEXT816(0)" identifier (argument_list "(0)" ( number_literal )))))) )) ;)) (while_statement "while (aVar2 == aVar1) {\nLAB_00182205:\n    _Var9._M_cur = (__node_type *)\n                   ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   super__Hash_node_base._M_nxt;\n    if ((_Var9._M_cur == (__node_type *)0x0) ||\n       (aVar2 = ((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) break;\n  }" while (parenthesized_expression "(aVar2 == aVar1)" ( (binary_expression "aVar2 == aVar1" identifier == identifier) )) (compound_statement "{\nLAB_00182205:\n    _Var9._M_cur = (__node_type *)\n                   ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   super__Hash_node_base._M_nxt;\n    if ((_Var9._M_cur == (__node_type *)0x0) ||\n       (aVar2 = ((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) break;\n  }" { (labeled_statement "LAB_00182205:\n    _Var9._M_cur = (__node_type *)\n                   ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   super__Hash_node_base._M_nxt;" statement_identifier : (expression_statement "_Var9._M_cur = (__node_type *)\n                   ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   super__Hash_node_base._M_nxt;" (assignment_expression "_Var9._M_cur = (__node_type *)\n                   ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   super__Hash_node_base._M_nxt" (field_expression "_Var9._M_cur" identifier . field_identifier) = (cast_expression "(__node_type *)\n                   ((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   super__Hash_node_base._M_nxt" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   super__Hash_node_base._M_nxt" (field_expression "((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                   super__Hash_node_base" (parenthesized_expression "((_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>)" ( (comma_expression "(_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_" (binary_expression "(_Var9._M_cur)->\n                   super__Hash_node_value_base<std::pair<unsigned_int_const" (binary_expression "(_Var9._M_cur)->\n                   super__Hash_node_value_base<std" (field_expression "(_Var9._M_cur)->\n                   super__Hash_node_value_base" (parenthesized_expression "(_Var9._M_cur)" ( (field_expression "_Var9._M_cur" identifier . field_identifier) )) -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_int>_" identifier > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier))) ;)) (if_statement "if ((_Var9._M_cur == (__node_type *)0x0) ||\n       (aVar2 = ((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)) break;" if (parenthesized_expression "((_Var9._M_cur == (__node_type *)0x0) ||\n       (aVar2 = ((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7))" ( (binary_expression "(_Var9._M_cur == (__node_type *)0x0) ||\n       (aVar2 = ((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)" (parenthesized_expression "(_Var9._M_cur == (__node_type *)0x0)" ( (binary_expression "_Var9._M_cur == (__node_type *)0x0" (field_expression "_Var9._M_cur" identifier . field_identifier) == (cast_expression "(__node_type *)0x0" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(aVar2 = ((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7)" ( (comma_expression "aVar2 = ((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage._M_storage.__align, (ulong)(uint)aVar2 % uVar3 != uVar7" (assignment_expression "aVar2 = ((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage._M_storage.__align" identifier = (field_expression "((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage._M_storage.__align" (field_expression "((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage._M_storage" (field_expression "((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>).\n                _M_storage" (parenthesized_expression "((_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_>)" ( (comma_expression "(_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const,_unsigned_int>_" (binary_expression "(_Var9._M_cur)->\n                super__Hash_node_value_base<std::pair<unsigned_int_const" (binary_expression "(_Var9._M_cur)->\n                super__Hash_node_value_base<std" (field_expression "(_Var9._M_cur)->\n                super__Hash_node_value_base" (parenthesized_expression "(_Var9._M_cur)" ( (field_expression "_Var9._M_cur" identifier . field_identifier) )) -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_int>_" identifier > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) , (binary_expression "(ulong)(uint)aVar2 % uVar3 != uVar7" (binary_expression "(ulong)(uint)aVar2 % uVar3" (cast_expression "(ulong)(uint)aVar2" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)aVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) % identifier) != identifier)) ))) )) (break_statement "break;" break ;)) })) (labeled_statement "LAB_0018220d:\n  pVar11.second.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n       = (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)_Var9._M_cur;" statement_identifier : (expression_statement "pVar11.second.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n       = (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)_Var9._M_cur;" (comma_expression "pVar11.second.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n       = (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)_Var9._M_cur" (binary_expression "pVar11.second.super__Node_iterator_base<std::pair<unsigned_int_const" (binary_expression "pVar11.second.super__Node_iterator_base<std" (field_expression "pVar11.second.super__Node_iterator_base" (field_expression "pVar11.second" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (assignment_expression "_unsigned_int>,_false>._M_cur\n       = (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)_Var9._M_cur" (field_expression "_unsigned_int>,_false>._M_cur" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) (ERROR ">" >) . field_identifier) = (call_expression "(_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)\n         (_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)_Var9._M_cur" (parenthesized_expression "(_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)" ( (comma_expression "_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false" (binary_expression "_Node_iterator_base<std::pair<unsigned_int_const" (binary_expression "_Node_iterator_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier)) (ERROR ">" >) )) (argument_list "(_Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>)_Var9._M_cur" ( (binary_expression "_Node_iterator_base<std::pair<unsigned_int_const" (binary_expression "_Node_iterator_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_int>,_false>)_Var9._M_cur" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) > (ERROR ")" )) (field_expression "_Var9._M_cur" identifier . field_identifier)) ))))) ;)) (ERROR "pVar11.first.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n       = _Var5.super__Node_iterator_base<std::" (comma_expression "pVar11.first.super__Node_iterator_base<std::pair<unsigned_int_const,_unsigned_int>,_false>._M_cur\n       = _Var5.super__Node_iterator_base<std" (binary_expression "pVar11.first.super__Node_iterator_base<std::pair<unsigned_int_const" (binary_expression "pVar11.first.super__Node_iterator_base<std" (field_expression "pVar11.first.super__Node_iterator_base" (field_expression "pVar11.first" identifier . field_identifier) . field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (assignment_expression "_unsigned_int>,_false>._M_cur\n       = _Var5.super__Node_iterator_base<std" (field_expression "_unsigned_int>,_false>._M_cur" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) (ERROR ">" >) . field_identifier) = (binary_expression "_Var5.super__Node_iterator_base<std" (field_expression "_Var5.super__Node_iterator_base" identifier . field_identifier) < identifier))) : :) (expression_statement "pair<unsigned_int_const,_unsigned_int>,_false>._M_cur;" (comma_expression "pair<unsigned_int_const,_unsigned_int>,_false>._M_cur" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (field_expression "_unsigned_int>,_false>._M_cur" (binary_expression "_unsigned_int>,_false" identifier > (ERROR "," ,) identifier) (ERROR ">" >) . field_identifier)) ;) (return_statement "return pVar11;" return identifier ;) }))
(translation_unit "undefined1  [16] FUN_00182170(long *param_1,uint *param_2)\n\n{\n  uint uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  undefined1 auVar8 [16];\n  \n  uVar1 = *param_2;\n  uVar2 = param_1[1];\n  uVar4 = (ulong)uVar1 % uVar2;\n  plVar7 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar7 != (long *)0x0) {\n    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);\n    plVar6 = (long *)*plVar7;\n    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }\n    plVar7 = (long *)*plVar7;\n    if (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }\nLAB_00182218:\n  return ZEXT816(0);\n  while (*(uint *)(plVar6 + 1) == uVar1) {\nLAB_00182205:\n    plVar6 = (long *)*plVar6;\n    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;\n  }\nLAB_0018220d:\n  auVar8._8_8_ = plVar6;\n  auVar8._0_8_ = plVar7;\n  return auVar8;\n}\n\n" (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (expression_statement "FUN_00182170(long *param_1,uint *param_2)" (call_expression "FUN_00182170(long *param_1,uint *param_2)" identifier (argument_list "(long *param_1,uint *param_2)" ( (binary_expression "long *param_1" identifier * identifier) , (binary_expression "uint *param_2" identifier * identifier) ))) ;) (compound_statement "{\n  uint uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  undefined1 auVar8 [16];\n  \n  uVar1 = *param_2;\n  uVar2 = param_1[1];\n  uVar4 = (ulong)uVar1 % uVar2;\n  plVar7 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar7 != (long *)0x0) {\n    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);\n    plVar6 = (long *)*plVar7;\n    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }\n    plVar7 = (long *)*plVar7;\n    if (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }\nLAB_00182218:\n  return ZEXT816(0);\n  while (*(uint *)(plVar6 + 1) == uVar1) {\nLAB_00182205:\n    plVar6 = (long *)*plVar6;\n    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;\n  }\nLAB_0018220d:\n  auVar8._8_8_ = plVar6;\n  auVar8._0_8_ = plVar7;\n  return auVar8;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long *plVar5;" (sized_type_specifier "long" long) (pointer_declarator "*plVar5" * 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 "undefined1 auVar8 [16];" type_identifier (array_declarator "auVar8 [16]" identifier [ number_literal ]) ;) (expression_statement "uVar1 = *param_2;" (assignment_expression "uVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = (ulong)uVar1 % uVar2;" (assignment_expression "uVar4 = (ulong)uVar1 % uVar2" identifier = (binary_expression "(ulong)uVar1 % uVar2" (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)) ;) (expression_statement "plVar7 = *(long **)(*param_1 + uVar4 * 8);" (assignment_expression "plVar7 = *(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 (plVar7 != (long *)0x0) {\n    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);\n    plVar6 = (long *)*plVar7;\n    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }\n    plVar7 = (long *)*plVar7;\n    if (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }" if (parenthesized_expression "(plVar7 != (long *)0x0)" ( (binary_expression "plVar7 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);\n    plVar6 = (long *)*plVar7;\n    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }\n    plVar7 = (long *)*plVar7;\n    if (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }" { (expression_statement "uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);" (assignment_expression "uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1)" identifier = (binary_expression "(ulong)*(uint *)((long *)*plVar7 + 1)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)((long *)*plVar7 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long *)*plVar7 + 1)" ( (binary_expression "(long *)*plVar7 + 1" (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier)) + number_literal) ))))) ;) (expression_statement "plVar6 = (long *)*plVar7;" (assignment_expression "plVar6 = (long *)*plVar7" identifier = (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier))) ;) (while_statement "while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }" while (parenthesized_expression "(plVar5 = plVar6, uVar1 != (uint)uVar3)" ( (comma_expression "plVar5 = plVar6, uVar1 != (uint)uVar3" (assignment_expression "plVar5 = plVar6" identifier = identifier) , (binary_expression "uVar1 != (uint)uVar3" identifier != (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }" { (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))) ;) (if_statement "if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;" if (parenthesized_expression "((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))" ( (binary_expression "(plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2)" (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)) )) || (parenthesized_expression "(uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2)" ( (comma_expression "uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2" (assignment_expression "uVar3 = (ulong)*(uint *)(plVar6 + 1)" identifier = (binary_expression "(ulong)*(uint *)(plVar6 + 1)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(plVar6 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 1)" ( (binary_expression "plVar6 + 1" identifier + number_literal) ))))) , (comma_expression "plVar7 = plVar5, uVar4 != uVar3 % uVar2" (assignment_expression "plVar7 = plVar5" identifier = identifier) , (binary_expression "uVar4 != uVar3 % uVar2" identifier != (binary_expression "uVar3 % uVar2" identifier % identifier)))) ))) )) (goto_statement "goto LAB_00182218;" goto statement_identifier ;)) })) (expression_statement "plVar7 = (long *)*plVar7;" (assignment_expression "plVar7 = (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 (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }" if (parenthesized_expression "(plVar7 != (long *)0x0)" ( (binary_expression "plVar7 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }" { (expression_statement "plVar6 = (long *)*plVar7;" (assignment_expression "plVar6 = (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 (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;" if (parenthesized_expression "(((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1)))" ( (binary_expression "((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))" (parenthesized_expression "((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4))" ( (binary_expression "(plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)" (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)) )) || (parenthesized_expression "((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)" ( (binary_expression "(ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4" (binary_expression "(ulong)*(uint *)(plVar6 + 1) % uVar2" (binary_expression "(ulong)*(uint *)(plVar6 + 1)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(plVar6 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 1)" ( (binary_expression "plVar6 + 1" identifier + number_literal) )))) % identifier) != identifier) ))) )) || (parenthesized_expression "(uVar1 != *(uint *)(plVar6 + 1))" ( (binary_expression "uVar1 != *(uint *)(plVar6 + 1)" identifier != (pointer_expression "*(uint *)(plVar6 + 1)" * (cast_expression "(uint *)(plVar6 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 1)" ( (binary_expression "plVar6 + 1" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_0018220d;" goto statement_identifier ;)) (goto_statement "goto LAB_00182205;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00182218:\n  return ZEXT816(0);" statement_identifier : (return_statement "return ZEXT816(0);" return (call_expression "ZEXT816(0)" identifier (argument_list "(0)" ( number_literal ))) ;)) (while_statement "while (*(uint *)(plVar6 + 1) == uVar1) {\nLAB_00182205:\n    plVar6 = (long *)*plVar6;\n    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;\n  }" while (parenthesized_expression "(*(uint *)(plVar6 + 1) == uVar1)" ( (binary_expression "*(uint *)(plVar6 + 1) == uVar1" (pointer_expression "*(uint *)(plVar6 + 1)" * (cast_expression "(uint *)(plVar6 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 1)" ( (binary_expression "plVar6 + 1" identifier + number_literal) )))) == identifier) )) (compound_statement "{\nLAB_00182205:\n    plVar6 = (long *)*plVar6;\n    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;\n  }" { (labeled_statement "LAB_00182205:\n    plVar6 = (long *)*plVar6;" statement_identifier : (expression_statement "plVar6 = (long *)*plVar6;" (assignment_expression "plVar6 = (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 ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;" if (parenthesized_expression "((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4))" ( (binary_expression "(plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)" (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)) )) || (parenthesized_expression "((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)" ( (binary_expression "(ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4" (binary_expression "(ulong)*(uint *)(plVar6 + 1) % uVar2" (binary_expression "(ulong)*(uint *)(plVar6 + 1)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(plVar6 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 1)" ( (binary_expression "plVar6 + 1" identifier + number_literal) )))) % identifier) != identifier) ))) )) (break_statement "break;" break ;)) })) (labeled_statement "LAB_0018220d:\n  auVar8._8_8_ = plVar6;" statement_identifier : (expression_statement "auVar8._8_8_ = plVar6;" (assignment_expression "auVar8._8_8_ = plVar6" (field_expression "auVar8._8_8_" identifier . field_identifier) = identifier) ;)) (expression_statement "auVar8._0_8_ = plVar7;" (assignment_expression "auVar8._0_8_ = plVar7" (field_expression "auVar8._0_8_" identifier . field_identifier) = identifier) ;) (return_statement "return auVar8;" return identifier ;) }))
(translation_unit (expression_statement (subscript_expression IDENT [ LIT ]) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) , (binary_expression IDENT * IDENT) ))) ;) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) % IDENT)) ;) (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 = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (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 = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (binary_expression IDENT % IDENT)))) ))) )) (goto_statement goto statement_identifier ;)) })) (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 IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) 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 (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) % IDENT) != IDENT) ))) )) || (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (return_statement return (call_expression IDENT (argument_list ( LIT ))) ;)) (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (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 ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) % IDENT) != IDENT) ))) )) (break_statement break ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (return_statement return IDENT ;) }))
(expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" (identifier "undefined1") ([ "[") (number_literal "16") (] "]")) (; "")) (expression_statement "FUN_00182170(long *param_1,uint *param_2)" (call_expression "FUN_00182170(long *param_1,uint *param_2)" (identifier "FUN_00182170") (argument_list "(long *param_1,uint *param_2)" (( "(") (binary_expression "long *param_1" (identifier "long") (* "*") (identifier "param_1")) (, ",") (binary_expression "uint *param_2" (identifier "uint") (* "*") (identifier "param_2")) () ")"))) (; "")) (compound_statement "{\n  uint uVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  long *plVar5;\n  long *plVar6;\n  long *plVar7;\n  undefined1 auVar8 [16];\n  \n  uVar1 = *param_2;\n  uVar2 = param_1[1];\n  uVar4 = (ulong)uVar1 % uVar2;\n  plVar7 = *(long **)(*param_1 + uVar4 * 8);\n  if (plVar7 != (long *)0x0) {\n    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);\n    plVar6 = (long *)*plVar7;\n    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }\n    plVar7 = (long *)*plVar7;\n    if (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }\nLAB_00182218:\n  return ZEXT816(0);\n  while (*(uint *)(plVar6 + 1) == uVar1) {\nLAB_00182205:\n    plVar6 = (long *)*plVar6;\n    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;\n  }\nLAB_0018220d:\n  auVar8._8_8_ = plVar6;\n  auVar8._0_8_ = plVar7;\n  return auVar8;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "ulong uVar3;" (type_identifier "ulong") (identifier "uVar3") (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "long *plVar5;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar5" (* "*") (identifier "plVar5")) (; ";")) (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 "undefined1 auVar8 [16];" (type_identifier "undefined1") (array_declarator "auVar8 [16]" (identifier "auVar8") ([ "[") (number_literal "16") (] "]")) (; ";")) (expression_statement "uVar1 = *param_2;" (assignment_expression "uVar1 = *param_2" (identifier "uVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" (identifier "uVar2") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = (ulong)uVar1 % uVar2;" (assignment_expression "uVar4 = (ulong)uVar1 % uVar2" (identifier "uVar4") (= "=") (binary_expression "(ulong)uVar1 % uVar2" (cast_expression "(ulong)uVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar1")) (% "%") (identifier "uVar2"))) (; ";")) (expression_statement "plVar7 = *(long **)(*param_1 + uVar4 * 8);" (assignment_expression "plVar7 = *(long **)(*param_1 + uVar4 * 8)" (identifier "plVar7") (= "=") (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 (plVar7 != (long *)0x0) {\n    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);\n    plVar6 = (long *)*plVar7;\n    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }\n    plVar7 = (long *)*plVar7;\n    if (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }" (if "if") (parenthesized_expression "(plVar7 != (long *)0x0)" (( "(") (binary_expression "plVar7 != (long *)0x0" (identifier "plVar7") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);\n    plVar6 = (long *)*plVar7;\n    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }\n    plVar7 = (long *)*plVar7;\n    if (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }\n  }" ({ "{") (expression_statement "uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);" (assignment_expression "uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1)" (identifier "uVar3") (= "=") (binary_expression "(ulong)*(uint *)((long *)*plVar7 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)((long *)*plVar7 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long *)*plVar7 + 1)" (( "(") (binary_expression "(long *)*plVar7 + 1" (cast_expression "(long *)*plVar7" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar7" (* "*") (identifier "plVar7"))) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "plVar6 = (long *)*plVar7;" (assignment_expression "plVar6 = (long *)*plVar7" (identifier "plVar6") (= "=") (cast_expression "(long *)*plVar7" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar7" (* "*") (identifier "plVar7")))) (; ";")) (while_statement "while (plVar5 = plVar6, uVar1 != (uint)uVar3) {\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }" (while "while") (parenthesized_expression "(plVar5 = plVar6, uVar1 != (uint)uVar3)" (( "(") (comma_expression "plVar5 = plVar6, uVar1 != (uint)uVar3" (assignment_expression "plVar5 = plVar6" (identifier "plVar5") (= "=") (identifier "plVar6")) (, ",") (binary_expression "uVar1 != (uint)uVar3" (identifier "uVar1") (!= "!=") (cast_expression "(uint)uVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar3")))) () ")")) (compound_statement "{\n      plVar6 = (long *)*plVar5;\n      if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;\n    }" ({ "{") (expression_statement "plVar6 = (long *)*plVar5;" (assignment_expression "plVar6 = (long *)*plVar5" (identifier "plVar6") (= "=") (cast_expression "(long *)*plVar5" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar5" (* "*") (identifier "plVar5")))) (; ";")) (if_statement "if ((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))\n      goto LAB_00182218;" (if "if") (parenthesized_expression "((plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))" (( "(") (binary_expression "(plVar6 == (long *)0x0) ||\n         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2)" (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"))) () ")")) (|| "||") (parenthesized_expression "(uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2)" (( "(") (comma_expression "uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2" (assignment_expression "uVar3 = (ulong)*(uint *)(plVar6 + 1)" (identifier "uVar3") (= "=") (binary_expression "(ulong)*(uint *)(plVar6 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(plVar6 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 1)" (( "(") (binary_expression "plVar6 + 1" (identifier "plVar6") (+ "+") (number_literal "1")) () ")"))))) (, ",") (comma_expression "plVar7 = plVar5, uVar4 != uVar3 % uVar2" (assignment_expression "plVar7 = plVar5" (identifier "plVar7") (= "=") (identifier "plVar5")) (, ",") (binary_expression "uVar4 != uVar3 % uVar2" (identifier "uVar4") (!= "!=") (binary_expression "uVar3 % uVar2" (identifier "uVar3") (% "%") (identifier "uVar2"))))) () ")"))) () ")")) (goto_statement "goto LAB_00182218;" (goto "goto") (statement_identifier "LAB_00182218") (; ";"))) (} "}"))) (expression_statement "plVar7 = (long *)*plVar7;" (assignment_expression "plVar7 = (long *)*plVar7" (identifier "plVar7") (= "=") (cast_expression "(long *)*plVar7" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar7" (* "*") (identifier "plVar7")))) (; ";")) (if_statement "if (plVar7 != (long *)0x0) {\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }" (if "if") (parenthesized_expression "(plVar7 != (long *)0x0)" (( "(") (binary_expression "plVar7 != (long *)0x0" (identifier "plVar7") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      plVar6 = (long *)*plVar7;\n      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;\n      goto LAB_00182205;\n    }" ({ "{") (expression_statement "plVar6 = (long *)*plVar7;" (assignment_expression "plVar6 = (long *)*plVar7" (identifier "plVar6") (= "=") (cast_expression "(long *)*plVar7" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar7" (* "*") (identifier "plVar7")))) (; ";")) (if_statement "if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;" (if "if") (parenthesized_expression "(((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1)))" (( "(") (binary_expression "((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||\n         (uVar1 != *(uint *)(plVar6 + 1))" (parenthesized_expression "((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4))" (( "(") (binary_expression "(plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)" (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"))) () ")")) (|| "||") (parenthesized_expression "((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)" (( "(") (binary_expression "(ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4" (binary_expression "(ulong)*(uint *)(plVar6 + 1) % uVar2" (binary_expression "(ulong)*(uint *)(plVar6 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(plVar6 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 1)" (( "(") (binary_expression "plVar6 + 1" (identifier "plVar6") (+ "+") (number_literal "1")) () ")")))) (% "%") (identifier "uVar2")) (!= "!=") (identifier "uVar4")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar1 != *(uint *)(plVar6 + 1))" (( "(") (binary_expression "uVar1 != *(uint *)(plVar6 + 1)" (identifier "uVar1") (!= "!=") (pointer_expression "*(uint *)(plVar6 + 1)" (* "*") (cast_expression "(uint *)(plVar6 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 1)" (( "(") (binary_expression "plVar6 + 1" (identifier "plVar6") (+ "+") (number_literal "1")) () ")"))))) () ")"))) () ")")) (goto_statement "goto LAB_0018220d;" (goto "goto") (statement_identifier "LAB_0018220d") (; ";"))) (goto_statement "goto LAB_00182205;" (goto "goto") (statement_identifier "LAB_00182205") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00182218:\n  return ZEXT816(0);" (statement_identifier "LAB_00182218") (: ":") (return_statement "return ZEXT816(0);" (return "return") (call_expression "ZEXT816(0)" (identifier "ZEXT816") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";"))) (while_statement "while (*(uint *)(plVar6 + 1) == uVar1) {\nLAB_00182205:\n    plVar6 = (long *)*plVar6;\n    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;\n  }" (while "while") (parenthesized_expression "(*(uint *)(plVar6 + 1) == uVar1)" (( "(") (binary_expression "*(uint *)(plVar6 + 1) == uVar1" (pointer_expression "*(uint *)(plVar6 + 1)" (* "*") (cast_expression "(uint *)(plVar6 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 1)" (( "(") (binary_expression "plVar6 + 1" (identifier "plVar6") (+ "+") (number_literal "1")) () ")")))) (== "==") (identifier "uVar1")) () ")")) (compound_statement "{\nLAB_00182205:\n    plVar6 = (long *)*plVar6;\n    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;\n  }" ({ "{") (labeled_statement "LAB_00182205:\n    plVar6 = (long *)*plVar6;" (statement_identifier "LAB_00182205") (: ":") (expression_statement "plVar6 = (long *)*plVar6;" (assignment_expression "plVar6 = (long *)*plVar6" (identifier "plVar6") (= "=") (cast_expression "(long *)*plVar6" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar6" (* "*") (identifier "plVar6")))) (; ";"))) (if_statement "if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;" (if "if") (parenthesized_expression "((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4))" (( "(") (binary_expression "(plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)" (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"))) () ")")) (|| "||") (parenthesized_expression "((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)" (( "(") (binary_expression "(ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4" (binary_expression "(ulong)*(uint *)(plVar6 + 1) % uVar2" (binary_expression "(ulong)*(uint *)(plVar6 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(plVar6 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 1)" (( "(") (binary_expression "plVar6 + 1" (identifier "plVar6") (+ "+") (number_literal "1")) () ")")))) (% "%") (identifier "uVar2")) (!= "!=") (identifier "uVar4")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (labeled_statement "LAB_0018220d:\n  auVar8._8_8_ = plVar6;" (statement_identifier "LAB_0018220d") (: ":") (expression_statement "auVar8._8_8_ = plVar6;" (assignment_expression "auVar8._8_8_ = plVar6" (field_expression "auVar8._8_8_" (identifier "auVar8") (. ".") (field_identifier "_8_8_")) (= "=") (identifier "plVar6")) (; ";"))) (expression_statement "auVar8._0_8_ = plVar7;" (assignment_expression "auVar8._0_8_ = plVar7" (field_expression "auVar8._0_8_" (identifier "auVar8") (. ".") (field_identifier "_0_8_")) (= "=") (identifier "plVar7")) (; ";")) (return_statement "return auVar8;" (return "return") (identifier "auVar8") (; ";")) (} "}"))

/* DWARF original prototype:
   pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>_>
   equal_range(_Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_false>_>
   * this, key_type * __k) */

var_1<var_16::__detail::var_15<var_16::var_1<var_2,var_3>,var_4,var_4>,_std::__detail::var_15<var_16::var_1<var_2,var_3>,var_4,var_4>var_5>
 var_6
std::
var_9<var_10,_std::var_1<var_2,var_3>,_std::allocator<var_16::var_1<var_2,var_3>var_5>,_std::__detail::_Select1st,_std::var_11<var_10>,_std::var_12<var_10>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_7<false,var_4,var_4>var_5>
::var_8(var_9<var_10,_std::var_1<var_2,var_3>,_std::allocator<var_16::var_1<var_2,var_3>var_5>,_std::__detail::_Select1st,_std::var_11<var_10>,_std::var_12<var_10>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_7<false,var_4,var_4>var_5>
              *this,var_13 *var_14)

{
  type_1 var_23;
  type_1 var_28;
  type_2 var_21;
  type_3 *var_25;
  var_15<var_16::var_1<var_2,var_3>,var_4,var_4> var_17;
  type_2 var_27;
  type_2 var_26;
  type_4 p_Var8;
  var_18<var_16::var_1<var_2,var_3>,var_4> var_19;
  type_4 var_22;
  var_1<var_16::__detail::var_15<var_16::var_1<var_2,var_3>,var_4,var_4>,_std::__detail::var_15<var_16::var_1<var_2,var_3>,var_4,var_4>var_5>
  var_20;
  
  var_23 = (type_1)*var_14;
  var_21 = this->_M_bucket_count;
  var_26 = (type_2)(type_5)var_23 % var_21;
  var_22 = this->_M_buckets[var_26];
  if (var_22 != (type_4)0x0) {
    var_27 = (type_2)*(type_5 *)&var_22->_M_nxt[1]._M_nxt;
    var_25 = var_22->_M_nxt;
    while (p_Var8 = var_25, var_23 != var_24(var_27,0)) {
      var_25 = p_Var8->_M_nxt;
      if ((var_25 == (type_3 *)0x0) ||
         (var_27 = (type_2)*(type_5 *)&var_25[1]._M_nxt, var_22 = p_Var8, var_26 != var_27 % var_21))
      goto LAB_00182218;
    }
    var_17.super__Node_iterator_base<var_16::var_1<var_2,var_3>,var_4>._M_cur =
         (var_18<var_16::var_1<var_2,var_3>,var_4>)var_22->_M_nxt;
    if (var_17.super__Node_iterator_base<var_16::var_1<var_2,var_3>,var_4>._M_cur
        != (type_6 *)0x0) {
      var_19._M_cur = *(type_6 **)
                      var_17.
                      super__Node_iterator_base<var_16::var_1<var_2,var_3>,var_4>.
                      _M_cur;
      if (((var_19._M_cur == (type_6 *)0x0) ||
          (var_28 = ((var_19._M_cur)->
                   super__Hash_node_value_base<var_16::var_1<var_2,var_3>var_5>).
                   _M_storage._M_storage.__align, (type_2)(type_5)var_28 % var_21 != var_26)) ||
         (var_23 != var_28)) goto LAB_0018220d;
      goto LAB_00182205;
    }
  }
LAB_00182218:
  return (var_1<var_16::__detail::var_15<var_16::var_1<var_2,var_3>,var_4,var_4>,_std::__detail::var_15<var_16::var_1<var_2,var_3>,var_4,var_4>var_5>
          )var_29(0);
  while (var_28 == var_23) {
LAB_00182205:
    var_19._M_cur = (type_6 *)
                   ((var_19._M_cur)->
                   super__Hash_node_value_base<var_16::var_1<var_2,var_3>var_5>).
                   super__Hash_node_base._M_nxt;
    if ((var_19._M_cur == (type_6 *)0x0) ||
       (var_28 = ((var_19._M_cur)->
                super__Hash_node_value_base<var_16::var_1<var_2,var_3>var_5>).
                _M_storage._M_storage.__align, (type_2)(type_5)var_28 % var_21 != var_26)) break;
  }
LAB_0018220d:
  var_20.second.super__Node_iterator_base<var_16::var_1<var_2,var_3>,var_4>._M_cur
       = (var_18<var_16::var_1<var_2,var_3>,var_4>)
         (var_18<var_16::var_1<var_2,var_3>,var_4>)var_19._M_cur;
  var_20.first.super__Node_iterator_base<var_16::var_1<var_2,var_3>,var_4>._M_cur
       = var_17.super__Node_iterator_base<var_16::var_1<var_2,var_3>,var_4>._M_cur;
  return var_20;
}


(translation_unit (expression_statement (subscript_expression argument: (identifier) index: (number_literal)) (MISSING ";")) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)))) (MISSING ";")) (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (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: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))) (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: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (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 (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) 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: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))))) consequence: (goto_statement label: (statement_identifier))))) (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: (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: (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: (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 (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (return_statement (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (labeled_statement label: (statement_identifier) (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 (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)) right: (identifier))))) consequence: (break_statement)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (return_statement (identifier))))

undefined1  [16] MASKED(long *param_1,uint *param_2)

{
  uint uVar1;
  ulong uVar2;
  ulong uVar3;
  ulong uVar4;
  long *plVar5;
  long *plVar6;
  long *plVar7;
  undefined1 auVar8 [16];
  
  uVar1 = *param_2;
  uVar2 = param_1[1];
  uVar4 = (ulong)uVar1 % uVar2;
  plVar7 = *(long **)(*param_1 + uVar4 * 8);
  if (plVar7 != (long *)0x0) {
    uVar3 = (ulong)*(uint *)((long *)*plVar7 + 1);
    plVar6 = (long *)*plVar7;
    while (plVar5 = plVar6, uVar1 != (uint)uVar3) {
      plVar6 = (long *)*plVar5;
      if ((plVar6 == (long *)0x0) ||
         (uVar3 = (ulong)*(uint *)(plVar6 + 1), plVar7 = plVar5, uVar4 != uVar3 % uVar2))
      goto LAB_00182218;
    }
    plVar7 = (long *)*plVar7;
    if (plVar7 != (long *)0x0) {
      plVar6 = (long *)*plVar7;
      if (((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) ||
         (uVar1 != *(uint *)(plVar6 + 1))) goto LAB_0018220d;
      goto LAB_00182205;
    }
  }
LAB_00182218:
  return ZEXT816(0);
  while (*(uint *)(plVar6 + 1) == uVar1) {
LAB_00182205:
    plVar6 = (long *)*plVar6;
    if ((plVar6 == (long *)0x0) || ((ulong)*(uint *)(plVar6 + 1) % uVar2 != uVar4)) break;
  }
LAB_0018220d:
  auVar8._8_8_ = plVar6;
  auVar8._0_8_ = plVar7;
  return auVar8;
}

