
/* DWARF original prototype: void add_output_section_generic(Output_data_reloc<9,_false,_32,_false>
   * this, Output_section * os, uint type, Output_data * od, Relobj * relobj, uint shndx, uint64_t
   address, uint64_t addend) */

void __thiscall
gold::Output_data_reloc<9,_false,_32,_false>::add_output_section_generic
          (Output_data_reloc<9,_false,_32,_false> *this,Output_section *os,uint type,Output_data *od
          ,Relobj *relobj,uint shndx,uint64_t address,uint64_t addend)

{
  Output_reloc<9,_false,_32,_false> OStack_38;
  
  if (addend != 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0x79f,"add_output_section_generic");
  }
  if (address == (address & 0xffffffff)) {
    Output_reloc<9,_false,_32,_false>::Output_reloc
              (&OStack_38,os,type,(Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false);
    Output_data_reloc_base<9,_false,_32,_false>::add
              (&this->super_Output_data_reloc_base<9,_false,_32,_false>,od,&OStack_38);
    return;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");
}



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

{
  undefined1 auStack_38 [32];
  
  if (param_8 != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);
  }
  if (param_7 == (param_7 & 0xffffffff)) {
    FUN_001ca2a0(auStack_38);
    FUN_001d85d0(param_1,param_4,auStack_38);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);
}


