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

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

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



void FUN_0021e140(undefined8 param_1)

{
  undefined8 in_R8;
  long in_stack_00000010;
  undefined1 auStack_48 [48];
  
  if (in_stack_00000010 == 0) {
    FUN_00206500(auStack_48);
    FUN_0021dce0(param_1,in_R8,auStack_48);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic");
}


PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x30
CMP qword ptr [RSP + 0x58],0x0
JNZ 0x0021e18c
MOV RBX,RSP
PUSH 0x0
MOV R12,R8
MOV R8D,R9D
PUSH 0x0
MOV RBP,RDI
MOV RDI,RBX
PUSH 0x0
PUSH 0x0
MOV R9,qword ptr [RSP + 0x70]
CALL 0x00206500
ADD RSP,0x20
MOV RDX,RBX
MOV RSI,R12
MOV RDI,RBP
CALL 0x0021dce0
ADD RSP,0x30
POP RBX
POP RBP
POP R12
RET
LEA RDX,[0x37eff0]
MOV ESI,0x72c
LEA RDI,[0x373454]
CALL 0x0017c650
(translation_unit "void FUN_0021e140(undefined8 param_1)\n\n{\n  undefined8 in_R8;\n  long in_stack_00000010;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000010 == 0) {\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic");\n}\n\n" (function_definition "void FUN_0021e140(undefined8 param_1)\n\n{\n  undefined8 in_R8;\n  long in_stack_00000010;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000010 == 0) {\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic");\n}" primitive_type (function_declarator "FUN_0021e140(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_00000010;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000010 == 0) {\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic");\n}" { (declaration "undefined8 in_R8;" type_identifier identifier ;) (declaration "long in_stack_00000010;" (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_00000010 == 0) {\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }" if (parenthesized_expression "(in_stack_00000010 == 0)" ( (binary_expression "in_stack_00000010 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }" { (expression_statement "FUN_00206500(auStack_48);" (call_expression "FUN_00206500(auStack_48)" identifier (argument_list "(auStack_48)" ( identifier ))) ;) (expression_statement "FUN_0021dce0(param_1,in_R8,auStack_48);" (call_expression "FUN_0021dce0(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_0017c650("../../gold/output.h",0x72c,"add_local_generic");" (call_expression "FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic")" identifier (argument_list "("../../gold/output.h",0x72c,"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,_true,_64,_true> * this,\n   Relobj * relobj, uint local_sym_index, uint type, Output_data * od, uint shndx, uint64_t address,\n   uint64_t addend) */\n\nvoid __thiscall\ngold::Output_data_reloc<9,_true,_64,_true>::add_local_generic\n          (Output_data_reloc<9,_true,_64,_true> *this,Relobj *relobj,uint param_2,uint type,\n          Output_data *od,uint shndx,uint64_t address,uint64_t addend)\n\n{\n  Output_reloc<9,_true,_64,_true> OStack_48;\n  \n  if (addend == 0) {\n    Output_reloc<9,_true,_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false);\n    Output_data_reloc_base<9,_true,_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_true,_64,_true>,od,&OStack_48);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0x72c,"add_local_generic");\n}\n\n" comment (declaration "void __thiscall\ngold::Output_data_reloc<9,_true,_64,_true>::add_local_generic\n          (Output_data_reloc<9,_true,_64,_true> *this,Relobj *relobj,uint param_2,uint type,\n          Output_data *od,uint shndx,uint64_t address,uint64_t addend)\n\n{\n  Output_reloc<9,_true,_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,_true,_64,_true> *this,Relobj *relobj,uint param_2,uint type,\n          Output_data *od,uint shndx,uint64_t address,uint64_t addend)\n\n{" identifier > : : (function_declarator "add_local_generic\n          (Output_data_reloc<9,_true,_64,_true> *this,Relobj *relobj,uint param_2,uint type,\n          Output_data *od,uint shndx,uint64_t address,uint64_t addend)" identifier (parameter_list "(Output_data_reloc<9,_true,_64,_true> *this,Relobj *relobj,uint param_2,uint type,\n          Output_data *od,uint shndx,uint64_t address,uint64_t addend)" ( (parameter_declaration "Output_data_reloc" type_identifier) (ERROR "<9" < number_literal) , (parameter_declaration "_true" 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 "uint shndx" type_identifier 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,_true,_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false);\n    Output_data_reloc_base<9,_true,_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_true,_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,_true,_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false);\n    Output_data_reloc_base<9,_true,_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_true,_64,_true>,od,&OStack_48);\n    return;\n  }" { (expression_statement "Output_reloc<9,_true,_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false);" (comma_expression "Output_reloc<9,_true,_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false)" identifier , (comma_expression "_64,_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false)" identifier , (binary_expression "_true>::Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false)" identifier > (ERROR "::" : :) (call_expression "Output_reloc\n              (&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false)" identifier (argument_list "(&OStack_48,(Sized_relobj<64,_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false)" ( (pointer_expression "&OStack_48" & identifier) , (parenthesized_expression "(Sized_relobj<64,_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false)" ( (comma_expression "Sized_relobj<64,_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false" (binary_expression "Sized_relobj<64" identifier < number_literal) , (comma_expression "_true> *)relobj,param_2,type,shndx,address,false,false,\n               false,false" (binary_expression "_true> *)relobj" identifier > (pointer_expression "*)relobj" * (ERROR ")" )) identifier)) , (comma_expression "param_2,type,shndx,address,false,false,\n               false,false" identifier , (comma_expression "type,shndx,address,false,false,\n               false,false" identifier , (comma_expression "shndx,address,false,false,\n               false,false" identifier , (comma_expression "address,false,false,\n               false,false" identifier , (comma_expression "false,false,\n               false,false" false , (comma_expression "false,\n               false,false" false , (comma_expression "false,false" false , false))))))))) )) ))))))) ;) (expression_statement "Output_data_reloc_base<9,_true,_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_true,_64,_true>,od,&OStack_48);" (comma_expression "Output_data_reloc_base<9,_true,_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_true,_64,_true>,od,&OStack_48)" (binary_expression "Output_data_reloc_base<9" identifier < number_literal) , (comma_expression "_true,_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_true,_64,_true>,od,&OStack_48)" identifier , (comma_expression "_64,_true>::add\n              (&this->super_Output_data_reloc_base<9,_true,_64,_true>,od,&OStack_48)" identifier , (binary_expression "_true>::add\n              (&this->super_Output_data_reloc_base<9,_true,_64,_true>,od,&OStack_48)" identifier > (ERROR "::" : :) (call_expression "add\n              (&this->super_Output_data_reloc_base<9,_true,_64,_true>,od,&OStack_48)" identifier (argument_list "(&this->super_Output_data_reloc_base<9,_true,_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",0x72c,"add_local_generic");" (call_expression "do_gold_unreachable("../../gold/output.h",0x72c,"add_local_generic")" identifier (argument_list "("../../gold/output.h",0x72c,"add_local_generic")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""add_local_generic"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "void FUN_0021e140(undefined8 param_1)\n\n{\n  undefined8 in_R8;\n  long in_stack_00000010;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000010 == 0) {\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic");\n}\n\n" (function_definition "void FUN_0021e140(undefined8 param_1)\n\n{\n  undefined8 in_R8;\n  long in_stack_00000010;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000010 == 0) {\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic");\n}" primitive_type (function_declarator "FUN_0021e140(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_00000010;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000010 == 0) {\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic");\n}" { (declaration "undefined8 in_R8;" type_identifier identifier ;) (declaration "long in_stack_00000010;" (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_00000010 == 0) {\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }" if (parenthesized_expression "(in_stack_00000010 == 0)" ( (binary_expression "in_stack_00000010 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }" { (expression_statement "FUN_00206500(auStack_48);" (call_expression "FUN_00206500(auStack_48)" identifier (argument_list "(auStack_48)" ( identifier ))) ;) (expression_statement "FUN_0021dce0(param_1,in_R8,auStack_48);" (call_expression "FUN_0021dce0(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_0017c650("../../gold/output.h",0x72c,"add_local_generic");" (call_expression "FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic")" identifier (argument_list "("../../gold/output.h",0x72c,"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_0021e140(undefined8 param_1)\n\n{\n  undefined8 in_R8;\n  long in_stack_00000010;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000010 == 0) {\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic");\n}" (primitive_type "void") (function_declarator "FUN_0021e140(undefined8 param_1)" (identifier "FUN_0021e140") (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_00000010;\n  undefined1 auStack_48 [48];\n  \n  if (in_stack_00000010 == 0) {\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic");\n}" ({ "{") (declaration "undefined8 in_R8;" (type_identifier "undefined8") (identifier "in_R8") (; ";")) (declaration "long in_stack_00000010;" (sized_type_specifier "long" (long "long")) (identifier "in_stack_00000010") (; ";")) (declaration "undefined1 auStack_48 [48];" (type_identifier "undefined1") (array_declarator "auStack_48 [48]" (identifier "auStack_48") ([ "[") (number_literal "48") (] "]")) (; ";")) (if_statement "if (in_stack_00000010 == 0) {\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }" (if "if") (parenthesized_expression "(in_stack_00000010 == 0)" (( "(") (binary_expression "in_stack_00000010 == 0" (identifier "in_stack_00000010") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00206500(auStack_48);\n    FUN_0021dce0(param_1,in_R8,auStack_48);\n    return;\n  }" ({ "{") (expression_statement "FUN_00206500(auStack_48);" (call_expression "FUN_00206500(auStack_48)" (identifier "FUN_00206500") (argument_list "(auStack_48)" (( "(") (identifier "auStack_48") () ")"))) (; ";")) (expression_statement "FUN_0021dce0(param_1,in_R8,auStack_48);" (call_expression "FUN_0021dce0(param_1,in_R8,auStack_48)" (identifier "FUN_0021dce0") (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_0017c650("../../gold/output.h",0x72c,"add_local_generic");" (call_expression "FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0x72c,"add_local_generic")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x72c") (, ",") (string_literal ""add_local_generic"" (" """) (string_content "add_local_generic") (" """)) () ")"))) (; ";")) (} "}")))

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

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

{
  var_2<9,var_3,_64,var_3> OStack_48;
  
  if (var_1 == 0) {
    var_2<9,var_3,_64,var_3>::var_2
              (&OStack_48,(var_4<64,var_3> *)relobj,param_2,type,shndx,address,false,false,
               false,false);
    var_5<9,var_3,_64,var_3>::var_6
              (&this->super_Output_data_reloc_base<9,var_3,_64,var_3>,od,&OStack_48);
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_7("../../gold/output.h",0x72c,"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_00000010;
  undefined1 auStack_48 [48];
  
  if (in_stack_00000010 == 0) {
    FUN_00206500(auStack_48);
    FUN_0021dce0(param_1,in_R8,auStack_48);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/output.h",0x72c,"add_local_generic");
}

