
/* DWARF original prototype: void add_local_generic(Output_data_reloc<4,_false,_32,_false> * 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<4,_false,_32,_false>::add_local_generic
          (Output_data_reloc<4,_false,_32,_false> *this,Relobj *relobj,uint param_2,uint type,
          Output_data *od,uint shndx,uint64_t address,uint64_t addend)

{
  Sized_relobj<32,_false> *sized_relobj;
  Output_reloc_type OStack_58;
  
  if ((addend == (addend & 0xffffffff)) && (address == (address & 0xffffffff))) {
    Output_reloc<9,_false,_32,_false>::Output_reloc
              (&OStack_58.rel_,(Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address
               ,false,false,false,false);
    OStack_58.addend_ = (Addend)addend;
    Output_data_reloc_base<4,_false,_32,_false>::add
              (&this->super_Output_data_reloc_base<4,_false,_32,_false>,od,&OStack_58);
    return;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");
}



void FUN_0021eff0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)

{
  undefined1 auStack_58 [32];
  undefined4 local_38;
  
  if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {
    FUN_001ffe40(auStack_58);
    local_38 = (int)param_8;
    FUN_0021eb00(param_1,param_5,auStack_58);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);
}


PUSH R13
MOV R13,R8
MOV R8D,R9D
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x38
MOV RBX,qword ptr [RSP + 0x68]
MOV R9,qword ptr [RSP + 0x60]
MOV EAX,EBX
CMP RBX,RAX
JNZ 0x0021f050
MOV EAX,R9D
CMP R9,RAX
JNZ 0x0021f050
MOV RBP,RSP
PUSH 0x0
MOV R12,RDI
PUSH 0x0
MOV RDI,RBP
PUSH 0x0
PUSH 0x0
CALL 0x001ffe40
MOV dword ptr [RSP + 0x40],EBX
MOV RDX,RBP
ADD RSP,0x20
MOV RSI,R13
MOV RDI,R12
CALL 0x0021eb00
ADD RSP,0x38
POP RBX
POP RBP
POP R12
POP R13
RET
LEA RDX,[0x37f588]
MOV ESI,0xc0
LEA RDI,[0x3734af]
CALL 0x0017c650
(translation_unit "void FUN_0021eff0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)\n\n{\n  undefined1 auStack_58 [32];\n  undefined4 local_38;\n  \n  if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);\n}\n\n" (function_definition "void FUN_0021eff0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)\n\n{\n  undefined1 auStack_58 [32];\n  undefined4 local_38;\n  \n  if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);\n}" primitive_type (function_declarator "FUN_0021eff0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "ulong param_7" type_identifier identifier) , (parameter_declaration "ulong param_8" type_identifier identifier) ))) (compound_statement "{\n  undefined1 auStack_58 [32];\n  undefined4 local_38;\n  \n  if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);\n}" { (declaration "undefined1 auStack_58 [32];" type_identifier (array_declarator "auStack_58 [32]" identifier [ number_literal ]) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (if_statement "if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }" if (parenthesized_expression "((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff)))" ( (binary_expression "(param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))" (parenthesized_expression "(param_8 == (param_8 & 0xffffffff))" ( (binary_expression "param_8 == (param_8 & 0xffffffff)" identifier == (parenthesized_expression "(param_8 & 0xffffffff)" ( (binary_expression "param_8 & 0xffffffff" identifier & number_literal) ))) )) && (parenthesized_expression "(param_7 == (param_7 & 0xffffffff))" ( (binary_expression "param_7 == (param_7 & 0xffffffff)" identifier == (parenthesized_expression "(param_7 & 0xffffffff)" ( (binary_expression "param_7 & 0xffffffff" identifier & number_literal) ))) ))) )) (compound_statement "{\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }" { (expression_statement "FUN_001ffe40(auStack_58);" (call_expression "FUN_001ffe40(auStack_58)" identifier (argument_list "(auStack_58)" ( identifier ))) ;) (expression_statement "local_38 = (int)param_8;" (assignment_expression "local_38 = (int)param_8" identifier = (cast_expression "(int)param_8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_0021eb00(param_1,param_5,auStack_58);" (call_expression "FUN_0021eb00(param_1,param_5,auStack_58)" identifier (argument_list "(param_1,param_5,auStack_58)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);" (call_expression "FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6)" identifier (argument_list "("../../gold/gold.h",0xc0,"convert_types",param_4,param_6)" ( (string_literal ""../../gold/gold.h"" " string_content ") , number_literal , (string_literal ""convert_types"" " string_content ") , identifier , identifier ))) ;) })))
(translation_unit "/* DWARF original prototype: void add_local_generic(Output_data_reloc<4,_false,_32,_false> * 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<4,_false,_32,_false>::add_local_generic\n          (Output_data_reloc<4,_false,_32,_false> *this,Relobj *relobj,uint param_2,uint type,\n          Output_data *od,uint shndx,uint64_t address,uint64_t addend)\n\n{\n  Sized_relobj<32,_false> *sized_relobj;\n  Output_reloc_type OStack_58;\n  \n  if ((addend == (addend & 0xffffffff)) && (address == (address & 0xffffffff))) {\n    Output_reloc<9,_false,_32,_false>::Output_reloc\n              (&OStack_58.rel_,(Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false);\n    OStack_58.addend_ = (Addend)addend;\n    Output_data_reloc_base<4,_false,_32,_false>::add\n              (&this->super_Output_data_reloc_base<4,_false,_32,_false>,od,&OStack_58);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n}\n\n" comment (declaration "void __thiscall\ngold::Output_data_reloc<4,_false,_32,_false>::add_local_generic\n          (Output_data_reloc<4,_false,_32,_false> *this,Relobj *relobj,uint param_2,uint type,\n          Output_data *od,uint shndx,uint64_t address,uint64_t addend)\n\n{\n  Sized_relobj<32,_false> *sized_relobj;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<4" < number_literal) , identifier , identifier , (ERROR "_false>::add_local_generic\n          (Output_data_reloc<4,_false,_32,_false> *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<4,_false,_32,_false> *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<4,_false,_32,_false> *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 "<4" < number_literal) , (parameter_declaration "_false" type_identifier) , (parameter_declaration "_32" type_identifier) , (parameter_declaration "_false> *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 "<32" < number_literal) , (ERROR "_false>" identifier >) (pointer_declarator "*sized_relobj" * identifier) ;) (declaration "Output_reloc_type OStack_58;" type_identifier identifier ;) (if_statement "if ((addend == (addend & 0xffffffff)) && (address == (address & 0xffffffff))) {\n    Output_reloc<9,_false,_32,_false>::Output_reloc\n              (&OStack_58.rel_,(Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false);\n    OStack_58.addend_ = (Addend)addend;\n    Output_data_reloc_base<4,_false,_32,_false>::add\n              (&this->super_Output_data_reloc_base<4,_false,_32,_false>,od,&OStack_58);\n    return;\n  }" if (parenthesized_expression "((addend == (addend & 0xffffffff)) && (address == (address & 0xffffffff)))" ( (binary_expression "(addend == (addend & 0xffffffff)) && (address == (address & 0xffffffff))" (parenthesized_expression "(addend == (addend & 0xffffffff))" ( (binary_expression "addend == (addend & 0xffffffff)" identifier == (parenthesized_expression "(addend & 0xffffffff)" ( (binary_expression "addend & 0xffffffff" identifier & number_literal) ))) )) && (parenthesized_expression "(address == (address & 0xffffffff))" ( (binary_expression "address == (address & 0xffffffff)" identifier == (parenthesized_expression "(address & 0xffffffff)" ( (binary_expression "address & 0xffffffff" identifier & number_literal) ))) ))) )) (compound_statement "{\n    Output_reloc<9,_false,_32,_false>::Output_reloc\n              (&OStack_58.rel_,(Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false);\n    OStack_58.addend_ = (Addend)addend;\n    Output_data_reloc_base<4,_false,_32,_false>::add\n              (&this->super_Output_data_reloc_base<4,_false,_32,_false>,od,&OStack_58);\n    return;\n  }" { (expression_statement "Output_reloc<9,_false,_32,_false>::Output_reloc\n              (&OStack_58.rel_,(Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false);" (comma_expression "Output_reloc<9,_false,_32,_false>::Output_reloc\n              (&OStack_58.rel_,(Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_false,_32,_false>::Output_reloc\n              (&OStack_58.rel_,(Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false)" identifier , (comma_expression "_32,_false>::Output_reloc\n              (&OStack_58.rel_,(Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false)" identifier , (binary_expression "_false>::Output_reloc\n              (&OStack_58.rel_,(Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false)" identifier > (ERROR "::" : :) (call_expression "Output_reloc\n              (&OStack_58.rel_,(Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false)" identifier (argument_list "(&OStack_58.rel_,(Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false)" ( (pointer_expression "&OStack_58.rel_" & (field_expression "OStack_58.rel_" identifier . field_identifier)) , (parenthesized_expression "(Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false)" ( (comma_expression "Sized_relobj<32,_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false" (binary_expression "Sized_relobj<32" identifier < number_literal) , (comma_expression "_false> *)relobj,param_2,type,shndx,(Address)address\n               ,false,false,false,false" (binary_expression "_false> *)relobj" identifier > (pointer_expression "*)relobj" * (ERROR ")" )) identifier)) , (comma_expression "param_2,type,shndx,(Address)address\n               ,false,false,false,false" identifier , (comma_expression "type,shndx,(Address)address\n               ,false,false,false,false" identifier , (comma_expression "shndx,(Address)address\n               ,false,false,false,false" identifier , (comma_expression "(Address)address\n               ,false,false,false,false" (cast_expression "(Address)address" ( (type_descriptor "Address" type_identifier) ) identifier) , (comma_expression "false,false,false,false" false , (comma_expression "false,false,false" false , (comma_expression "false,false" false , false))))))))) )) ))))))) ;) (expression_statement "OStack_58.addend_ = (Addend)addend;" (assignment_expression "OStack_58.addend_ = (Addend)addend" (field_expression "OStack_58.addend_" identifier . field_identifier) = (cast_expression "(Addend)addend" ( (type_descriptor "Addend" type_identifier) ) identifier)) ;) (expression_statement "Output_data_reloc_base<4,_false,_32,_false>::add\n              (&this->super_Output_data_reloc_base<4,_false,_32,_false>,od,&OStack_58);" (comma_expression "Output_data_reloc_base<4,_false,_32,_false>::add\n              (&this->super_Output_data_reloc_base<4,_false,_32,_false>,od,&OStack_58)" (binary_expression "Output_data_reloc_base<4" identifier < number_literal) , (comma_expression "_false,_32,_false>::add\n              (&this->super_Output_data_reloc_base<4,_false,_32,_false>,od,&OStack_58)" identifier , (comma_expression "_32,_false>::add\n              (&this->super_Output_data_reloc_base<4,_false,_32,_false>,od,&OStack_58)" identifier , (binary_expression "_false>::add\n              (&this->super_Output_data_reloc_base<4,_false,_32,_false>,od,&OStack_58)" identifier > (ERROR "::" : :) (call_expression "add\n              (&this->super_Output_data_reloc_base<4,_false,_32,_false>,od,&OStack_58)" identifier (argument_list "(&this->super_Output_data_reloc_base<4,_false,_32,_false>,od,&OStack_58)" ( (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 "&OStack_58" & identifier) ))))))) ;) (return_statement "return;" return ;) })) comment (expression_statement "do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");" (call_expression "do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types")" identifier (argument_list "("../../gold/gold.h",0xc0,"convert_types")" ( (string_literal ""../../gold/gold.h"" " string_content ") , number_literal , (string_literal ""convert_types"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "void FUN_0021eff0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)\n\n{\n  undefined1 auStack_58 [32];\n  undefined4 local_38;\n  \n  if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);\n}\n\n" (function_definition "void FUN_0021eff0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)\n\n{\n  undefined1 auStack_58 [32];\n  undefined4 local_38;\n  \n  if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);\n}" primitive_type (function_declarator "FUN_0021eff0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "ulong param_7" type_identifier identifier) , (parameter_declaration "ulong param_8" type_identifier identifier) ))) (compound_statement "{\n  undefined1 auStack_58 [32];\n  undefined4 local_38;\n  \n  if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);\n}" { (declaration "undefined1 auStack_58 [32];" type_identifier (array_declarator "auStack_58 [32]" identifier [ number_literal ]) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (if_statement "if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }" if (parenthesized_expression "((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff)))" ( (binary_expression "(param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))" (parenthesized_expression "(param_8 == (param_8 & 0xffffffff))" ( (binary_expression "param_8 == (param_8 & 0xffffffff)" identifier == (parenthesized_expression "(param_8 & 0xffffffff)" ( (binary_expression "param_8 & 0xffffffff" identifier & number_literal) ))) )) && (parenthesized_expression "(param_7 == (param_7 & 0xffffffff))" ( (binary_expression "param_7 == (param_7 & 0xffffffff)" identifier == (parenthesized_expression "(param_7 & 0xffffffff)" ( (binary_expression "param_7 & 0xffffffff" identifier & number_literal) ))) ))) )) (compound_statement "{\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }" { (expression_statement "FUN_001ffe40(auStack_58);" (call_expression "FUN_001ffe40(auStack_58)" identifier (argument_list "(auStack_58)" ( identifier ))) ;) (expression_statement "local_38 = (int)param_8;" (assignment_expression "local_38 = (int)param_8" identifier = (cast_expression "(int)param_8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "FUN_0021eb00(param_1,param_5,auStack_58);" (call_expression "FUN_0021eb00(param_1,param_5,auStack_58)" identifier (argument_list "(param_1,param_5,auStack_58)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);" (call_expression "FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6)" identifier (argument_list "("../../gold/gold.h",0xc0,"convert_types",param_4,param_6)" ( (string_literal ""../../gold/gold.h"" " string_content ") , number_literal , (string_literal ""convert_types"" " string_content ") , identifier , identifier ))) ;) })))
(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) ))) (compound_statement { (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 ") , IDENT , IDENT ))) ;) })))
(function_definition "void FUN_0021eff0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)\n\n{\n  undefined1 auStack_58 [32];\n  undefined4 local_38;\n  \n  if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);\n}" (primitive_type "void") (function_declarator "FUN_0021eff0(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)" (identifier "FUN_0021eff0") (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) (, ",") (parameter_declaration "undefined8 param_5" (type_identifier "undefined8") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "ulong param_7" (type_identifier "ulong") (identifier "param_7")) (, ",") (parameter_declaration "ulong param_8" (type_identifier "ulong") (identifier "param_8")) () ")"))) (compound_statement "{\n  undefined1 auStack_58 [32];\n  undefined4 local_38;\n  \n  if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }\n                    \n  FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);\n}" ({ "{") (declaration "undefined1 auStack_58 [32];" (type_identifier "undefined1") (array_declarator "auStack_58 [32]" (identifier "auStack_58") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (if_statement "if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }" (if "if") (parenthesized_expression "((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff)))" (( "(") (binary_expression "(param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))" (parenthesized_expression "(param_8 == (param_8 & 0xffffffff))" (( "(") (binary_expression "param_8 == (param_8 & 0xffffffff)" (identifier "param_8") (== "==") (parenthesized_expression "(param_8 & 0xffffffff)" (( "(") (binary_expression "param_8 & 0xffffffff" (identifier "param_8") (& "&") (number_literal "0xffffffff")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_7 == (param_7 & 0xffffffff))" (( "(") (binary_expression "param_7 == (param_7 & 0xffffffff)" (identifier "param_7") (== "==") (parenthesized_expression "(param_7 & 0xffffffff)" (( "(") (binary_expression "param_7 & 0xffffffff" (identifier "param_7") (& "&") (number_literal "0xffffffff")) () ")"))) () ")"))) () ")")) (compound_statement "{\n    FUN_001ffe40(auStack_58);\n    local_38 = (int)param_8;\n    FUN_0021eb00(param_1,param_5,auStack_58);\n    return;\n  }" ({ "{") (expression_statement "FUN_001ffe40(auStack_58);" (call_expression "FUN_001ffe40(auStack_58)" (identifier "FUN_001ffe40") (argument_list "(auStack_58)" (( "(") (identifier "auStack_58") () ")"))) (; ";")) (expression_statement "local_38 = (int)param_8;" (assignment_expression "local_38 = (int)param_8" (identifier "local_38") (= "=") (cast_expression "(int)param_8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_8"))) (; ";")) (expression_statement "FUN_0021eb00(param_1,param_5,auStack_58);" (call_expression "FUN_0021eb00(param_1,param_5,auStack_58)" (identifier "FUN_0021eb00") (argument_list "(param_1,param_5,auStack_58)" (( "(") (identifier "param_1") (, ",") (identifier "param_5") (, ",") (identifier "auStack_58") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);" (call_expression "FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6)" (identifier "FUN_0017c650") (argument_list "("../../gold/gold.h",0xc0,"convert_types",param_4,param_6)" (( "(") (string_literal ""../../gold/gold.h"" (" """) (string_content "../../gold/gold.h") (" """)) (, ",") (number_literal "0xc0") (, ",") (string_literal ""convert_types"" (" """) (string_content "convert_types") (" """)) (, ",") (identifier "param_4") (, ",") (identifier "param_6") () ")"))) (; ";")) (} "}")))

/* DWARF original prototype: void add_local_generic(Output_data_reloc<4,_false,_32,_false> * 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<4,var_4,_32,var_4>::add_local_generic
          (Output_data_reloc<4,var_4,_32,var_4> *this,Relobj *relobj,uint param_2,uint type,
          Output_data *od,uint shndx,uint64_t var_2,uint64_t var_1)

{
  var_5<32,var_4> *sized_relobj;
  type_1 OStack_58;
  
  if ((var_1 == (var_1 & 0xffffffff)) && (var_2 == (var_2 & 0xffffffff))) {
    var_3<9,var_4,_32,var_4>::var_3
              (&OStack_58.rel_,(var_5<32,var_4> *)relobj,param_2,type,shndx,(type_2)var_2
               ,false,false,false,false);
    OStack_58.addend_ = (type_3)var_1;
    var_6<4,var_4,_32,var_4>::var_7
              (&this->super_Output_data_reloc_base<4,var_4,_32,var_4>,od,&OStack_58);
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_8("../../gold/gold.h",0xc0,"convert_types");
}


(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)))) body: (compound_statement (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) (identifier) (identifier)))))))

void MASKED(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
                 undefined8 param_5,undefined4 param_6,ulong param_7,ulong param_8)

{
  undefined1 auStack_58 [32];
  undefined4 local_38;
  
  if ((param_8 == (param_8 & 0xffffffff)) && (param_7 == (param_7 & 0xffffffff))) {
    FUN_001ffe40(auStack_58);
    local_38 = (int)param_8;
    FUN_0021eb00(param_1,param_5,auStack_58);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/gold.h",0xc0,"convert_types",param_4,param_6);
}

