
/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: bool is_ctors_in_init_array(Layout * this, Relobj * relobj, uint shndx)
    */

bool __thiscall gold::Layout::is_ctors_in_init_array(Layout *this,Relobj *relobj,uint shndx)

{
  __node_base *p_Var1;
  bool bVar2;
  key_type local_14 [2];
  undefined4 uStack_4;
  
  uStack_4 = 0x9e8a5;
  local_14[0].first = relobj;
  local_14[0].second = shndx;
  p_Var1 = std::
           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
           ::_M_find_before_node
                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                       *)&ctors_sections_in_init_array,
                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,
                      local_14,(uint)relobj ^ shndx);
  bVar2 = false;
  if (p_Var1 != (__node_base *)0x0) {
    bVar2 = p_Var1->_M_nxt != (_Hash_node_base *)0x0;
  }
  return bVar2;
}



/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

bool FUN_0009e8a0(undefined4 param_1,uint param_2,uint param_3)

{
  int *piVar1;
  bool bVar2;
  uint local_14;
  uint local_10;
  undefined4 uStack_4;
  
  uStack_4 = 0x9e8a5;
  local_14 = param_2;
  local_10 = param_3;
  piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,
                               param_2 ^ param_3);
  bVar2 = false;
  if (piVar1 != (int *)0x0) {
    bVar2 = *piVar1 != 0;
  }
  return bVar2;
}


