
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void set_local_plt_offset(Sized_relobj_file<32,_true> * this, uint
   symndx, uint plt_offset) */

void __thiscall
gold::Sized_relobj_file<32,_true>::set_local_plt_offset
          (Sized_relobj_file<32,_true> *this,uint symndx,uint plt_offset)

{
  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
  local_24;
  undefined4 uStack_8;
  
  uStack_8 = 0xda046;
  local_24._M_rehash_policy._M_max_load_factor = (float)symndx;
  local_24._M_rehash_policy._M_next_resize = plt_offset;
  std::
  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
  ::_M_emplace<std::pair<unsigned_int,_unsigned_int>_>
            (&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy);
  if ((char)local_24._M_bucket_count != '\0') {
    return;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/object.cc",0x8b4,"set_local_plt_offset");
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_000da040(int param_1,undefined4 param_2,undefined4 param_3)

{
  undefined4 uVar1;
  char local_24 [16];
  undefined4 local_14;
  undefined4 local_10;
  undefined4 uStack_8;
  
  uStack_8 = 0xda046;
  local_14 = param_2;
  local_10 = param_3;
  uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);
  if (local_24[0] != '\0') {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);
}


PUSH EBX
CALL 0x00035840
ADD EBX,0x2b4fba
SUB ESP,0x28
MOV EAX,dword ptr [ESP + 0x34]
LEA EDX,[ESP + 0x8]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[ESP + 0x18]
PUSH EAX
PUSH 0x0
MOV EAX,dword ptr [ESP + 0x38]
ADD EAX,0xe8
PUSH EAX
PUSH EDX
CALL 0x000d9ee0
ADD ESP,0xc
CMP byte ptr [ESP + 0xc],0x0
JZ 0x000da089
ADD ESP,0x28
POP EBX
RET
PUSH EAX
LEA EAX,[EBX + 0xffefde98]
PUSH EAX
LEA EAX,[EBX + 0xffefd078]
PUSH 0x8b4
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000da040(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  char local_24 [16];\n  undefined4 local_14;\n  undefined4 local_10;\n  undefined4 uStack_8;\n  \n  uStack_8 = 0xda046;\n  local_14 = param_2;\n  local_10 = param_3;\n  uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);\n  if (local_24[0] != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);\n}\n\n" comment (function_definition "void FUN_000da040(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  char local_24 [16];\n  undefined4 local_14;\n  undefined4 local_10;\n  undefined4 uStack_8;\n  \n  uStack_8 = 0xda046;\n  local_14 = param_2;\n  local_10 = param_3;\n  uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);\n  if (local_24[0] != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);\n}" primitive_type (function_declarator "FUN_000da040(int param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  char local_24 [16];\n  undefined4 local_14;\n  undefined4 local_10;\n  undefined4 uStack_8;\n  \n  uStack_8 = 0xda046;\n  local_14 = param_2;\n  local_10 = param_3;\n  uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);\n  if (local_24[0] != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "char local_24 [16];" primitive_type (array_declarator "local_24 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "undefined4 uStack_8;" type_identifier identifier ;) (expression_statement "uStack_8 = 0xda046;" (assignment_expression "uStack_8 = 0xda046" 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 "uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);" (assignment_expression "uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14)" identifier = (call_expression "FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14)" identifier (argument_list "(local_24,param_1 + 0xe8,0,&local_14)" ( identifier , (binary_expression "param_1 + 0xe8" identifier + number_literal) , number_literal , (pointer_expression "&local_14" & identifier) )))) ;) (if_statement "if (local_24[0] != '\0') {\n    return;\n  }" if (parenthesized_expression "(local_24[0] != '\0')" ( (binary_expression "local_24[0] != '\0'" (subscript_expression "local_24[0]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);" (call_expression "FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1)" identifier (argument_list "("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1)" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""set_local_plt_offset"" " string_content ") , identifier ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: void set_local_plt_offset(Sized_relobj_file<32,_true> * this, uint\n   symndx, uint plt_offset) */\n\nvoid __thiscall\ngold::Sized_relobj_file<32,_true>::set_local_plt_offset\n          (Sized_relobj_file<32,_true> *this,uint symndx,uint plt_offset)\n\n{\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  local_24;\n  undefined4 uStack_8;\n  \n  uStack_8 = 0xda046;\n  local_24._M_rehash_policy._M_max_load_factor = (float)symndx;\n  local_24._M_rehash_policy._M_next_resize = plt_offset;\n  std::\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::_M_emplace<std::pair<unsigned_int,_unsigned_int>_>\n            (&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy);\n  if ((char)local_24._M_bucket_count != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/object.cc",0x8b4,"set_local_plt_offset");\n}\n\n" comment comment (declaration "void __thiscall\ngold::Sized_relobj_file<32,_true>::set_local_plt_offset\n          (Sized_relobj_file<32,_true> *this,uint symndx,uint plt_offset)\n\n{\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  local_24;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>::set_local_plt_offset\n          (Sized_relobj_file<32,_true> *this,uint symndx,uint plt_offset)\n\n{\n  _Hashtable<" identifier > : : (function_declarator "set_local_plt_offset\n          (Sized_relobj_file<32,_true> *this,uint symndx,uint plt_offset)" identifier (parameter_list "(Sized_relobj_file<32,_true> *this,uint symndx,uint plt_offset)" ( (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint symndx" type_identifier identifier) , (parameter_declaration "uint plt_offset" type_identifier 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>_>" identifier > identifier >) identifier ;) (declaration "undefined4 uStack_8;" type_identifier identifier ;) (expression_statement "uStack_8 = 0xda046;" (assignment_expression "uStack_8 = 0xda046" identifier = number_literal) ;) (expression_statement "local_24._M_rehash_policy._M_max_load_factor = (float)symndx;" (assignment_expression "local_24._M_rehash_policy._M_max_load_factor = (float)symndx" (field_expression "local_24._M_rehash_policy._M_max_load_factor" (field_expression "local_24._M_rehash_policy" identifier . field_identifier) . field_identifier) = (cast_expression "(float)symndx" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "local_24._M_rehash_policy._M_next_resize = plt_offset;" (assignment_expression "local_24._M_rehash_policy._M_next_resize = plt_offset" (field_expression "local_24._M_rehash_policy._M_next_resize" (field_expression "local_24._M_rehash_policy" identifier . field_identifier) . field_identifier) = identifier) ;) (labeled_statement "std::\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::_M_emplace<std::pair<unsigned_int,_unsigned_int>_>\n            (&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy);" statement_identifier (ERROR "::\n  _Hashtable<unsigned_int,_std::pair<unsigned_int_const,_unsigned_int>,_std::allocator<std::pair<unsigned_int_const,_unsigned_int>_>,_std::__detail::_Select1st,_std::equal_to<unsigned_int>,_std::hash<unsigned_int>,_std:" : : (comma_expression "_Hashtable<unsigned_int,_std" (binary_expression "_Hashtable<unsigned_int" identifier < identifier) , identifier) : : (comma_expression "pair<unsigned_int_const,_unsigned_int>,_std" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int_const,_unsigned_int>_>,_std" (binary_expression "pair<unsigned_int_const" identifier < identifier) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (comma_expression "__detail::_Select1st,_std::equal_to<unsigned_int>,_std" identifier (ERROR "::_Select1st,_std::equal_to<unsigned_int>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<unsigned_int" identifier < identifier) >) , identifier) : : (binary_expression "hash<unsigned_int>,_std" (binary_expression "hash<unsigned_int" identifier < identifier) > (ERROR "," ,) identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::_M_emplace<std::pair<unsigned_int,_unsigned_int>_>\n            (&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy);" 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  ::_M_emplace<std::pair<unsigned_int,_unsigned_int>_>\n            (&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy);" 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  ::_M_emplace<std::pair<unsigned_int,_unsigned_int>_>\n            (&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,_false,_true>_>\n  ::_M_emplace<std::pair<unsigned_int,_unsigned_int>_>\n            (&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy);" statement_identifier (ERROR "::_Hashtable_traits<false,_false,_true>_>\n  ::_M_emplace<std:" : : (comma_expression "_Hashtable_traits<false,_false,_true>_>\n  ::_M_emplace<std" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n  ::_M_emplace<std" identifier , (binary_expression "_true>_>\n  ::_M_emplace<std" (binary_expression "_true>_>\n  ::_M_emplace" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) :) : (expression_statement "pair<unsigned_int,_unsigned_int>_>\n            (&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy);" (comma_expression "pair<unsigned_int,_unsigned_int>_>\n            (&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy)" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>\n            (&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy)" (binary_expression "_unsigned_int>_" identifier > identifier) > (parenthesized_expression "(&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy)" ( (comma_expression "&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy" (pointer_expression "&local_24" & identifier) , (comma_expression "&this->local_plt_offsets_,0,&local_24._M_rehash_policy" (pointer_expression "&this->local_plt_offsets_" & (field_expression "this->local_plt_offsets_" identifier -> field_identifier)) , (comma_expression "0,&local_24._M_rehash_policy" number_literal , (pointer_expression "&local_24._M_rehash_policy" & (field_expression "local_24._M_rehash_policy" identifier . field_identifier))))) )))) ;)))))) (if_statement "if ((char)local_24._M_bucket_count != '\0') {\n    return;\n  }" if (parenthesized_expression "((char)local_24._M_bucket_count != '\0')" ( (binary_expression "(char)local_24._M_bucket_count != '\0'" (cast_expression "(char)local_24._M_bucket_count" ( (type_descriptor "char" primitive_type) ) (field_expression "local_24._M_bucket_count" identifier . field_identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "do_gold_unreachable("../../gold/object.cc",0x8b4,"set_local_plt_offset");" (call_expression "do_gold_unreachable("../../gold/object.cc",0x8b4,"set_local_plt_offset")" identifier (argument_list "("../../gold/object.cc",0x8b4,"set_local_plt_offset")" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""set_local_plt_offset"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "void FUN_000da040(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  char local_24 [16];\n  undefined4 local_14;\n  undefined4 local_10;\n  undefined4 uStack_8;\n  \n  uStack_8 = 0xda046;\n  local_14 = param_2;\n  local_10 = param_3;\n  uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);\n  if (local_24[0] != '\0') {\n    return;\n  }\n                    \n  FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);\n}\n\n" (function_definition "void FUN_000da040(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  char local_24 [16];\n  undefined4 local_14;\n  undefined4 local_10;\n  undefined4 uStack_8;\n  \n  uStack_8 = 0xda046;\n  local_14 = param_2;\n  local_10 = param_3;\n  uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);\n  if (local_24[0] != '\0') {\n    return;\n  }\n                    \n  FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);\n}" primitive_type (function_declarator "FUN_000da040(int param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  char local_24 [16];\n  undefined4 local_14;\n  undefined4 local_10;\n  undefined4 uStack_8;\n  \n  uStack_8 = 0xda046;\n  local_14 = param_2;\n  local_10 = param_3;\n  uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);\n  if (local_24[0] != '\0') {\n    return;\n  }\n                    \n  FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "char local_24 [16];" primitive_type (array_declarator "local_24 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "undefined4 uStack_8;" type_identifier identifier ;) (expression_statement "uStack_8 = 0xda046;" (assignment_expression "uStack_8 = 0xda046" 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 "uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);" (assignment_expression "uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14)" identifier = (call_expression "FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14)" identifier (argument_list "(local_24,param_1 + 0xe8,0,&local_14)" ( identifier , (binary_expression "param_1 + 0xe8" identifier + number_literal) , number_literal , (pointer_expression "&local_14" & identifier) )))) ;) (if_statement "if (local_24[0] != '\0') {\n    return;\n  }" if (parenthesized_expression "(local_24[0] != '\0')" ( (binary_expression "local_24[0] != '\0'" (subscript_expression "local_24[0]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);" (call_expression "FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1)" identifier (argument_list "("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1)" ( (string_literal ""../../gold/object.cc"" " string_content ") , number_literal , (string_literal ""set_local_plt_offset"" " string_content ") , 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 IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })))
(function_definition "void FUN_000da040(int param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined4 uVar1;\n  char local_24 [16];\n  undefined4 local_14;\n  undefined4 local_10;\n  undefined4 uStack_8;\n  \n  uStack_8 = 0xda046;\n  local_14 = param_2;\n  local_10 = param_3;\n  uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);\n  if (local_24[0] != '\0') {\n    return;\n  }\n                    \n  FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);\n}" (primitive_type "void") (function_declarator "FUN_000da040(int param_1,undefined4 param_2,undefined4 param_3)" (identifier "FUN_000da040") (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  char local_24 [16];\n  undefined4 local_14;\n  undefined4 local_10;\n  undefined4 uStack_8;\n  \n  uStack_8 = 0xda046;\n  local_14 = param_2;\n  local_10 = param_3;\n  uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);\n  if (local_24[0] != '\0') {\n    return;\n  }\n                    \n  FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "char local_24 [16];" (primitive_type "char") (array_declarator "local_24 [16]" (identifier "local_24") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 local_14;" (type_identifier "undefined4") (identifier "local_14") (; ";")) (declaration "undefined4 local_10;" (type_identifier "undefined4") (identifier "local_10") (; ";")) (declaration "undefined4 uStack_8;" (type_identifier "undefined4") (identifier "uStack_8") (; ";")) (expression_statement "uStack_8 = 0xda046;" (assignment_expression "uStack_8 = 0xda046" (identifier "uStack_8") (= "=") (number_literal "0xda046")) (; ";")) (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 "uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);" (assignment_expression "uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14)" (identifier "uVar1") (= "=") (call_expression "FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14)" (identifier "FUN_000d9ee0") (argument_list "(local_24,param_1 + 0xe8,0,&local_14)" (( "(") (identifier "local_24") (, ",") (binary_expression "param_1 + 0xe8" (identifier "param_1") (+ "+") (number_literal "0xe8")) (, ",") (number_literal "0") (, ",") (pointer_expression "&local_14" (& "&") (identifier "local_14")) () ")")))) (; ";")) (if_statement "if (local_24[0] != '\0') {\n    return;\n  }" (if "if") (parenthesized_expression "(local_24[0] != '\0')" (( "(") (binary_expression "local_24[0] != '\0'" (subscript_expression "local_24[0]" (identifier "local_24") ([ "[") (number_literal "0") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);" (call_expression "FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1)" (identifier "FUN_00069d00") (argument_list "("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1)" (( "(") (string_literal ""../../gold/object.cc"" (" """) (string_content "../../gold/object.cc") (" """)) (, ",") (number_literal "0x8b4") (, ",") (string_literal ""set_local_plt_offset"" (" """) (string_content "set_local_plt_offset") (" """)) (, ",") (identifier "uVar1") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void set_local_plt_offset(Sized_relobj_file<32,_true> * this, uint
   symndx, uint plt_offset) */

void __thiscall
gold::Sized_relobj_file<32,_true>::set_local_plt_offset
          (Sized_relobj_file<32,_true> *this,uint symndx,uint plt_offset)

{
  _Hashtable<var_2,_std::var_1<unsigned_int_const,var_3>,_std::allocator<std::var_1<unsigned_int_const,var_3>var_4>,_std::__detail::_Select1st,_std::equal_to<var_2>,_std::hash<var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>var_4>
  local_24;
  type_1 uStack_8;
  
  uStack_8 = 0xda046;
  local_24._M_rehash_policy._M_max_load_factor = (float)symndx;
  local_24._M_rehash_policy._M_next_resize = plt_offset;
  std::
  _Hashtable<var_2,_std::var_1<unsigned_int_const,var_3>,_std::allocator<std::var_1<unsigned_int_const,var_3>var_4>,_std::__detail::_Select1st,_std::equal_to<var_2>,_std::hash<var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>var_4>
  ::_M_emplace<std::var_1<var_2,var_3>var_4>
            (&local_24,&this->local_plt_offsets_,0,&local_24._M_rehash_policy);
  if ((char)local_24._M_bucket_count != '\0') {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_5("../../gold/object.cc",0x8b4,"set_local_plt_offset");
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(int param_1,undefined4 param_2,undefined4 param_3)

{
  undefined4 uVar1;
  char local_24 [16];
  undefined4 local_14;
  undefined4 local_10;
  undefined4 uStack_8;
  
  uStack_8 = 0xda046;
  local_14 = param_2;
  local_10 = param_3;
  uVar1 = FUN_000d9ee0(local_24,param_1 + 0xe8,0,&local_14);
  if (local_24[0] != '\0') {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00069d00("../../gold/object.cc",0x8b4,"set_local_plt_offset",uVar1);
}

