
/* DWARF original prototype: void add_local_generic(Output_data_reloc<9,_false,_64,_true> * this,
   Relobj * relobj, uint local_sym_index, uint type, Output_data * od, uint64_t address, uint64_t
   addend) */

void __thiscall
gold::Output_data_reloc<9,_false,_64,_true>::add_local_generic
          (Output_data_reloc<9,_false,_64,_true> *this,Relobj *relobj,uint param_2,uint type,
          Output_data *od,uint64_t address,uint64_t addend)

{
  Output_reloc<9,_false,_64,_true> OStack_48;
  
  if (addend == 0) {
    Output_reloc<9,_false,_64,_true>::Output_reloc
              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false
               ,false);
    Output_data_reloc_base<9,_false,_64,_true>::add
              (&this->super_Output_data_reloc_base<9,_false,_64,_true>,od,&OStack_48);
    return;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/output.h",0x71f,"add_local_generic");
}



void FUN_00283ce0(undefined8 param_1)

{
  undefined8 in_R8;
  long in_stack_00000008;
  undefined1 auStack_48 [48];
  
  if (in_stack_00000008 == 0) {
    FUN_0026d5f0(auStack_48);
    FUN_002838f0(param_1,in_R8,auStack_48);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");
}


PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x30
CMP qword ptr [RSP + 0x50],0x0
JNZ 0x00283d24
MOV RBP,RSP
PUSH 0x0
MOV RBX,R8
MOV R12,RDI
PUSH 0x0
MOV RDI,RBP
PUSH 0x0
PUSH 0x0
CALL 0x0026d5f0
ADD RSP,0x20
MOV RDX,RBP
MOV RSI,RBX
MOV RDI,R12
CALL 0x002838f0
ADD RSP,0x30
POP RBX
POP RBP
POP R12
RET
LEA RDX,[0x3ee270]
MOV ESI,0x71f
LEA RDI,[0x3de409]
CALL 0x001e9890
(translation_unit "void FUN_00283ce0(undefined8 param_1)\n\n{\n  undefined8 in_R8;\n  long in_stack_00000008;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000008 == 0) {\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");\n}\n\n" (function_definition "void FUN_00283ce0(undefined8 param_1)\n\n{\n  undefined8 in_R8;\n  long in_stack_00000008;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000008 == 0) {\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");\n}" primitive_type (function_declarator "FUN_00283ce0(undefined8 param_1)" identifier (parameter_list "(undefined8 param_1)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined8 in_R8;\n  long in_stack_00000008;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000008 == 0) {\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");\n}" { (declaration "undefined8 in_R8;" type_identifier identifier ;) (declaration "long in_stack_00000008;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auStack_48 [48];" type_identifier (array_declarator "auStack_48 [48]" identifier [ number_literal ]) ;) (if_statement "if (in_stack_00000008 == 0) {\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }" if (parenthesized_expression "(in_stack_00000008 == 0)" ( (binary_expression "in_stack_00000008 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }" { (expression_statement "FUN_0026d5f0(auStack_48);" (call_expression "FUN_0026d5f0(auStack_48)" identifier (argument_list "(auStack_48)" ( identifier ))) ;) (expression_statement "FUN_002838f0(param_1,in_R8,auStack_48);" (call_expression "FUN_002838f0(param_1,in_R8,auStack_48)" identifier (argument_list "(param_1,in_R8,auStack_48)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");" (call_expression "FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic")" identifier (argument_list "("../../gold/output.h",0x71f,"add_local_generic")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""add_local_generic"" " string_content ") ))) ;) })))
(translation_unit "/* DWARF original prototype: void add_local_generic(Output_data_reloc<9,_false,_64,_true> * this,\n   Relobj * relobj, uint local_sym_index, uint type, Output_data * od, uint64_t address, uint64_t\n   addend) */\n\nvoid __thiscall\ngold::Output_data_reloc<9,_false,_64,_true>::add_local_generic\n          (Output_data_reloc<9,_false,_64,_true> *this,Relobj *relobj,uint param_2,uint type,\n          Output_data *od,uint64_t address,uint64_t addend)\n\n{\n  Output_reloc<9,_false,_64,_true> OStack_48;\n  \n  if (addend == 0) {\n    Output_reloc<9,_false,_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false);\n    Output_data_reloc_base<9,_false,_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_false,_64,_true>,od,&OStack_48);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0x71f,"add_local_generic");\n}\n\n" comment (declaration "void __thiscall\ngold::Output_data_reloc<9,_false,_64,_true>::add_local_generic\n          (Output_data_reloc<9,_false,_64,_true> *this,Relobj *relobj,uint param_2,uint type,\n          Output_data *od,uint64_t address,uint64_t addend)\n\n{\n  Output_reloc<9,_false,_64,_true> OStack_48;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<9" < number_literal) , identifier , identifier , (ERROR "_true>::add_local_generic\n          (Output_data_reloc<9,_false,_64,_true> *this,Relobj *relobj,uint param_2,uint type,\n          Output_data *od,uint64_t address,uint64_t addend)\n\n{" identifier > : : (function_declarator "add_local_generic\n          (Output_data_reloc<9,_false,_64,_true> *this,Relobj *relobj,uint param_2,uint type,\n          Output_data *od,uint64_t address,uint64_t addend)" identifier (parameter_list "(Output_data_reloc<9,_false,_64,_true> *this,Relobj *relobj,uint param_2,uint type,\n          Output_data *od,uint64_t address,uint64_t addend)" ( (parameter_declaration "Output_data_reloc" type_identifier) (ERROR "<9" < number_literal) , (parameter_declaration "_false" type_identifier) , (parameter_declaration "_64" type_identifier) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relobj *relobj" type_identifier (pointer_declarator "*relobj" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint type" type_identifier identifier) , (parameter_declaration "Output_data *od" type_identifier (pointer_declarator "*od" * identifier)) , (parameter_declaration "uint64_t address" primitive_type identifier) , (parameter_declaration "uint64_t addend" primitive_type identifier) ))) {) identifier (ERROR "<9" < number_literal) , identifier , identifier , (ERROR "_true>" identifier >) identifier ;) (if_statement "if (addend == 0) {\n    Output_reloc<9,_false,_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false);\n    Output_data_reloc_base<9,_false,_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_false,_64,_true>,od,&OStack_48);\n    return;\n  }" if (parenthesized_expression "(addend == 0)" ( (binary_expression "addend == 0" identifier == number_literal) )) (compound_statement "{\n    Output_reloc<9,_false,_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false);\n    Output_data_reloc_base<9,_false,_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_false,_64,_true>,od,&OStack_48);\n    return;\n  }" { (expression_statement "Output_reloc<9,_false,_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false);" (comma_expression "Output_reloc<9,_false,_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_false,_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false)" identifier , (comma_expression "_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false)" identifier , (binary_expression "_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false)" identifier > (ERROR "::" : :) (call_expression "Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false)" identifier (argument_list "(&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false)" ( (pointer_expression "&OStack_48" & identifier) , (parenthesized_expression "(Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false)" ( (comma_expression "Sized_relobj<64,_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false" (binary_expression "Sized_relobj<64" identifier < number_literal) , (comma_expression "_true> *)relobj,param_2,type,od,address,false,false,false\n               ,false" (binary_expression "_true> *)relobj" identifier > (pointer_expression "*)relobj" * (ERROR ")" )) identifier)) , (comma_expression "param_2,type,od,address,false,false,false\n               ,false" identifier , (comma_expression "type,od,address,false,false,false\n               ,false" identifier , (comma_expression "od,address,false,false,false\n               ,false" identifier , (comma_expression "address,false,false,false\n               ,false" identifier , (comma_expression "false,false,false\n               ,false" false , (comma_expression "false,false\n               ,false" false , (comma_expression "false\n               ,false" false , false))))))))) )) ))))))) ;) (expression_statement "Output_data_reloc_base<9,_false,_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_false,_64,_true>,od,&OStack_48);" (comma_expression "Output_data_reloc_base<9,_false,_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_false,_64,_true>,od,&OStack_48)" (binary_expression "Output_data_reloc_base<9" identifier < number_literal) , (comma_expression "_false,_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_false,_64,_true>,od,&OStack_48)" identifier , (comma_expression "_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_false,_64,_true>,od,&OStack_48)" identifier , (binary_expression "_true>::add\n              (&this->super_Output_data_reloc_base<9,_false,_64,_true>,od,&OStack_48)" identifier > (ERROR "::" : :) (call_expression "add\n              (&this->super_Output_data_reloc_base<9,_false,_64,_true>,od,&OStack_48)" identifier (argument_list "(&this->super_Output_data_reloc_base<9,_false,_64,_true>,od,&OStack_48)" ( (binary_expression "&this->super_Output_data_reloc_base<9" (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 "&OStack_48" & identifier) ))))))) ;) (return_statement "return;" return ;) })) comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x71f,"add_local_generic");" (call_expression "do_gold_unreachable("../../gold/output.h",0x71f,"add_local_generic")" identifier (argument_list "("../../gold/output.h",0x71f,"add_local_generic")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""add_local_generic"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "void FUN_00283ce0(undefined8 param_1)\n\n{\n  undefined8 in_R8;\n  long in_stack_00000008;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000008 == 0) {\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    \n  FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");\n}\n\n" (function_definition "void FUN_00283ce0(undefined8 param_1)\n\n{\n  undefined8 in_R8;\n  long in_stack_00000008;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000008 == 0) {\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    \n  FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");\n}" primitive_type (function_declarator "FUN_00283ce0(undefined8 param_1)" identifier (parameter_list "(undefined8 param_1)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined8 in_R8;\n  long in_stack_00000008;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000008 == 0) {\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    \n  FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");\n}" { (declaration "undefined8 in_R8;" type_identifier identifier ;) (declaration "long in_stack_00000008;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 auStack_48 [48];" type_identifier (array_declarator "auStack_48 [48]" identifier [ number_literal ]) ;) (if_statement "if (in_stack_00000008 == 0) {\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }" if (parenthesized_expression "(in_stack_00000008 == 0)" ( (binary_expression "in_stack_00000008 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }" { (expression_statement "FUN_0026d5f0(auStack_48);" (call_expression "FUN_0026d5f0(auStack_48)" identifier (argument_list "(auStack_48)" ( identifier ))) ;) (expression_statement "FUN_002838f0(param_1,in_R8,auStack_48);" (call_expression "FUN_002838f0(param_1,in_R8,auStack_48)" identifier (argument_list "(param_1,in_R8,auStack_48)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");" (call_expression "FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic")" identifier (argument_list "("../../gold/output.h",0x71f,"add_local_generic")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""add_local_generic"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_00283ce0(undefined8 param_1)\n\n{\n  undefined8 in_R8;\n  long in_stack_00000008;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000008 == 0) {\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    \n  FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");\n}" (primitive_type "void") (function_declarator "FUN_00283ce0(undefined8 param_1)" (identifier "FUN_00283ce0") (parameter_list "(undefined8 param_1)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined8 in_R8;\n  long in_stack_00000008;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000008 == 0) {\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    \n  FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");\n}" ({ "{") (declaration "undefined8 in_R8;" (type_identifier "undefined8") (identifier "in_R8") (; ";")) (declaration "long in_stack_00000008;" (sized_type_specifier "long" (long "long")) (identifier "in_stack_00000008") (; ";")) (declaration "undefined1 auStack_48 [48];" (type_identifier "undefined1") (array_declarator "auStack_48 [48]" (identifier "auStack_48") ([ "[") (number_literal "48") (] "]")) (; ";")) (if_statement "if (in_stack_00000008 == 0) {\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }" (if "if") (parenthesized_expression "(in_stack_00000008 == 0)" (( "(") (binary_expression "in_stack_00000008 == 0" (identifier "in_stack_00000008") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0026d5f0(auStack_48);\n    FUN_002838f0(param_1,in_R8,auStack_48);\n    return;\n  }" ({ "{") (expression_statement "FUN_0026d5f0(auStack_48);" (call_expression "FUN_0026d5f0(auStack_48)" (identifier "FUN_0026d5f0") (argument_list "(auStack_48)" (( "(") (identifier "auStack_48") () ")"))) (; ";")) (expression_statement "FUN_002838f0(param_1,in_R8,auStack_48);" (call_expression "FUN_002838f0(param_1,in_R8,auStack_48)" (identifier "FUN_002838f0") (argument_list "(param_1,in_R8,auStack_48)" (( "(") (identifier "param_1") (, ",") (identifier "in_R8") (, ",") (identifier "auStack_48") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");" (call_expression "FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic")" (identifier "FUN_001e9890") (argument_list "("../../gold/output.h",0x71f,"add_local_generic")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x71f") (, ",") (string_literal ""add_local_generic"" (" """) (string_content "add_local_generic") (" """)) () ")"))) (; ";")) (} "}")))

/* DWARF original prototype: void add_local_generic(Output_data_reloc<9,_false,_64,_true> * this,
   Relobj * relobj, uint local_sym_index, uint type, Output_data * od, uint64_t address, uint64_t
   addend) */

void __thiscall
gold::Output_data_reloc<9,_false,_64,var_3>::add_local_generic
          (Output_data_reloc<9,_false,_64,var_3> *this,Relobj *relobj,uint param_2,uint type,
          Output_data *od,uint64_t address,uint64_t var_1)

{
  var_2<9,_false,_64,var_3> OStack_48;
  
  if (var_1 == 0) {
    var_2<9,_false,_64,var_3>::var_2
              (&OStack_48,(var_4<64,var_3> *)relobj,param_2,type,od,address,false,false,false
               ,false);
    var_5<9,_false,_64,var_3>::var_6
              (&this->super_Output_data_reloc_base<9,_false,_64,var_3>,od,&OStack_48);
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_7("../../gold/output.h",0x71f,"add_local_generic");
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))))

void MASKED(undefined8 param_1)

{
  undefined8 in_R8;
  long in_stack_00000008;
  undefined1 auStack_48 [48];
  
  if (in_stack_00000008 == 0) {
    FUN_0026d5f0(auStack_48);
    FUN_002838f0(param_1,in_R8,auStack_48);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_001e9890("../../gold/output.h",0x71f,"add_local_generic");
}