CALL 0x000650b8
ADD ECX,0x2f075b
SUB ESP,0x1c
MOV EDX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x8],EAX
XOR EAX,EDX
MOV dword ptr [ESP + 0xc],EDX
PUSH EAX
LEA EDX,[ESP + 0xc]
PUSH EDX
XOR EDX,EDX
DIV dword ptr [ECX + 0x4c8]
LEA EAX,[ECX + 0x4c4]
PUSH EDX
PUSH EAX
CALL 0x000a91b0
ADD ESP,0x10
XOR EDX,EDX
TEST EAX,EAX
JZ 0x0009e8eb
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
SETNZ DL
MOV EAX,EDX
ADD ESP,0x1c
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */\n\nbool FUN_0009e8a0(undefined4 param_1,uint param_2,uint param_3)\n\n{\n  int *piVar1;\n  bool bVar2;\n  uint local_14;\n  uint local_10;\n  undefined4 uStack_4;\n  \n  uStack_4 = 0x9e8a5;\n  local_14 = param_2;\n  local_10 = param_3;\n  piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3);\n  bVar2 = false;\n  if (piVar1 != (int *)0x0) {\n    bVar2 = *piVar1 != 0;\n  }\n  return bVar2;\n}\n\n" comment (function_definition "bool FUN_0009e8a0(undefined4 param_1,uint param_2,uint param_3)\n\n{\n  int *piVar1;\n  bool bVar2;\n  uint local_14;\n  uint local_10;\n  undefined4 uStack_4;\n  \n  uStack_4 = 0x9e8a5;\n  local_14 = param_2;\n  local_10 = param_3;\n  piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3);\n  bVar2 = false;\n  if (piVar1 != (int *)0x0) {\n    bVar2 = *piVar1 != 0;\n  }\n  return bVar2;\n}" primitive_type (function_declarator "FUN_0009e8a0(undefined4 param_1,uint param_2,uint param_3)" identifier (parameter_list "(undefined4 param_1,uint param_2,uint param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  bool bVar2;\n  uint local_14;\n  uint local_10;\n  undefined4 uStack_4;\n  \n  uStack_4 = 0x9e8a5;\n  local_14 = param_2;\n  local_10 = param_3;\n  piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3);\n  bVar2 = false;\n  if (piVar1 != (int *)0x0) {\n    bVar2 = *piVar1 != 0;\n  }\n  return bVar2;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "uint local_14;" type_identifier identifier ;) (declaration "uint local_10;" type_identifier identifier ;) (declaration "undefined4 uStack_4;" type_identifier identifier ;) (expression_statement "uStack_4 = 0x9e8a5;" (assignment_expression "uStack_4 = 0x9e8a5" identifier = number_literal) ;) (expression_statement "local_14 = param_2;" (assignment_expression "local_14 = param_2" identifier = identifier) ;) (expression_statement "local_10 = param_3;" (assignment_expression "local_10 = param_3" identifier = identifier) ;) (expression_statement "piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3);" (assignment_expression "piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3)" identifier = (cast_expression "(int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3)" identifier (argument_list "(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3)" ( (pointer_expression "&DAT_0038f4c4" & identifier) , (binary_expression "(param_2 ^ param_3) % DAT_0038f4c8" (parenthesized_expression "(param_2 ^ param_3)" ( (binary_expression "param_2 ^ param_3" identifier ^ identifier) )) % identifier) , (pointer_expression "&local_14" & identifier) , (binary_expression "param_2 ^ param_3" identifier ^ identifier) ))))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    bVar2 = *piVar1 != 0;\n  }" if (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)) )) (compound_statement "{\n    bVar2 = *piVar1 != 0;\n  }" { (expression_statement "bVar2 = *piVar1 != 0;" (assignment_expression "bVar2 = *piVar1 != 0" identifier = (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal)) ;) })) (return_statement "return bVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: bool is_ctors_in_init_array(Layout * this, Relobj * relobj, uint shndx)\n    */\n\nbool __thiscall gold::Layout::is_ctors_in_init_array(Layout *this,Relobj *relobj,uint shndx)\n\n{\n  __node_base *p_Var1;\n  bool bVar2;\n  key_type local_14 [2];\n  undefined4 uStack_4;\n  \n  uStack_4 = 0x9e8a5;\n  local_14[0].first = relobj;\n  local_14[0].second = shndx;\n  p_Var1 = std::\n           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           ::_M_find_before_node\n                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx);\n  bVar2 = false;\n  if (p_Var1 != (__node_base *)0x0) {\n    bVar2 = p_Var1->_M_nxt != (_Hash_node_base *)0x0;\n  }\n  return bVar2;\n}\n\n" comment comment comment (function_definition "bool __thiscall gold::Layout::is_ctors_in_init_array(Layout *this,Relobj *relobj,uint shndx)\n\n{\n  __node_base *p_Var1;\n  bool bVar2;\n  key_type local_14 [2];\n  undefined4 uStack_4;\n  \n  uStack_4 = 0x9e8a5;\n  local_14[0].first = relobj;\n  local_14[0].second = shndx;\n  p_Var1 = std::\n           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           ::_M_find_before_node\n                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx);\n  bVar2 = false;\n  if (p_Var1 != (__node_base *)0x0) {\n    bVar2 = p_Var1->_M_nxt != (_Hash_node_base *)0x0;\n  }\n  return bVar2;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "is_ctors_in_init_array(Layout *this,Relobj *relobj,uint shndx)" identifier (parameter_list "(Layout *this,Relobj *relobj,uint shndx)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relobj *relobj" type_identifier (pointer_declarator "*relobj" * identifier)) , (parameter_declaration "uint shndx" type_identifier identifier) ))) (compound_statement "{\n  __node_base *p_Var1;\n  bool bVar2;\n  key_type local_14 [2];\n  undefined4 uStack_4;\n  \n  uStack_4 = 0x9e8a5;\n  local_14[0].first = relobj;\n  local_14[0].second = shndx;\n  p_Var1 = std::\n           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           ::_M_find_before_node\n                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx);\n  bVar2 = false;\n  if (p_Var1 != (__node_base *)0x0) {\n    bVar2 = p_Var1->_M_nxt != (_Hash_node_base *)0x0;\n  }\n  return bVar2;\n}" { (declaration "__node_base *p_Var1;" type_identifier (pointer_declarator "*p_Var1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "key_type local_14 [2];" type_identifier (array_declarator "local_14 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_4;" type_identifier identifier ;) (expression_statement "uStack_4 = 0x9e8a5;" (assignment_expression "uStack_4 = 0x9e8a5" identifier = number_literal) ;) (expression_statement "local_14[0].first = relobj;" (assignment_expression "local_14[0].first = relobj" (field_expression "local_14[0].first" (subscript_expression "local_14[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "local_14[0].second = shndx;" (assignment_expression "local_14[0].second = shndx" (field_expression "local_14[0].second" (subscript_expression "local_14[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (ERROR "p_Var1 = std::\n           _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (assignment_expression "p_Var1 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           ::_M_find_before_node\n                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           ::_M_find_before_node\n                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           ::_M_find_before_node\n                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n           ::_M_find_before_node\n                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n           ::_M_find_before_node\n                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx);" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n           ::_M_find_before_node\n                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n           ::_M_find_before_node\n                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx)" identifier , (binary_expression "_true>_>\n           ::_M_find_before_node\n                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "_M_find_before_node\n                     ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx)" identifier (argument_list "((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array,\n                      ((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count,\n                      local_14,(uint)relobj ^ shndx)" ( (binary_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)&ctors_sections_in_init_array" (parenthesized_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                       *)" ( (ERROR "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Identity" : : identifier : : identifier) , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_gold" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                       *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                       *" identifier , (binary_expression "_true>_>\n                       *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & identifier) , (binary_expression "((uint)relobj ^ shndx) % ctors_sections_in_init_array._M_h._M_bucket_count" (parenthesized_expression "((uint)relobj ^ shndx)" ( (binary_expression "(uint)relobj ^ shndx" (cast_expression "(uint)relobj" ( (type_descriptor "uint" type_identifier) ) identifier) ^ identifier) )) % (field_expression "ctors_sections_in_init_array._M_h._M_bucket_count" (field_expression "ctors_sections_in_init_array._M_h" identifier . field_identifier) . field_identifier)) , identifier , (binary_expression "(uint)relobj ^ shndx" (cast_expression "(uint)relobj" ( (type_descriptor "uint" type_identifier) ) identifier) ^ identifier) )))))) ;))))) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (p_Var1 != (__node_base *)0x0) {\n    bVar2 = p_Var1->_M_nxt != (_Hash_node_base *)0x0;\n  }" if (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)) )) (compound_statement "{\n    bVar2 = p_Var1->_M_nxt != (_Hash_node_base *)0x0;\n  }" { (expression_statement "bVar2 = p_Var1->_M_nxt != (_Hash_node_base *)0x0;" (assignment_expression "bVar2 = p_Var1->_M_nxt != (_Hash_node_base *)0x0" identifier = (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))) ;) })) (return_statement "return bVar2;" return identifier ;) })))
(translation_unit "bool FUN_0009e8a0(undefined4 param_1,uint param_2,uint param_3)\n\n{\n  int *piVar1;\n  bool bVar2;\n  uint local_14;\n  uint local_10;\n  undefined4 uStack_4;\n  \n  uStack_4 = 0x9e8a5;\n  local_14 = param_2;\n  local_10 = param_3;\n  piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3);\n  bVar2 = false;\n  if (piVar1 != (int *)0x0) {\n    bVar2 = *piVar1 != 0;\n  }\n  return bVar2;\n}\n\n" (function_definition "bool FUN_0009e8a0(undefined4 param_1,uint param_2,uint param_3)\n\n{\n  int *piVar1;\n  bool bVar2;\n  uint local_14;\n  uint local_10;\n  undefined4 uStack_4;\n  \n  uStack_4 = 0x9e8a5;\n  local_14 = param_2;\n  local_10 = param_3;\n  piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3);\n  bVar2 = false;\n  if (piVar1 != (int *)0x0) {\n    bVar2 = *piVar1 != 0;\n  }\n  return bVar2;\n}" primitive_type (function_declarator "FUN_0009e8a0(undefined4 param_1,uint param_2,uint param_3)" identifier (parameter_list "(undefined4 param_1,uint param_2,uint param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  bool bVar2;\n  uint local_14;\n  uint local_10;\n  undefined4 uStack_4;\n  \n  uStack_4 = 0x9e8a5;\n  local_14 = param_2;\n  local_10 = param_3;\n  piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3);\n  bVar2 = false;\n  if (piVar1 != (int *)0x0) {\n    bVar2 = *piVar1 != 0;\n  }\n  return bVar2;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "uint local_14;" type_identifier identifier ;) (declaration "uint local_10;" type_identifier identifier ;) (declaration "undefined4 uStack_4;" type_identifier identifier ;) (expression_statement "uStack_4 = 0x9e8a5;" (assignment_expression "uStack_4 = 0x9e8a5" identifier = number_literal) ;) (expression_statement "local_14 = param_2;" (assignment_expression "local_14 = param_2" identifier = identifier) ;) (expression_statement "local_10 = param_3;" (assignment_expression "local_10 = param_3" identifier = identifier) ;) (expression_statement "piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3);" (assignment_expression "piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3)" identifier = (cast_expression "(int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3)" identifier (argument_list "(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3)" ( (pointer_expression "&DAT_0038f4c4" & identifier) , (binary_expression "(param_2 ^ param_3) % DAT_0038f4c8" (parenthesized_expression "(param_2 ^ param_3)" ( (binary_expression "param_2 ^ param_3" identifier ^ identifier) )) % identifier) , (pointer_expression "&local_14" & identifier) , (binary_expression "param_2 ^ param_3" identifier ^ identifier) ))))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (if_statement "if (piVar1 != (int *)0x0) {\n    bVar2 = *piVar1 != 0;\n  }" if (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)) )) (compound_statement "{\n    bVar2 = *piVar1 != 0;\n  }" { (expression_statement "bVar2 = *piVar1 != 0;" (assignment_expression "bVar2 = *piVar1 != 0" identifier = (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal)) ;) })) (return_statement "return bVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) % IDENT) , (pointer_expression & IDENT) , (binary_expression IDENT ^ IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) != LIT)) ;) })) (return_statement return IDENT ;) })))
(function_definition "bool FUN_0009e8a0(undefined4 param_1,uint param_2,uint param_3)\n\n{\n  int *piVar1;\n  bool bVar2;\n  uint local_14;\n  uint local_10;\n  undefined4 uStack_4;\n  \n  uStack_4 = 0x9e8a5;\n  local_14 = param_2;\n  local_10 = param_3;\n  piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3);\n  bVar2 = false;\n  if (piVar1 != (int *)0x0) {\n    bVar2 = *piVar1 != 0;\n  }\n  return bVar2;\n}" (primitive_type "bool") (function_declarator "FUN_0009e8a0(undefined4 param_1,uint param_2,uint param_3)" (identifier "FUN_0009e8a0") (parameter_list "(undefined4 param_1,uint param_2,uint param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) (compound_statement "{\n  int *piVar1;\n  bool bVar2;\n  uint local_14;\n  uint local_10;\n  undefined4 uStack_4;\n  \n  uStack_4 = 0x9e8a5;\n  local_14 = param_2;\n  local_10 = param_3;\n  piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3);\n  bVar2 = false;\n  if (piVar1 != (int *)0x0) {\n    bVar2 = *piVar1 != 0;\n  }\n  return bVar2;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "uint local_14;" (type_identifier "uint") (identifier "local_14") (; ";")) (declaration "uint local_10;" (type_identifier "uint") (identifier "local_10") (; ";")) (declaration "undefined4 uStack_4;" (type_identifier "undefined4") (identifier "uStack_4") (; ";")) (expression_statement "uStack_4 = 0x9e8a5;" (assignment_expression "uStack_4 = 0x9e8a5" (identifier "uStack_4") (= "=") (number_literal "0x9e8a5")) (; ";")) (expression_statement "local_14 = param_2;" (assignment_expression "local_14 = param_2" (identifier "local_14") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_10 = param_3;" (assignment_expression "local_10 = param_3" (identifier "local_10") (= "=") (identifier "param_3")) (; ";")) (expression_statement "piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3);" (assignment_expression "piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3)" (identifier "piVar1") (= "=") (cast_expression "(int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3)" (identifier "FUN_000a91b0") (argument_list "(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,\n                               param_2 ^ param_3)" (( "(") (pointer_expression "&DAT_0038f4c4" (& "&") (identifier "DAT_0038f4c4")) (, ",") (binary_expression "(param_2 ^ param_3) % DAT_0038f4c8" (parenthesized_expression "(param_2 ^ param_3)" (( "(") (binary_expression "param_2 ^ param_3" (identifier "param_2") (^ "^") (identifier "param_3")) () ")")) (% "%") (identifier "DAT_0038f4c8")) (, ",") (pointer_expression "&local_14" (& "&") (identifier "local_14")) (, ",") (binary_expression "param_2 ^ param_3" (identifier "param_2") (^ "^") (identifier "param_3")) () ")"))))) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (if_statement "if (piVar1 != (int *)0x0) {\n    bVar2 = *piVar1 != 0;\n  }" (if "if") (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"))) () ")")) (compound_statement "{\n    bVar2 = *piVar1 != 0;\n  }" ({ "{") (expression_statement "bVar2 = *piVar1 != 0;" (assignment_expression "bVar2 = *piVar1 != 0" (identifier "bVar2") (= "=") (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (number_literal "0"))) (; ";")) (} "}"))) (return_statement "return bVar2;" (return "return") (identifier "bVar2") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: bool is_ctors_in_init_array(Layout * this, Relobj * relobj, uint shndx)
    */

bool __thiscall gold::type_1::function_1(type_1 *this,type_2 *relobj,type_3 var_6)

{
  type_4 *var_7;
  bool bVar2;
  type_5 local_14 [2];
  type_6 uStack_4;
  
  uStack_4 = 0x9e8a5;
  local_14[0].first = relobj;
  local_14[0].second = var_6;
  var_7 = std::
           _Hashtable<std::pair<gold::type_2*,_unsigned_int>,_std::pair<gold::type_2*,_unsigned_int>,_std::allocator<std::pair<gold::type_2*,_unsigned_int>var_3>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::type_2*,_unsigned_int>var_3>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_1<true,var_2,var_2>var_3>
           ::var_4
                     ((_Hashtable<std::pair<gold::type_2*,_unsigned_int>,_std::pair<gold::type_2*,_unsigned_int>,_std::allocator<std::pair<gold::type_2*,_unsigned_int>var_3>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::type_2*,_unsigned_int>var_3>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_1<true,var_2,var_2>var_3>
                       *)&var_5,
                      ((type_3)relobj ^ var_6) % var_5._M_h._M_bucket_count,
                      local_14,(type_3)relobj ^ var_6);
  bVar2 = false;
  if (var_7 != (type_4 *)0x0) {
    bVar2 = var_7->_M_nxt != (type_7 *)0x0;
  }
  return bVar2;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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 (pointer_expression argument: (identifier)) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)) (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (return_statement (identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.cx replaced with injection: get_pc_thunk_cx */

bool MASKED(undefined4 param_1,uint param_2,uint param_3)

{
  int *piVar1;
  bool bVar2;
  uint local_14;
  uint local_10;
  undefined4 uStack_4;
  
  uStack_4 = 0x9e8a5;
  local_14 = param_2;
  local_10 = param_3;
  piVar1 = (int *)FUN_000a91b0(&DAT_0038f4c4,(param_2 ^ param_3) % DAT_0038f4c8,&local_14,
                               param_2 ^ param_3);
  bVar2 = false;
  if (piVar1 != (int *)0x0) {
    bVar2 = *piVar1 != 0;
  }
  return bVar2;
}

