
/* DWARF original prototype: void set_local_plt_offset(Sized_relobj_file<64,_true> * this, uint
   symndx, uint plt_offset) */

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

{
  pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_bool>
  pVar1;
  uint local_10;
  uint local_c;
  
  local_10 = symndx;
  local_c = plt_offset;
  pVar1 = 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>_>
                    ((_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>_>
                      *)&this->local_plt_offsets_,&local_10);
  if (pVar1.second != false) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/object.cc",0x8b4,"set_local_plt_offset");
}



void FUN_001e2930(long param_1,undefined4 param_2,undefined4 param_3)

{
  char extraout_DL;
  undefined4 local_10;
  undefined4 local_c;
  
  local_10 = param_2;
  local_c = param_3;
  FUN_001e27c0(param_1 + 0x178,&local_10);
  if (extraout_DL != '\0') {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");
}


SUB RSP,0x18
ADD RDI,0x178
MOV dword ptr [RSP + 0x8],ESI
LEA RSI,[RSP + 0x8]
MOV dword ptr [RSP + 0xc],EDX
CALL 0x001e27c0
TEST DL,DL
JZ 0x001e2956
ADD RSP,0x18
RET
LEA RDX,[0x3787f0]
MOV ESI,0x8b4
LEA RDI,[0x377f68]
CALL 0x0017c650
(translation_unit "void FUN_001e2930(long param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  char extraout_DL;\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_10 = param_2;\n  local_c = param_3;\n  FUN_001e27c0(param_1 + 0x178,&local_10);\n  if (extraout_DL != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");\n}\n\n" (function_definition "void FUN_001e2930(long param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  char extraout_DL;\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_10 = param_2;\n  local_c = param_3;\n  FUN_001e27c0(param_1 + 0x178,&local_10);\n  if (extraout_DL != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");\n}" primitive_type (function_declarator "FUN_001e2930(long param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(long param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  char extraout_DL;\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_10 = param_2;\n  local_c = param_3;\n  FUN_001e27c0(param_1 + 0x178,&local_10);\n  if (extraout_DL != '\0') {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");\n}" { (declaration "char extraout_DL;" primitive_type identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "undefined4 local_c;" type_identifier identifier ;) (expression_statement "local_10 = param_2;" (assignment_expression "local_10 = param_2" identifier = identifier) ;) (expression_statement "local_c = param_3;" (assignment_expression "local_c = param_3" identifier = identifier) ;) (expression_statement "FUN_001e27c0(param_1 + 0x178,&local_10);" (call_expression "FUN_001e27c0(param_1 + 0x178,&local_10)" identifier (argument_list "(param_1 + 0x178,&local_10)" ( (binary_expression "param_1 + 0x178" identifier + number_literal) , (pointer_expression "&local_10" & identifier) ))) ;) (if_statement "if (extraout_DL != '\0') {\n    return;\n  }" if (parenthesized_expression "(extraout_DL != '\0')" ( (binary_expression "extraout_DL != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");" (call_expression "FUN_0017c650("../../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 ") ))) ;) })))
(translation_unit "/* DWARF original prototype: void set_local_plt_offset(Sized_relobj_file<64,_true> * this, uint\n   symndx, uint plt_offset) */\n\nvoid __thiscall\ngold::Sized_relobj_file<64,_true>::set_local_plt_offset\n          (Sized_relobj_file<64,_true> *this,uint symndx,uint plt_offset)\n\n{\n  pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_bool>\n  pVar1;\n  uint local_10;\n  uint local_c;\n  \n  local_10 = symndx;\n  local_c = plt_offset;\n  pVar1 = 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                    ((_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                      *)&this->local_plt_offsets_,&local_10);\n  if (pVar1.second != false) {\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 (declaration "void __thiscall\ngold::Sized_relobj_file<64,_true>::set_local_plt_offset\n          (Sized_relobj_file<64,_true> *this,uint symndx,uint plt_offset)\n\n{\n  pair<std::__detail::_Node_iterator<std::pair<unsigned_int_const,_unsigned_int>,_false,_false>,_bool>\n  pVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::set_local_plt_offset\n          (Sized_relobj_file<64,_true> *this,uint symndx,uint plt_offset)\n\n{\n  pair<std::__detail::_Node_iterator<std::pair<" identifier > : : (function_declarator "set_local_plt_offset\n          (Sized_relobj_file<64,_true> *this,uint symndx,uint plt_offset)" identifier (parameter_list "(Sized_relobj_file<64,_true> *this,uint symndx,uint plt_offset)" ( (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<64" < 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 : : identifier : : identifier < identifier : : identifier <) identifier , identifier (ERROR ">" >) , identifier , identifier (ERROR ">" >) , (ERROR "_bool>" identifier >) identifier ;) (declaration "uint local_10;" type_identifier identifier ;) (declaration "uint local_c;" type_identifier identifier ;) (expression_statement "local_10 = symndx;" (assignment_expression "local_10 = symndx" identifier = identifier) ;) (expression_statement "local_c = plt_offset;" (assignment_expression "local_c = plt_offset" identifier = identifier) ;) (ERROR "pVar1 = std::\n          _Hashtable<unsigned_int," (assignment_expression "pVar1 = std" identifier = identifier) : : (binary_expression "_Hashtable<unsigned_int" identifier < identifier) ,) (labeled_statement "_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                    ((_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                      *)&this->local_plt_offsets_,&local_10);" statement_identifier (ERROR "::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 "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                    ((_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                      *)&this->local_plt_offsets_,&local_10);" 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                    ((_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                      *)&this->local_plt_offsets_,&local_10);" 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                    ((_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                      *)&this->local_plt_offsets_,&local_10);" 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                    ((_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                      *)&this->local_plt_offsets_,&local_10);" 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                    ((_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                      *)&this->local_plt_offsets_,&local_10);" (comma_expression "pair<unsigned_int,_unsigned_int>_>\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                      *)&this->local_plt_offsets_,&local_10)" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>\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                      *)&this->local_plt_offsets_,&local_10)" (binary_expression "_unsigned_int>_" identifier > identifier) > (parenthesized_expression "((_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                      *)&this->local_plt_offsets_,&local_10)" ( (comma_expression "(_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                      *)&this->local_plt_offsets_,&local_10" (binary_expression "(_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                      *)&this->local_plt_offsets_" (parenthesized_expression "(_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                      *)" ( (ERROR "_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::" (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)) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<unsigned_int>,_std" (binary_expression "equal_to<unsigned_int" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<unsigned_int>,_std" (binary_expression "hash<unsigned_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                      *" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n                      *" identifier , (binary_expression "_true>_>\n                      *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->local_plt_offsets_" identifier -> field_identifier)) , (pointer_expression "&local_10" & identifier)) )))) ;)))))) (if_statement "if (pVar1.second != false) {\n    return;\n  }" if (parenthesized_expression "(pVar1.second != false)" ( (binary_expression "pVar1.second != false" (field_expression "pVar1.second" identifier . field_identifier) != false) )) (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_001e2930(long param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  char extraout_DL;\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_10 = param_2;\n  local_c = param_3;\n  FUN_001e27c0(param_1 + 0x178,&local_10);\n  if (extraout_DL != '\0') {\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");\n}\n\n" (function_definition "void FUN_001e2930(long param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  char extraout_DL;\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_10 = param_2;\n  local_c = param_3;\n  FUN_001e27c0(param_1 + 0x178,&local_10);\n  if (extraout_DL != '\0') {\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");\n}" primitive_type (function_declarator "FUN_001e2930(long param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(long param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  char extraout_DL;\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_10 = param_2;\n  local_c = param_3;\n  FUN_001e27c0(param_1 + 0x178,&local_10);\n  if (extraout_DL != '\0') {\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");\n}" { (declaration "char extraout_DL;" primitive_type identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "undefined4 local_c;" type_identifier identifier ;) (expression_statement "local_10 = param_2;" (assignment_expression "local_10 = param_2" identifier = identifier) ;) (expression_statement "local_c = param_3;" (assignment_expression "local_c = param_3" identifier = identifier) ;) (expression_statement "FUN_001e27c0(param_1 + 0x178,&local_10);" (call_expression "FUN_001e27c0(param_1 + 0x178,&local_10)" identifier (argument_list "(param_1 + 0x178,&local_10)" ( (binary_expression "param_1 + 0x178" identifier + number_literal) , (pointer_expression "&local_10" & identifier) ))) ;) (if_statement "if (extraout_DL != '\0') {\n    return;\n  }" if (parenthesized_expression "(extraout_DL != '\0')" ( (binary_expression "extraout_DL != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");" (call_expression "FUN_0017c650("../../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 ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (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 ") ))) ;) })))
(function_definition "void FUN_001e2930(long param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  char extraout_DL;\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_10 = param_2;\n  local_c = param_3;\n  FUN_001e27c0(param_1 + 0x178,&local_10);\n  if (extraout_DL != '\0') {\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");\n}" (primitive_type "void") (function_declarator "FUN_001e2930(long param_1,undefined4 param_2,undefined4 param_3)" (identifier "FUN_001e2930") (parameter_list "(long param_1,undefined4 param_2,undefined4 param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (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  char extraout_DL;\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_10 = param_2;\n  local_c = param_3;\n  FUN_001e27c0(param_1 + 0x178,&local_10);\n  if (extraout_DL != '\0') {\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");\n}" ({ "{") (declaration "char extraout_DL;" (primitive_type "char") (identifier "extraout_DL") (; ";")) (declaration "undefined4 local_10;" (type_identifier "undefined4") (identifier "local_10") (; ";")) (declaration "undefined4 local_c;" (type_identifier "undefined4") (identifier "local_c") (; ";")) (expression_statement "local_10 = param_2;" (assignment_expression "local_10 = param_2" (identifier "local_10") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_c = param_3;" (assignment_expression "local_c = param_3" (identifier "local_c") (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_001e27c0(param_1 + 0x178,&local_10);" (call_expression "FUN_001e27c0(param_1 + 0x178,&local_10)" (identifier "FUN_001e27c0") (argument_list "(param_1 + 0x178,&local_10)" (( "(") (binary_expression "param_1 + 0x178" (identifier "param_1") (+ "+") (number_literal "0x178")) (, ",") (pointer_expression "&local_10" (& "&") (identifier "local_10")) () ")"))) (; ";")) (if_statement "if (extraout_DL != '\0') {\n    return;\n  }" (if "if") (parenthesized_expression "(extraout_DL != '\0')" (( "(") (binary_expression "extraout_DL != '\0'" (identifier "extraout_DL") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");" (call_expression "FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset")" (identifier "FUN_0017c650") (argument_list "("../../gold/object.cc",0x8b4,"set_local_plt_offset")" (( "(") (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") (" """)) () ")"))) (; ";")) (} "}")))

/* DWARF original prototype: void set_local_plt_offset(Sized_relobj_file<64,_true> * this, uint
   symndx, uint plt_offset) */

void __thiscall
gold::Sized_relobj_file<64,var_6>::set_local_plt_offset
          (Sized_relobj_file<64,var_6> *this,type_1 symndx,type_1 plt_offset)

{
  var_1<std::__detail::_Node_iterator<std::var_1<unsigned_int_const,var_3>,_false,_false>,_bool>
  pVar1;
  type_1 local_10;
  type_1 local_c;
  
  local_10 = symndx;
  local_c = plt_offset;
  pVar1 = 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::var_5<false,_false,var_6>var_4>
          ::_M_emplace<std::var_1<var_2,var_3>var_4>
                    ((_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::var_5<false,_false,var_6>var_4>
                      *)&this->local_plt_offsets_,&local_10);
  if (pVar1.second != false) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_7("../../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: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) 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))))))))

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

{
  char extraout_DL;
  undefined4 local_10;
  undefined4 local_c;
  
  local_10 = param_2;
  local_c = param_3;
  FUN_001e27c0(param_1 + 0x178,&local_10);
  if (extraout_DL != '\0') {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/object.cc",0x8b4,"set_local_plt_offset");
}

