
/* DWARF original prototype: void add_global_relative(Output_data_reloc<4,_false,_64,_false> * this,
   Symbol * gsym, uint type, Output_data * od, Address address, Addend addend, bool use_plt_offset)
    */

void __thiscall
gold::Output_data_reloc<4,_false,_64,_false>::add_global_relative
          (Output_data_reloc<4,_false,_64,_false> *this,Symbol *gsym,uint type,Output_data *od,
          Address address,Addend addend,bool use_plt_offset)

{
  Output_reloc_type local_40;
  
  Output_reloc<9,_false,_64,_false>::Output_reloc
            (&local_40.rel_,gsym,type,od,address,true,true,use_plt_offset);
  local_40.addend_ = addend;
  Output_data_reloc_base<4,_false,_64,_false>::add
            (&this->super_Output_data_reloc_base<4,_false,_64,_false>,od,&local_40);
  return;
}



void FUN_0018c620(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,
                 undefined1 param_9)

{
  undefined1 local_40 [28];
  undefined4 local_24;
  undefined4 local_20;
  
  FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);
  local_20 = param_8;
  local_24 = param_7;
  FUN_0018c390(param_1,param_4,local_40);
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x48
MOV EBX,dword ptr [ESP + 0x68]
MOVZX EAX,byte ptr [ESP + 0x7c]
MOV EDI,dword ptr [ESP + 0x74]
MOV EBP,dword ptr [ESP + 0x78]
PUSH EAX
PUSH 0x1
PUSH 0x1
PUSH dword ptr [ESP + 0x7c]
PUSH dword ptr [ESP + 0x7c]
PUSH EBX
PUSH dword ptr [ESP + 0x7c]
PUSH dword ptr [ESP + 0x7c]
LEA ESI,[ESP + 0x38]
PUSH ESI
CALL 0x0016a200
MOV dword ptr [ESP + 0x5c],EBP
MOV dword ptr [ESP + 0x58],EDI
ADD ESP,0x2c
PUSH ESI
PUSH EBX
PUSH dword ptr [ESP + 0x5c]
CALL 0x0018c390
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "void FUN_0018c620(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,\n                 undefined1 param_9)\n\n{\n  undefined1 local_40 [28];\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);\n  local_20 = param_8;\n  local_24 = param_7;\n  FUN_0018c390(param_1,param_4,local_40);\n  return;\n}\n\n" (function_definition "void FUN_0018c620(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,\n                 undefined1 param_9)\n\n{\n  undefined1 local_40 [28];\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);\n  local_20 = param_8;\n  local_24 = param_7;\n  FUN_0018c390(param_1,param_4,local_40);\n  return;\n}" primitive_type (function_declarator "FUN_0018c620(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,\n                 undefined1 param_9)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,\n                 undefined1 param_9)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined1 param_9" type_identifier identifier) ))) (compound_statement "{\n  undefined1 local_40 [28];\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);\n  local_20 = param_8;\n  local_24 = param_7;\n  FUN_0018c390(param_1,param_4,local_40);\n  return;\n}" { (declaration "undefined1 local_40 [28];" type_identifier (array_declarator "local_40 [28]" identifier [ number_literal ]) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);" (call_expression "FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9)" identifier (argument_list "(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9)" ( identifier , identifier , identifier , identifier , identifier , identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "local_20 = param_8;" (assignment_expression "local_20 = param_8" identifier = identifier) ;) (expression_statement "local_24 = param_7;" (assignment_expression "local_24 = param_7" identifier = identifier) ;) (expression_statement "FUN_0018c390(param_1,param_4,local_40);" (call_expression "FUN_0018c390(param_1,param_4,local_40)" identifier (argument_list "(param_1,param_4,local_40)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void add_global_relative(Output_data_reloc<4,_false,_64,_false> * this,\n   Symbol * gsym, uint type, Output_data * od, Address address, Addend addend, bool use_plt_offset)\n    */\n\nvoid __thiscall\ngold::Output_data_reloc<4,_false,_64,_false>::add_global_relative\n          (Output_data_reloc<4,_false,_64,_false> *this,Symbol *gsym,uint type,Output_data *od,\n          Address address,Addend addend,bool use_plt_offset)\n\n{\n  Output_reloc_type local_40;\n  \n  Output_reloc<9,_false,_64,_false>::Output_reloc\n            (&local_40.rel_,gsym,type,od,address,true,true,use_plt_offset);\n  local_40.addend_ = addend;\n  Output_data_reloc_base<4,_false,_64,_false>::add\n            (&this->super_Output_data_reloc_base<4,_false,_64,_false>,od,&local_40);\n  return;\n}\n\n" comment (declaration "void __thiscall\ngold::Output_data_reloc<4,_false,_64,_false>::add_global_relative\n          (Output_data_reloc<4,_false,_64,_false> *this,Symbol *gsym,uint type,Output_data *od,\n          Address address,Addend addend,bool use_plt_offset)\n\n{\n  Output_reloc_type local_40;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<4" < number_literal) , identifier , identifier , (ERROR "_false>::add_global_relative\n          (Output_data_reloc<4,_false,_64,_false> *this,Symbol *gsym,uint type,Output_data *od,\n          Address address,Addend addend,bool use_plt_offset)\n\n{\n  Output_reloc_type" identifier > : : (function_declarator "add_global_relative\n          (Output_data_reloc<4,_false,_64,_false> *this,Symbol *gsym,uint type,Output_data *od,\n          Address address,Addend addend,bool use_plt_offset)" identifier (parameter_list "(Output_data_reloc<4,_false,_64,_false> *this,Symbol *gsym,uint type,Output_data *od,\n          Address address,Addend addend,bool use_plt_offset)" ( (parameter_declaration "Output_data_reloc" type_identifier) (ERROR "<4" < number_literal) , (parameter_declaration "_false" type_identifier) , (parameter_declaration "_64" type_identifier) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol *gsym" type_identifier (pointer_declarator "*gsym" * identifier)) , (parameter_declaration "uint type" type_identifier identifier) , (parameter_declaration "Output_data *od" type_identifier (pointer_declarator "*od" * identifier)) , (parameter_declaration "Address address" type_identifier identifier) , (parameter_declaration "Addend addend" type_identifier identifier) , (parameter_declaration "bool use_plt_offset" primitive_type identifier) ))) { identifier) identifier ;) (expression_statement "Output_reloc<9,_false,_64,_false>::Output_reloc\n            (&local_40.rel_,gsym,type,od,address,true,true,use_plt_offset);" (update_expression "Output_reloc<9,_false,_64,_false>::Output_reloc\n            (&local_40.rel_,gsym,type,od,address,true,true,use_plt_offset)" (binary_expression "Output_reloc<9,_false,_64,_false>::Output_reloc\n            (&local_40.rel_,gsym,type,od,address,true,true,use_plt_offset)" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",_false,_64,_false" , identifier , identifier , identifier) > (ERROR "::" : :) (call_expression "Output_reloc\n            (&local_40.rel_,gsym,type,od,address,true,true,use_plt_offset)" identifier (argument_list "(&local_40.rel_,gsym,type,od,address,true,true,use_plt_offset)" ( (pointer_expression "&local_40.rel_" & (field_expression "local_40.rel_" identifier . field_identifier)) , identifier , identifier , identifier , identifier , true , true , identifier )))) --) ;) (expression_statement "local_40.addend_ = addend;" (assignment_expression "local_40.addend_ = addend" (field_expression "local_40.addend_" identifier . field_identifier) = identifier) ;) (expression_statement "Output_data_reloc_base<4,_false,_64,_false>::add\n            (&this->super_Output_data_reloc_base<4,_false,_64,_false>,od,&local_40);" (update_expression "Output_data_reloc_base<4,_false,_64,_false>::add\n            (&this->super_Output_data_reloc_base<4,_false,_64,_false>,od,&local_40)" (binary_expression "Output_data_reloc_base<4,_false,_64,_false>::add\n            (&this->super_Output_data_reloc_base<4,_false,_64,_false>,od,&local_40)" (binary_expression "Output_data_reloc_base<4" identifier < number_literal) (ERROR ",_false,_64,_false" , identifier , identifier , identifier) > (ERROR "::" : :) (call_expression "add\n            (&this->super_Output_data_reloc_base<4,_false,_64,_false>,od,&local_40)" identifier (argument_list "(&this->super_Output_data_reloc_base<4,_false,_64,_false>,od,&local_40)" ( (binary_expression "&this->super_Output_data_reloc_base<4" (pointer_expression "&this->super_Output_data_reloc_base" & (field_expression "this->super_Output_data_reloc_base" identifier -> field_identifier)) < number_literal) , identifier , identifier , identifier (ERROR ">" >) , identifier , (pointer_expression "&local_40" & identifier) )))) --) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_0018c620(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,\n                 undefined1 param_9)\n\n{\n  undefined1 local_40 [28];\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);\n  local_20 = param_8;\n  local_24 = param_7;\n  FUN_0018c390(param_1,param_4,local_40);\n  return;\n}\n\n" (function_definition "void FUN_0018c620(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,\n                 undefined1 param_9)\n\n{\n  undefined1 local_40 [28];\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);\n  local_20 = param_8;\n  local_24 = param_7;\n  FUN_0018c390(param_1,param_4,local_40);\n  return;\n}" primitive_type (function_declarator "FUN_0018c620(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,\n                 undefined1 param_9)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,\n                 undefined1 param_9)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined1 param_9" type_identifier identifier) ))) (compound_statement "{\n  undefined1 local_40 [28];\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);\n  local_20 = param_8;\n  local_24 = param_7;\n  FUN_0018c390(param_1,param_4,local_40);\n  return;\n}" { (declaration "undefined1 local_40 [28];" type_identifier (array_declarator "local_40 [28]" identifier [ number_literal ]) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);" (call_expression "FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9)" identifier (argument_list "(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9)" ( identifier , identifier , identifier , identifier , identifier , identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "local_20 = param_8;" (assignment_expression "local_20 = param_8" identifier = identifier) ;) (expression_statement "local_24 = param_7;" (assignment_expression "local_24 = param_7" identifier = identifier) ;) (expression_statement "FUN_0018c390(param_1,param_4,local_40);" (call_expression "FUN_0018c390(param_1,param_4,local_40)" identifier (argument_list "(param_1,param_4,local_40)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0018c620(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,\n                 undefined1 param_9)\n\n{\n  undefined1 local_40 [28];\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);\n  local_20 = param_8;\n  local_24 = param_7;\n  FUN_0018c390(param_1,param_4,local_40);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0018c620(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,\n                 undefined1 param_9)" (identifier "FUN_0018c620") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,\n                 undefined1 param_9)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (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")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) (, ",") (parameter_declaration "undefined1 param_9" (type_identifier "undefined1") (identifier "param_9")) () ")"))) (compound_statement "{\n  undefined1 local_40 [28];\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);\n  local_20 = param_8;\n  local_24 = param_7;\n  FUN_0018c390(param_1,param_4,local_40);\n  return;\n}" ({ "{") (declaration "undefined1 local_40 [28];" (type_identifier "undefined1") (array_declarator "local_40 [28]" (identifier "local_40") ([ "[") (number_literal "28") (] "]")) (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (expression_statement "FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);" (call_expression "FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9)" (identifier "FUN_0016a200") (argument_list "(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9)" (( "(") (identifier "local_40") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "param_9") () ")"))) (; ";")) (expression_statement "local_20 = param_8;" (assignment_expression "local_20 = param_8" (identifier "local_20") (= "=") (identifier "param_8")) (; ";")) (expression_statement "local_24 = param_7;" (assignment_expression "local_24 = param_7" (identifier "local_24") (= "=") (identifier "param_7")) (; ";")) (expression_statement "FUN_0018c390(param_1,param_4,local_40);" (call_expression "FUN_0018c390(param_1,param_4,local_40)" (identifier "FUN_0018c390") (argument_list "(param_1,param_4,local_40)" (( "(") (identifier "param_1") (, ",") (identifier "param_4") (, ",") (identifier "local_40") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void add_global_relative(Output_data_reloc<4,_false,_64,_false> * this,
   Symbol * gsym, uint type, Output_data * od, Address address, Addend addend, bool use_plt_offset)
    */

void __thiscall
gold::Output_data_reloc<4,_false,_64,_false>::add_global_relative
          (Output_data_reloc<4,_false,_64,_false> *this,Symbol *gsym,uint type,Output_data *od,
          Address address,Addend addend,bool use_plt_offset)

{
  Output_reloc_type local_40;
  
  var_1<9,_false,_64,_false>::var_1
            (&local_40.rel_,gsym,type,od,address,true,true,use_plt_offset);
  local_40.addend_ = addend;
  var_2<4,_false,_64,_false>::var_3
            (&this->super_Output_data_reloc_base<4,_false,_64,_false>,od,&local_40);
  return;
}


(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)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (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: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (number_literal) (number_literal) (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 (identifier) (identifier) (identifier)))) (return_statement))))

void MASKED(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
                 undefined4 param_5,undefined4 param_6,undefined4 param_7,undefined4 param_8,
                 undefined1 param_9)

{
  undefined1 local_40 [28];
  undefined4 local_24;
  undefined4 local_20;
  
  FUN_0016a200(local_40,param_2,param_3,param_4,param_5,param_6,1,1,param_9);
  local_20 = param_8;
  local_24 = param_7;
  FUN_0018c390(param_1,param_4,local_40);
  return;
}

