
/* DWARF original prototype: iterator
   find(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
   * this, key_type.conflict * __k) */

iterator __thiscall
std::
_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
::find(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
       *this,key_type_conflict *__k)

{
  __node_base *p_Var1;
  key_type_conflict *in_a2;
  __hash_code in_a3;
  
  if ((uint)*__k == 0) {
    trap(7);
  }
  p_Var1 = _M_find_before_node((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
                                *)__k,(uint)*in_a2 % (uint)*__k,in_a2,in_a3);
  if ((p_Var1 != (__node_base *)0x0) && (p_Var1->_M_nxt != (_Hash_node_base *)0x0)) {
    (((__node_type *)this)->
    super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).
    super__Hash_node_base._M_nxt = p_Var1->_M_nxt;
    return (iterator)(_Node_iterator_base<std::pair<long_long_int_const,_long_long_int>,_false>)this
    ;
  }
  (((__node_type *)this)->
  super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).super__Hash_node_base
  ._M_nxt = (_Hash_node_base *)0x0;
  return (iterator)(_Node_iterator_base<std::pair<long_long_int_const,_long_long_int>,_false>)this;
}



/* std::_Hashtable<long long, std::pair<long long const, long long>, std::allocator<std::pair<long
   long const, long long> >, std::__detail::_Select1st, std::equal_to<long long>, std::hash<long
   long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
   std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>
   >::find(long long const&) */

longlong *
std::
_Hashtable<long_long,std::pair<long_long_const,long_long>,std::allocator<std::pair<long_long_const,long_long>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>
::find(longlong *param_1)

{
  int *piVar1;
  int in_a1;
  int in_a2;
  
  if (*(uint *)(in_a1 + 4) == 0) {
    trap(7);
  }
  piVar1 = (int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4));
  if ((piVar1 != (int *)0x0) && (*piVar1 != 0)) {
    *(int *)param_1 = *piVar1;
    return param_1;
  }
  *(int *)param_1 = 0;
  return param_1;
}