PUSH R12
MOV R12,RCX
MOV RCX,R8
MOV R8D,R9D
PUSH RBP
PUSH RBX
SUB RSP,0x20
CMP qword ptr [RSP + 0x48],0x0
MOV R9,qword ptr [RSP + 0x40]
JNZ 0x001d8983
MOV EAX,R9D
CMP R9,RAX
JNZ 0x001d899b
MOV RBX,RSP
SUB RSP,0x8
MOV RBP,RDI
PUSH 0x0
MOV RDI,RBX
CALL 0x001ca2a0
POP RAX
MOV RSI,R12
POP RDX
MOV RDI,RBP
MOV RDX,RBX
CALL 0x001d85d0
ADD RSP,0x20
POP RBX
POP RBP
POP R12
RET
LEA RDX,[0x318e50]
MOV ESI,0x79f
LEA RDI,[0x30e9f4]
CALL 0x0016cdf0
LEA RDX,[0x318ee8]
MOV ESI,0xc0
LEA RDI,[0x30ea4f]
CALL 0x0016cdf0
(translation_unit "void FUN_001d8930(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,long param_8)\n\n{\n  undefined1 auStack_38 [32];\n  \n  if (param_8 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }\n  if (param_7 == (param_7 & 0xffffffff)) {\n    FUN_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);\n}\n\n" (function_definition "void FUN_001d8930(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,long param_8)\n\n{\n  undefined1 auStack_38 [32];\n  \n  if (param_8 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }\n  if (param_7 == (param_7 & 0xffffffff)) {\n    FUN_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);\n}" primitive_type (function_declarator "FUN_001d8930(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,long 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,long 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 "long param_8" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined1 auStack_38 [32];\n  \n  if (param_8 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }\n  if (param_7 == (param_7 & 0xffffffff)) {\n    FUN_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);\n}" { (declaration "undefined1 auStack_38 [32];" type_identifier (array_declarator "auStack_38 [32]" identifier [ number_literal ]) ;) (if_statement "if (param_8 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);" (call_expression "FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6)" identifier (argument_list "("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""add_output_section_generic"" " string_content ") , identifier , identifier ))) ;) })) (if_statement "if (param_7 == (param_7 & 0xffffffff)) {\n    FUN_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }" if (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_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }" { (expression_statement "FUN_001ca2a0(auStack_38);" (call_expression "FUN_001ca2a0(auStack_38)" identifier (argument_list "(auStack_38)" ( identifier ))) ;) (expression_statement "FUN_001d85d0(param_1,param_4,auStack_38);" (call_expression "FUN_001d85d0(param_1,param_4,auStack_38)" identifier (argument_list "(param_1,param_4,auStack_38)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);" (call_expression "FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6)" identifier (argument_list "("../../gold/gold.h",0xc0,"convert_types",param_5,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_output_section_generic(Output_data_reloc<9,_false,_32,_false>\n   * this, Output_section * os, uint type, Output_data * od, Relobj * relobj, uint shndx, uint64_t\n   address, uint64_t addend) */\n\nvoid __thiscall\ngold::Output_data_reloc<9,_false,_32,_false>::add_output_section_generic\n          (Output_data_reloc<9,_false,_32,_false> *this,Output_section *os,uint type,Output_data *od\n          ,Relobj *relobj,uint shndx,uint64_t address,uint64_t addend)\n\n{\n  Output_reloc<9,_false,_32,_false> OStack_38;\n  \n  if (addend != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x79f,"add_output_section_generic");\n  }\n  if (address == (address & 0xffffffff)) {\n    Output_reloc<9,_false,_32,_false>::Output_reloc\n              (&OStack_38,os,type,(Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false);\n    Output_data_reloc_base<9,_false,_32,_false>::add\n              (&this->super_Output_data_reloc_base<9,_false,_32,_false>,od,&OStack_38);\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<9,_false,_32,_false>::add_output_section_generic\n          (Output_data_reloc<9,_false,_32,_false> *this,Output_section *os,uint type,Output_data *od\n          ,Relobj *relobj,uint shndx,uint64_t address,uint64_t addend)\n\n{\n  Output_reloc<9,_false,_32,_false> OStack_38;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<9" < number_literal) , identifier , identifier , (ERROR "_false>::add_output_section_generic\n          (Output_data_reloc<9,_false,_32,_false> *this,Output_section *os,uint type,Output_data *od\n          ,Relobj *relobj,uint shndx,uint64_t address,uint64_t addend)\n\n{" identifier > : : (function_declarator "add_output_section_generic\n          (Output_data_reloc<9,_false,_32,_false> *this,Output_section *os,uint type,Output_data *od\n          ,Relobj *relobj,uint shndx,uint64_t address,uint64_t addend)" identifier (parameter_list "(Output_data_reloc<9,_false,_32,_false> *this,Output_section *os,uint type,Output_data *od\n          ,Relobj *relobj,uint shndx,uint64_t address,uint64_t addend)" ( (parameter_declaration "Output_data_reloc" type_identifier) (ERROR "<9" < 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 "Output_section *os" type_identifier (pointer_declarator "*os" * identifier)) , (parameter_declaration "uint type" type_identifier identifier) , (parameter_declaration "Output_data *od" type_identifier (pointer_declarator "*od" * identifier)) , (parameter_declaration "Relobj *relobj" type_identifier (pointer_declarator "*relobj" * 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 "_false>" identifier >) identifier ;) (if_statement "if (addend != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x79f,"add_output_section_generic");\n  }" if (parenthesized_expression "(addend != 0)" ( (binary_expression "addend != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x79f,"add_output_section_generic");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x79f,"add_output_section_generic");" (call_expression "do_gold_unreachable("../../gold/output.h",0x79f,"add_output_section_generic")" identifier (argument_list "("../../gold/output.h",0x79f,"add_output_section_generic")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""add_output_section_generic"" " string_content ") ))) ;) })) (if_statement "if (address == (address & 0xffffffff)) {\n    Output_reloc<9,_false,_32,_false>::Output_reloc\n              (&OStack_38,os,type,(Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false);\n    Output_data_reloc_base<9,_false,_32,_false>::add\n              (&this->super_Output_data_reloc_base<9,_false,_32,_false>,od,&OStack_38);\n    return;\n  }" if (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_38,os,type,(Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false);\n    Output_data_reloc_base<9,_false,_32,_false>::add\n              (&this->super_Output_data_reloc_base<9,_false,_32,_false>,od,&OStack_38);\n    return;\n  }" { (expression_statement "Output_reloc<9,_false,_32,_false>::Output_reloc\n              (&OStack_38,os,type,(Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false);" (comma_expression "Output_reloc<9,_false,_32,_false>::Output_reloc\n              (&OStack_38,os,type,(Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false)" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_false,_32,_false>::Output_reloc\n              (&OStack_38,os,type,(Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false)" identifier , (comma_expression "_32,_false>::Output_reloc\n              (&OStack_38,os,type,(Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false)" identifier , (binary_expression "_false>::Output_reloc\n              (&OStack_38,os,type,(Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false)" identifier > (ERROR "::" : :) (call_expression "Output_reloc\n              (&OStack_38,os,type,(Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false)" identifier (argument_list "(&OStack_38,os,type,(Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false)" ( (pointer_expression "&OStack_38" & identifier) , identifier , identifier , (parenthesized_expression "(Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false)" ( (comma_expression "Sized_relobj<32,_false> *)relobj,shndx,(Address)address,false" (binary_expression "Sized_relobj<32" identifier < number_literal) , (comma_expression "_false> *)relobj,shndx,(Address)address,false" (binary_expression "_false> *)relobj" identifier > (pointer_expression "*)relobj" * (ERROR ")" )) identifier)) , (comma_expression "shndx,(Address)address,false" identifier , (comma_expression "(Address)address,false" (cast_expression "(Address)address" ( (type_descriptor "Address" type_identifier) ) identifier) , false)))) )) ))))))) ;) (expression_statement "Output_data_reloc_base<9,_false,_32,_false>::add\n              (&this->super_Output_data_reloc_base<9,_false,_32,_false>,od,&OStack_38);" (comma_expression "Output_data_reloc_base<9,_false,_32,_false>::add\n              (&this->super_Output_data_reloc_base<9,_false,_32,_false>,od,&OStack_38)" (binary_expression "Output_data_reloc_base<9" identifier < number_literal) , (comma_expression "_false,_32,_false>::add\n              (&this->super_Output_data_reloc_base<9,_false,_32,_false>,od,&OStack_38)" identifier , (comma_expression "_32,_false>::add\n              (&this->super_Output_data_reloc_base<9,_false,_32,_false>,od,&OStack_38)" identifier , (binary_expression "_false>::add\n              (&this->super_Output_data_reloc_base<9,_false,_32,_false>,od,&OStack_38)" identifier > (ERROR "::" : :) (call_expression "add\n              (&this->super_Output_data_reloc_base<9,_false,_32,_false>,od,&OStack_38)" identifier (argument_list "(&this->super_Output_data_reloc_base<9,_false,_32,_false>,od,&OStack_38)" ( (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_38" & 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_001d8930(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,long param_8)\n\n{\n  undefined1 auStack_38 [32];\n  \n  if (param_8 != 0) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }\n  if (param_7 == (param_7 & 0xffffffff)) {\n    FUN_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }\n                    \n  FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);\n}\n\n" (function_definition "void FUN_001d8930(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,long param_8)\n\n{\n  undefined1 auStack_38 [32];\n  \n  if (param_8 != 0) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }\n  if (param_7 == (param_7 & 0xffffffff)) {\n    FUN_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }\n                    \n  FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);\n}" primitive_type (function_declarator "FUN_001d8930(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,long 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,long 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 "long param_8" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined1 auStack_38 [32];\n  \n  if (param_8 != 0) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }\n  if (param_7 == (param_7 & 0xffffffff)) {\n    FUN_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }\n                    \n  FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);\n}" { (declaration "undefined1 auStack_38 [32];" type_identifier (array_declarator "auStack_38 [32]" identifier [ number_literal ]) ;) (if_statement "if (param_8 != 0) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }" { (expression_statement "FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);" (call_expression "FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6)" identifier (argument_list "("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""add_output_section_generic"" " string_content ") , identifier , identifier ))) ;) })) (if_statement "if (param_7 == (param_7 & 0xffffffff)) {\n    FUN_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }" if (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_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }" { (expression_statement "FUN_001ca2a0(auStack_38);" (call_expression "FUN_001ca2a0(auStack_38)" identifier (argument_list "(auStack_38)" ( identifier ))) ;) (expression_statement "FUN_001d85d0(param_1,param_4,auStack_38);" (call_expression "FUN_001d85d0(param_1,param_4,auStack_38)" identifier (argument_list "(param_1,param_4,auStack_38)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);" (call_expression "FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6)" identifier (argument_list "("../../gold/gold.h",0xc0,"convert_types",param_5,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 (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (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 ") , IDENT , IDENT ))) ;) })))
(function_definition "void FUN_001d8930(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,long param_8)\n\n{\n  undefined1 auStack_38 [32];\n  \n  if (param_8 != 0) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }\n  if (param_7 == (param_7 & 0xffffffff)) {\n    FUN_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }\n                    \n  FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);\n}" (primitive_type "void") (function_declarator "FUN_001d8930(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,long param_8)" (identifier "FUN_001d8930") (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                 undefined8 param_5,undefined4 param_6,ulong param_7,long 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 "long param_8" (sized_type_specifier "long" (long "long")) (identifier "param_8")) () ")"))) (compound_statement "{\n  undefined1 auStack_38 [32];\n  \n  if (param_8 != 0) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }\n  if (param_7 == (param_7 & 0xffffffff)) {\n    FUN_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }\n                    \n  FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);\n}" ({ "{") (declaration "undefined1 auStack_38 [32];" (type_identifier "undefined1") (array_declarator "auStack_38 [32]" (identifier "auStack_38") ([ "[") (number_literal "32") (] "]")) (; ";")) (if_statement "if (param_8 != 0) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }" (if "if") (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);" (call_expression "FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6)" (identifier "FUN_0016cdf0") (argument_list "("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x79f") (, ",") (string_literal ""add_output_section_generic"" (" """) (string_content "add_output_section_generic") (" """)) (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_7 == (param_7 & 0xffffffff)) {\n    FUN_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }" (if "if") (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_001ca2a0(auStack_38);\n    FUN_001d85d0(param_1,param_4,auStack_38);\n    return;\n  }" ({ "{") (expression_statement "FUN_001ca2a0(auStack_38);" (call_expression "FUN_001ca2a0(auStack_38)" (identifier "FUN_001ca2a0") (argument_list "(auStack_38)" (( "(") (identifier "auStack_38") () ")"))) (; ";")) (expression_statement "FUN_001d85d0(param_1,param_4,auStack_38);" (call_expression "FUN_001d85d0(param_1,param_4,auStack_38)" (identifier "FUN_001d85d0") (argument_list "(param_1,param_4,auStack_38)" (( "(") (identifier "param_1") (, ",") (identifier "param_4") (, ",") (identifier "auStack_38") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);" (call_expression "FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6)" (identifier "FUN_0016cdf0") (argument_list "("../../gold/gold.h",0xc0,"convert_types",param_5,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_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (} "}")))

/* DWARF original prototype: void add_output_section_generic(Output_data_reloc<9,_false,_32,_false>
   * this, Output_section * os, uint type, Output_data * od, Relobj * relobj, uint shndx, uint64_t
   address, uint64_t addend) */

void __thiscall
gold::Output_data_reloc<9,var_5,_32,var_5>::add_output_section_generic
          (Output_data_reloc<9,var_5,_32,var_5> *this,Output_section *os,uint type,Output_data *od
          ,Relobj *relobj,uint shndx,uint64_t var_3,uint64_t var_1)

{
  var_4<9,var_5,_32,var_5> OStack_38;
  
  if (var_1 != 0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/output.h",0x79f,"add_output_section_generic");
  }
  if (var_3 == (var_3 & 0xffffffff)) {
    var_4<9,var_5,_32,var_5>::var_4
              (&OStack_38,os,type,(var_6<32,var_5> *)relobj,shndx,(type_1)var_3,false);
    var_7<9,var_5,_32,var_5>::var_8
              (&this->super_Output_data_reloc_base<9,var_5,_32,var_5>,od,&OStack_38);
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_2("../../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: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (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 (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier) (identifier)))))) (if_statement condition: (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 (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,long param_8)

{
  undefined1 auStack_38 [32];
  
  if (param_8 != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/output.h",0x79f,"add_output_section_generic",param_5,param_6);
  }
  if (param_7 == (param_7 & 0xffffffff)) {
    FUN_001ca2a0(auStack_38);
    FUN_001d85d0(param_1,param_4,auStack_38);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/gold.h",0xc0,"convert_types",param_5,param_6);
}