lui gp,0x1b
addiu gp,gp,-0xa30
addu gp,gp,t9
lw v1,0x4(a1)
or t3,a0,zero
lw v0,0x4(a2)
or a0,a1,zero
lw t9,-0x4804(gp)
addiu sp,sp,-0x20
teq v1,zero
divu v0,v1
addiu t9,t9,0x6b70
sw gp,0x10(sp)
sw ra,0x1c(sp)
bal 0x00286b70
_mfhi a1
beq v0,zero,0x0028ac64
_lw ra,0x1c(sp)
lw v0,0x0(v0)
beq v0,zero,0x0028ac64
_nop
sw v0,0x0(t3)
or v0,t3,zero
jr ra
_addiu sp,sp,0x20
or v0,t3,zero
sw zero,0x0(t3)
jr ra
_addiu sp,sp,0x20
(translation_unit "/* std::_Hashtable<long long, std::pair<long long const, long long>, std::allocator<std::pair<long\n   long const, long long> >, std::__detail::_Select1st, std::equal_to<long long>, std::hash<long\n   long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,\n   std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>\n   >::find(long long const&) */\n\nlonglong *\nstd::\n_Hashtable<long_long,std::pair<long_long_const,long_long>,std::allocator<std::pair<long_long_const,long_long>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;\n  int in_a1;\n  int in_a2;\n  \n  if (*(uint *)(in_a1 + 4) == 0) {\n    trap(7);\n  }\n  piVar1 = (int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4));\n  if ((piVar1 != (int *)0x0) && (*piVar1 != 0)) {\n    *(int *)param_1 = *piVar1;\n    return param_1;\n  }\n  *(int *)param_1 = 0;\n  return param_1;\n}\n\n" comment (ERROR "longlong *\nstd::\n_Hashtable<long_long," (binary_expression "longlong *\nstd::\n_Hashtable<long_long" (binary_expression "longlong *\nstd" identifier * identifier) (ERROR "::\n_Hashtable" : : identifier) < identifier) ,) (labeled_statement "std::pair<long_long_const,long_long>,std::allocator<std::pair<long_long_const,long_long>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" statement_identifier (ERROR "::pair<long_long_const,long_long>,std::allocator<std::pair<long_long_const,long_long>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std:" : : (comma_expression "pair<long_long_const,long_long>,std" (binary_expression "pair<long_long_const" identifier < identifier) , (binary_expression "long_long>,std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_const,long_long>>,std" (binary_expression "pair<long_long_const" identifier < identifier) , (binary_expression "long_long>>,std" identifier >> (ERROR "," ,) identifier)) : : (comma_expression "__detail::_Select1st,std::equal_to<long_long>,std" identifier (ERROR "::_Select1st,std::equal_to<long_long>" : : (comma_expression "_Select1st,std" identifier , identifier) : : (binary_expression "equal_to<long_long" identifier < identifier) >) , identifier) : : (binary_expression "hash<long_long>,std" (binary_expression "hash<long_long" 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,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" 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,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" 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,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" statement_identifier : (ERROR ":_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{" : (comma_expression "_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "false,true>>\n::find(longlong *param_1)" false , (binary_expression "true>>\n::find(longlong *param_1)" true >> (ERROR "::" : :) (call_expression "find(longlong *param_1)" identifier (argument_list "(longlong *param_1)" ( (binary_expression "longlong *param_1" identifier * identifier) )))))) {) (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;)))))) (declaration "int in_a1;" primitive_type identifier ;) (declaration "int in_a2;" primitive_type identifier ;) (if_statement "if (*(uint *)(in_a1 + 4) == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(*(uint *)(in_a1 + 4) == 0)" ( (binary_expression "*(uint *)(in_a1 + 4) == 0" (pointer_expression "*(uint *)(in_a1 + 4)" * (cast_expression "(uint *)(in_a1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a1 + 4)" ( (binary_expression "in_a1 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = (int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4));" (assignment_expression "piVar1 = (int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4))" identifier = (cast_expression "(int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4))" identifier (argument_list "(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4))" ( identifier , (binary_expression "*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4)" (pointer_expression "*(uint *)(in_a2 + 4)" * (cast_expression "(uint *)(in_a2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a2 + 4)" ( (binary_expression "in_a2 + 4" identifier + number_literal) )))) % (pointer_expression "*(uint *)(in_a1 + 4)" * (cast_expression "(uint *)(in_a1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a1 + 4)" ( (binary_expression "in_a1 + 4" identifier + number_literal) ))))) ))))) ;) (if_statement "if ((piVar1 != (int *)0x0) && (*piVar1 != 0)) {\n    *(int *)param_1 = *piVar1;\n    return param_1;\n  }" if (parenthesized_expression "((piVar1 != (int *)0x0) && (*piVar1 != 0))" ( (binary_expression "(piVar1 != (int *)0x0) && (*piVar1 != 0)" (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) ))) )) (compound_statement "{\n    *(int *)param_1 = *piVar1;\n    return param_1;\n  }" { (expression_statement "*(int *)param_1 = *piVar1;" (assignment_expression "*(int *)param_1 = *piVar1" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*piVar1" * identifier)) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "*(int *)param_1 = 0;" (assignment_expression "*(int *)param_1 = 0" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return param_1;" return identifier ;) (ERROR "}" }))
(translation_unit "/* DWARF original prototype: iterator\n   find(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n   * this, key_type.conflict * __k) */\n\niterator __thiscall\nstd::\n_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n::find(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n       *this,key_type_conflict *__k)\n\n{\n  __node_base *p_Var1;\n  key_type_conflict *in_a2;\n  __hash_code in_a3;\n  \n  if ((uint)*__k == 0) {\n    trap(7);\n  }\n  p_Var1 = _M_find_before_node((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                                *)__k,(uint)*in_a2 % (uint)*__k,in_a2,in_a3);\n  if ((p_Var1 != (__node_base *)0x0) && (p_Var1->_M_nxt != (_Hash_node_base *)0x0)) {\n    (((__node_type *)this)->\n    super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).\n    super__Hash_node_base._M_nxt = p_Var1->_M_nxt;\n    return (iterator)(_Node_iterator_base<std::pair<long_long_int_const,_long_long_int>,_false>)this\n    ;\n  }\n  (((__node_type *)this)->\n  super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).super__Hash_node_base\n  ._M_nxt = (_Hash_node_base *)0x0;\n  return (iterator)(_Node_iterator_base<std::pair<long_long_int_const,_long_long_int>,_false>)this;\n}\n\n" comment (declaration "iterator __thiscall\nstd::\n_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n::find(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n       *this,key_type_conflict *__k)\n\n{\n  __node_base *p_Var1;" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::\n_Hashtable<" identifier : : identifier <) identifier , (ERROR "_std::pair<" identifier : : identifier <) identifier , identifier (ERROR ">" >) , (ERROR "_std::allocator<std::pair<" identifier : : identifier < identifier : : identifier <) identifier , identifier (ERROR ">_>" > identifier >) , (ERROR "_std::__detail::" identifier : : identifier : :) identifier , (ERROR "_std::equal_to<" identifier : : identifier <) identifier (ERROR ">" >) , (ERROR "_std::hash<" identifier : : 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 : :) identifier (ERROR "<false" < false) , identifier , (ERROR "_true>_>\n::find(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n       *this,key_type_conflict *__k)\n\n{\n  __node_base" identifier > identifier > : : (function_declarator "find(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n       *this,key_type_conflict *__k)" identifier (parameter_list "(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n       *this,key_type_conflict *__k)" ( (parameter_declaration "_Hashtable<long_long_int" type_identifier (ERROR "<" <) identifier) , (parameter_declaration "_std::pair<long_long_int_const" type_identifier (ERROR "::pair<" : : identifier <) identifier) , (parameter_declaration "_long_long_int" type_identifier) (ERROR ">" >) , (parameter_declaration "_std::allocator<std::pair<long_long_int_const" type_identifier (ERROR "::allocator<std::pair<" : : identifier < identifier : : identifier <) identifier) , (parameter_declaration "_long_long_int>_" type_identifier (ERROR ">" >) identifier) (ERROR ">" >) , (parameter_declaration "_std::__detail::_Select1st" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::equal_to<long_long_int" type_identifier (ERROR "::equal_to<" : : identifier <) identifier) (ERROR ">" >) , (parameter_declaration "_std::hash<long_long_int" type_identifier (ERROR "::hash<" : : identifier <) identifier) (ERROR ">" >) , (parameter_declaration "_std::__detail::_Mod_range_hashing" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Default_ranged_hash" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Prime_rehash_policy" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) , (parameter_declaration "_std::__detail::_Hashtable_traits" type_identifier (ERROR "::__detail::" : : identifier : :) identifier) (ERROR "<false" < false) , (parameter_declaration "_false" type_identifier) , (parameter_declaration "_true>_>\n       *this" type_identifier (ERROR ">_>" > identifier >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "key_type_conflict *__k" type_identifier (pointer_declarator "*__k" * identifier)) ))) { identifier) (pointer_declarator "*p_Var1" * identifier) ;) (declaration "key_type_conflict *in_a2;" type_identifier (pointer_declarator "*in_a2" * identifier) ;) (declaration "__hash_code in_a3;" type_identifier identifier ;) (if_statement "if ((uint)*__k == 0) {\n    trap(7);\n  }" if (parenthesized_expression "((uint)*__k == 0)" ( (binary_expression "(uint)*__k == 0" (binary_expression "(uint)*__k" (parenthesized_expression "(uint)" ( identifier )) * identifier) == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "p_Var1 = _M_find_before_node((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                                *)__k,(uint)*in_a2 % (uint)*__k,in_a2,in_a3);" (assignment_expression "p_Var1 = _M_find_before_node((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                                *)__k,(uint)*in_a2 % (uint)*__k,in_a2,in_a3)" identifier = (call_expression "_M_find_before_node((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                                *)__k,(uint)*in_a2 % (uint)*__k,in_a2,in_a3)" identifier (argument_list "((_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                                *)__k,(uint)*in_a2 % (uint)*__k,in_a2,in_a3)" ( (parenthesized_expression "(_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                                *)__k,(uint)*in_a2 % (uint)*__k,in_a2,in_a3)" ( (ERROR "_Hashtable<long_long_int,_std::pair<long_long_int_const,_long_long_int>,_std::allocator<std::pair<long_long_int_const,_long_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_long_int>,_std::hash<long_long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<long_long_int,_std" (binary_expression "_Hashtable<long_long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_long_int_const,_long_long_int>,_std" (binary_expression "pair<long_long_int_const" identifier < identifier) , (binary_expression "_long_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_int_const,_long_long_int>_>,_std" (binary_expression "pair<long_long_int_const" identifier < identifier) , (binary_expression "_long_long_int>_>,_std" (binary_expression "_long_long_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_long_int>,_std" (binary_expression "equal_to<long_long_int" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<long_long_int>,_std" (binary_expression "hash<long_long_int" identifier < identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<false,_false,_true>_>\n                                *)__k,(uint)*in_a2 % (uint)*__k,in_a2,in_a3" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n                                *)__k,(uint)*in_a2 % (uint)*__k,in_a2,in_a3" identifier , (comma_expression "_true>_>\n                                *)__k,(uint)*in_a2 % (uint)*__k,in_a2,in_a3" (binary_expression "_true>_>\n                                *)__k" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)__k" * (ERROR ")" )) identifier)) , (comma_expression "(uint)*in_a2 % (uint)*__k,in_a2,in_a3" (binary_expression "(uint)*in_a2 % (uint)*__k" (binary_expression "(uint)*in_a2 % (uint)" (binary_expression "(uint)*in_a2" (parenthesized_expression "(uint)" ( identifier )) * identifier) % (parenthesized_expression "(uint)" ( identifier ))) * identifier) , (comma_expression "in_a2,in_a3" identifier , identifier))))) )) )))) ;) (if_statement "if ((p_Var1 != (__node_base *)0x0) && (p_Var1->_M_nxt != (_Hash_node_base *)0x0)) {\n    (((__node_type *)this)->\n    super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).\n    super__Hash_node_base._M_nxt = p_Var1->_M_nxt;\n    return (iterator)(_Node_iterator_base<std::pair<long_long_int_const,_long_long_int>,_false>)this\n    ;\n  }" if (parenthesized_expression "((p_Var1 != (__node_base *)0x0) && (p_Var1->_M_nxt != (_Hash_node_base *)0x0))" ( (binary_expression "(p_Var1 != (__node_base *)0x0) && (p_Var1->_M_nxt != (_Hash_node_base *)0x0)" (parenthesized_expression "(p_Var1 != (__node_base *)0x0)" ( (binary_expression "p_Var1 != (__node_base *)0x0" identifier != (cast_expression "(__node_base *)0x0" ( (type_descriptor "__node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(p_Var1->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var1->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var1->_M_nxt" identifier -> field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    (((__node_type *)this)->\n    super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).\n    super__Hash_node_base._M_nxt = p_Var1->_M_nxt;\n    return (iterator)(_Node_iterator_base<std::pair<long_long_int_const,_long_long_int>,_false>)this\n    ;\n  }" { (expression_statement "(((__node_type *)this)->\n    super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).\n    super__Hash_node_base._M_nxt = p_Var1->_M_nxt;" (assignment_expression "(((__node_type *)this)->\n    super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).\n    super__Hash_node_base._M_nxt = p_Var1->_M_nxt" (field_expression "(((__node_type *)this)->\n    super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).\n    super__Hash_node_base._M_nxt" (field_expression "(((__node_type *)this)->\n    super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).\n    super__Hash_node_base" (parenthesized_expression "(((__node_type *)this)->\n    super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>)" ( (comma_expression "((__node_type *)this)->\n    super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_" (binary_expression "((__node_type *)this)->\n    super__Hash_node_value_base<std::pair<long_long_int_const" (binary_expression "((__node_type *)this)->\n    super__Hash_node_value_base<std" (field_expression "((__node_type *)this)->\n    super__Hash_node_value_base" (parenthesized_expression "((__node_type *)this)" ( (cast_expression "(__node_type *)this" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_long_int>_" identifier > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier) = (field_expression "p_Var1->_M_nxt" identifier -> field_identifier)) ;) (return_statement "return (iterator)(_Node_iterator_base<std::pair<long_long_int_const,_long_long_int>,_false>)this\n    ;" return (call_expression "(iterator)(_Node_iterator_base<std::pair<long_long_int_const,_long_long_int>,_false>)this" (parenthesized_expression "(iterator)" ( identifier )) (argument_list "(_Node_iterator_base<std::pair<long_long_int_const,_long_long_int>,_false>)this" ( (binary_expression "_Node_iterator_base<std::pair<long_long_int_const" (binary_expression "_Node_iterator_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_long_int>,_false>)this" (binary_expression "_long_long_int>,_false" identifier > (ERROR "," ,) identifier) > (ERROR ")" )) identifier) ))) ;) })) (expression_statement "(((__node_type *)this)->\n  super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).super__Hash_node_base\n  ._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "(((__node_type *)this)->\n  super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).super__Hash_node_base\n  ._M_nxt = (_Hash_node_base *)0x0" (field_expression "(((__node_type *)this)->\n  super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).super__Hash_node_base\n  ._M_nxt" (field_expression "(((__node_type *)this)->\n  super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>).super__Hash_node_base" (parenthesized_expression "(((__node_type *)this)->\n  super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_>)" ( (comma_expression "((__node_type *)this)->\n  super__Hash_node_value_base<std::pair<long_long_int_const,_long_long_int>_" (binary_expression "((__node_type *)this)->\n  super__Hash_node_value_base<std::pair<long_long_int_const" (binary_expression "((__node_type *)this)->\n  super__Hash_node_value_base<std" (field_expression "((__node_type *)this)->\n  super__Hash_node_value_base" (parenthesized_expression "((__node_type *)this)" ( (cast_expression "(__node_type *)this" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_long_int>_" identifier > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (ERROR "return (iterator)(_Node_iterator_base<std::pair<long_long_int_const,_long_long_int>,_false>)this;\n}" return (parenthesized_expression "(iterator)" ( identifier )) ( (binary_expression "_Node_iterator_base<std::pair<long_long_int_const" (binary_expression "_Node_iterator_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_long_int>,_false>)this" (binary_expression "_long_long_int>,_false" identifier > (ERROR "," ,) identifier) > (ERROR ")" )) identifier) ; }))
(translation_unit "longlong *\nstd::\n_Hashtable<long_long,std::pair<long_long_const,long_long>,std::allocator<std::pair<long_long_const,long_long>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;\n  int in_a1;\n  int in_a2;\n  \n  if (*(uint *)(in_a1 + 4) == 0) {\n    trap(7);\n  }\n  piVar1 = (int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4));\n  if ((piVar1 != (int *)0x0) && (*piVar1 != 0)) {\n    *(int *)param_1 = *piVar1;\n    return param_1;\n  }\n  *(int *)param_1 = 0;\n  return param_1;\n}\n\n" (ERROR "longlong *\nstd::\n_Hashtable<long_long," (binary_expression "longlong *\nstd::\n_Hashtable<long_long" (binary_expression "longlong *\nstd" identifier * identifier) (ERROR "::\n_Hashtable" : : identifier) < identifier) ,) (labeled_statement "std::pair<long_long_const,long_long>,std::allocator<std::pair<long_long_const,long_long>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" statement_identifier (ERROR "::pair<long_long_const,long_long>,std::allocator<std::pair<long_long_const,long_long>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std:" : : (comma_expression "pair<long_long_const,long_long>,std" (binary_expression "pair<long_long_const" identifier < identifier) , (binary_expression "long_long>,std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_long_const,long_long>>,std" (binary_expression "pair<long_long_const" identifier < identifier) , (binary_expression "long_long>>,std" identifier >> (ERROR "," ,) identifier)) : : (comma_expression "__detail::_Select1st,std::equal_to<long_long>,std" identifier (ERROR "::_Select1st,std::equal_to<long_long>" : : (comma_expression "_Select1st,std" identifier , identifier) : : (binary_expression "equal_to<long_long" identifier < identifier) >) , identifier) : : (binary_expression "hash<long_long>,std" (binary_expression "hash<long_long" 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,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" 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,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" 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,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" statement_identifier : (ERROR ":_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{" : (comma_expression "_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "false,true>>\n::find(longlong *param_1)" false , (binary_expression "true>>\n::find(longlong *param_1)" true >> (ERROR "::" : :) (call_expression "find(longlong *param_1)" identifier (argument_list "(longlong *param_1)" ( (binary_expression "longlong *param_1" identifier * identifier) )))))) {) (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;)))))) (declaration "int in_a1;" primitive_type identifier ;) (declaration "int in_a2;" primitive_type identifier ;) (if_statement "if (*(uint *)(in_a1 + 4) == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(*(uint *)(in_a1 + 4) == 0)" ( (binary_expression "*(uint *)(in_a1 + 4) == 0" (pointer_expression "*(uint *)(in_a1 + 4)" * (cast_expression "(uint *)(in_a1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a1 + 4)" ( (binary_expression "in_a1 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar1 = (int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4));" (assignment_expression "piVar1 = (int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4))" identifier = (cast_expression "(int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4))" identifier (argument_list "(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4))" ( identifier , (binary_expression "*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4)" (pointer_expression "*(uint *)(in_a2 + 4)" * (cast_expression "(uint *)(in_a2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a2 + 4)" ( (binary_expression "in_a2 + 4" identifier + number_literal) )))) % (pointer_expression "*(uint *)(in_a1 + 4)" * (cast_expression "(uint *)(in_a1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a1 + 4)" ( (binary_expression "in_a1 + 4" identifier + number_literal) ))))) ))))) ;) (if_statement "if ((piVar1 != (int *)0x0) && (*piVar1 != 0)) {\n    *(int *)param_1 = *piVar1;\n    return param_1;\n  }" if (parenthesized_expression "((piVar1 != (int *)0x0) && (*piVar1 != 0))" ( (binary_expression "(piVar1 != (int *)0x0) && (*piVar1 != 0)" (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) ))) )) (compound_statement "{\n    *(int *)param_1 = *piVar1;\n    return param_1;\n  }" { (expression_statement "*(int *)param_1 = *piVar1;" (assignment_expression "*(int *)param_1 = *piVar1" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*piVar1" * identifier)) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "*(int *)param_1 = 0;" (assignment_expression "*(int *)param_1 = 0" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (return_statement "return param_1;" return identifier ;) (ERROR "}" }))
(translation_unit (ERROR (binary_expression (binary_expression IDENT * IDENT) (ERROR : : IDENT) < IDENT) ,) (labeled_statement statement_identifier (ERROR : : (comma_expression (binary_expression IDENT < IDENT) , (binary_expression IDENT > (ERROR ,) IDENT)) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression IDENT < IDENT) , (binary_expression IDENT >> (ERROR ,) IDENT)) : : (comma_expression IDENT (ERROR : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) >) , IDENT) : : (binary_expression (binary_expression IDENT < IDENT) > (ERROR ,) IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier : (ERROR : (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (binary_expression BOOL >> (ERROR : :) (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) )))))) {) (declaration TYPE (pointer_declarator * IDENT) ;)))))) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * IDENT)) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (return_statement return IDENT ;) (ERROR }))
(ERROR "longlong *\nstd::\n_Hashtable<long_long," (binary_expression "longlong *\nstd::\n_Hashtable<long_long" (binary_expression "longlong *\nstd" (identifier "longlong") (* "*") (identifier "std")) (ERROR "::\n_Hashtable" (: ":") (: ":") (identifier "_Hashtable")) (< "<") (identifier "long_long")) (, ",")) (labeled_statement "std::pair<long_long_const,long_long>,std::allocator<std::pair<long_long_const,long_long>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" (statement_identifier "std") (ERROR "::pair<long_long_const,long_long>,std::allocator<std::pair<long_long_const,long_long>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std:" (: ":") (: ":") (comma_expression "pair<long_long_const,long_long>,std" (binary_expression "pair<long_long_const" (identifier "pair") (< "<") (identifier "long_long_const")) (, ",") (binary_expression "long_long>,std" (identifier "long_long") (> ">") (ERROR "," (, ",")) (identifier "std"))) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (comma_expression "pair<long_long_const,long_long>>,std" (binary_expression "pair<long_long_const" (identifier "pair") (< "<") (identifier "long_long_const")) (, ",") (binary_expression "long_long>>,std" (identifier "long_long") (>> ">>") (ERROR "," (, ",")) (identifier "std"))) (: ":") (: ":") (comma_expression "__detail::_Select1st,std::equal_to<long_long>,std" (identifier "__detail") (ERROR "::_Select1st,std::equal_to<long_long>" (: ":") (: ":") (comma_expression "_Select1st,std" (identifier "_Select1st") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "equal_to<long_long" (identifier "equal_to") (< "<") (identifier "long_long")) (> ">")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "hash<long_long>,std" (binary_expression "hash<long_long" (identifier "hash") (< "<") (identifier "long_long")) (> ">") (ERROR "," (, ",")) (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" (statement_identifier "__detail") (ERROR "::_Mod_range_hashing,std:" (: ":") (: ":") (comma_expression "_Mod_range_hashing,std" (identifier "_Mod_range_hashing") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" (statement_identifier "__detail") (ERROR "::_Default_ranged_hash,std:" (: ":") (: ":") (comma_expression "_Default_ranged_hash,std" (identifier "_Default_ranged_hash") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" (statement_identifier "__detail") (ERROR "::_Prime_rehash_policy,std:" (: ":") (: ":") (comma_expression "_Prime_rehash_policy,std" (identifier "_Prime_rehash_policy") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{\n  int *piVar1;" (statement_identifier "__detail") (: ":") (ERROR ":_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)\n\n{" (: ":") (comma_expression "_Hashtable_traits<false,false,true>>\n::find(longlong *param_1)" (binary_expression "_Hashtable_traits<false" (identifier "_Hashtable_traits") (< "<") (false "false")) (, ",") (comma_expression "false,true>>\n::find(longlong *param_1)" (false "false") (, ",") (binary_expression "true>>\n::find(longlong *param_1)" (true "true") (>> ">>") (ERROR "::" (: ":") (: ":")) (call_expression "find(longlong *param_1)" (identifier "find") (argument_list "(longlong *param_1)" (( "(") (binary_expression "longlong *param_1" (identifier "longlong") (* "*") (identifier "param_1")) () ")")))))) ({ "{")) (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";"))))))) (declaration "int in_a1;" (primitive_type "int") (identifier "in_a1") (; ";")) (declaration "int in_a2;" (primitive_type "int") (identifier "in_a2") (; ";")) (if_statement "if (*(uint *)(in_a1 + 4) == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(*(uint *)(in_a1 + 4) == 0)" (( "(") (binary_expression "*(uint *)(in_a1 + 4) == 0" (pointer_expression "*(uint *)(in_a1 + 4)" (* "*") (cast_expression "(uint *)(in_a1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_a1 + 4)" (( "(") (binary_expression "in_a1 + 4" (identifier "in_a1") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = (int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4));" (assignment_expression "piVar1 = (int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4))" (identifier "piVar1") (= "=") (cast_expression "(int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4))" (identifier "FUN_00286b70") (argument_list "(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4))" (( "(") (identifier "in_a1") (, ",") (binary_expression "*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4)" (pointer_expression "*(uint *)(in_a2 + 4)" (* "*") (cast_expression "(uint *)(in_a2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_a2 + 4)" (( "(") (binary_expression "in_a2 + 4" (identifier "in_a2") (+ "+") (number_literal "4")) () ")")))) (% "%") (pointer_expression "*(uint *)(in_a1 + 4)" (* "*") (cast_expression "(uint *)(in_a1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_a1 + 4)" (( "(") (binary_expression "in_a1 + 4" (identifier "in_a1") (+ "+") (number_literal "4")) () ")"))))) () ")"))))) (; ";")) (if_statement "if ((piVar1 != (int *)0x0) && (*piVar1 != 0)) {\n    *(int *)param_1 = *piVar1;\n    return param_1;\n  }" (if "if") (parenthesized_expression "((piVar1 != (int *)0x0) && (*piVar1 != 0))" (( "(") (binary_expression "(piVar1 != (int *)0x0) && (*piVar1 != 0)" (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*piVar1 != 0)" (( "(") (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    *(int *)param_1 = *piVar1;\n    return param_1;\n  }" ({ "{") (expression_statement "*(int *)param_1 = *piVar1;" (assignment_expression "*(int *)param_1 = *piVar1" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "*(int *)param_1 = 0;" (assignment_expression "*(int *)param_1 = 0" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (= "=") (number_literal "0")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (ERROR "}" (} "}"))
(translation_unit (ERROR (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR (identifier)) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) (comma_expression left: (identifier) (ERROR (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier))) right: (identifier)) (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (binary_expression left: (identifier) right: (false)) right: (comma_expression left: (false) right: (binary_expression left: (true) (ERROR) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (if_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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (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))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (identifier)))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (return_statement (identifier)) (ERROR))

/* std::_Hashtable<long long, std::pair<long long const, long long>, std::allocator<std::pair<long
   long const, long long> >, std::__detail::_Select1st, std::equal_to<long long>, std::hash<long
   long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash,
   std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>
   >::MASKED(long long const&) */

longlong *
std::
_Hashtable<long_long,std::pair<long_long_const,long_long>,std::allocator<std::pair<long_long_const,long_long>>,std::__detail::_Select1st,std::equal_to<long_long>,std::hash<long_long>,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<false,false,true>>
::MASKED(longlong *param_1)

{
  int *piVar1;
  int in_a1;
  int in_a2;
  
  if (*(uint *)(in_a1 + 4) == 0) {
    trap(7);
  }
  piVar1 = (int *)FUN_00286b70(in_a1,*(uint *)(in_a2 + 4) % *(uint *)(in_a1 + 4));
  if ((piVar1 != (int *)0x0) && (*piVar1 != 0)) {
    *(int *)param_1 = *piVar1;
    return param_1;
  }
  *(int *)param_1 = 0;
  return param_1;
}

