
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Arm_input_section<true>": ignoring overlapping field "original_addralign_" */
/* WARNING: Enum "<anon>": Some values do not have unique names */
/* DWARF original prototype: Output_section * do_make_output_section(Target_arm<true> * this, char *
   name, Elf_Word type, Elf_Xword flags) */

Output_section * __thiscall
anon_unknown.dwarf_9b9b16::Target_arm<true>::do_make_output_section
          (Target_arm<true> *this,char *name,Elf_Word type,Elf_Xword flags)

{
  Output_section *this_00;
  
  this_00 = (Output_section *)operator_new(0x148);
  if (type == 0x70000001) {
    flags = flags | 0x80;
  }
                    /* try { // try from 00230d3c to 00230d40 has its CatchHandler @ 00230d9c */
  gold::Output_section::Output_section(this_00,name,type,flags);
  (this_00->super_Output_data)._vptr_Output_data =
       (_func_int_varargs **)&PTR__Arm_output_section_006674a8;
  if (type != 0x70000001) {
    return this_00;
  }
  if ((this_00->super_Output_data).data_size_ == 0) {
    this_00->field_0xca = this_00->field_0xca | 0x10;
    return this_00;
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00230d97 to 00230d9b has its CatchHandler @ 00230da4 */
  gold::do_gold_unreachable("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");
}



undefined8 * FUN_00230d00(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)

{
  undefined8 *puVar1;
  
  puVar1 = (undefined8 *)FUN_0049cb60(0x148);
  if (param_3 == 0x70000001) {
    param_4 = param_4 | 0x80;
  }
                    /* try { // try from 00230d3c to 00230d40 has its CatchHandler @ 00230d9c */
  FUN_003c9d20(puVar1,param_2,param_3,param_4);
  *puVar1 = &PTR_FUN_006674a8;
  if (param_3 != 0x70000001) {
    return puVar1;
  }
  if (puVar1[2] == 0) {
    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;
    return puVar1;
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00230d97 to 00230d9b has its CatchHandler @ 00230da4 */
  FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");
}


PUSH R13
MOV EDI,0x148
MOV R13,RSI
PUSH R12
MOV R12D,EDX
PUSH RBP
MOV RBP,RCX
PUSH RBX
SUB RSP,0x8
CALL 0x0049cb60
MOV EDX,R12D
MOV RSI,R13
MOV RBX,RAX
MOV RAX,RBP
OR AL,0x80
CMP R12D,0x70000001
MOV RDI,RBX
CMOVZ RBP,RAX
MOV RCX,RBP
CALL 0x003c9d20
LEA RAX,[0x6674a8]
MOV qword ptr [RBX],RAX
CMP R12D,0x70000001
JZ 0x00230d68
ADD RSP,0x8
MOV RAX,RBX
POP RBX
POP RBP
POP R12
POP R13
RET
CMP qword ptr [RBX + 0x10],0x0
JNZ 0x00230d84
OR byte ptr [RBX + 0xca],0x10
ADD RSP,0x8
MOV RAX,RBX
POP RBX
POP RBP
POP R12
POP R13
RET
LEA RDX,[0x5503e0]
MOV ESI,0x10b8
LEA RDI,[0x533384]
CALL 0x00352af0
(translation_unit "undefined8 * FUN_00230d00(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)\n\n{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_0049cb60(0x148);\n  if (param_3 == 0x70000001) {\n    param_4 = param_4 | 0x80;\n  }\n                    /* try { // try from 00230d3c to 00230d40 has its CatchHandler @ 00230d9c */\n  FUN_003c9d20(puVar1,param_2,param_3,param_4);\n  *puVar1 = &PTR_FUN_006674a8;\n  if (param_3 != 0x70000001) {\n    return puVar1;\n  }\n  if (puVar1[2] == 0) {\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00230d97 to 00230d9b has its CatchHandler @ 00230da4 */\n  FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");\n}\n\n" (function_definition "undefined8 * FUN_00230d00(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)\n\n{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_0049cb60(0x148);\n  if (param_3 == 0x70000001) {\n    param_4 = param_4 | 0x80;\n  }\n                    /* try { // try from 00230d3c to 00230d40 has its CatchHandler @ 00230d9c */\n  FUN_003c9d20(puVar1,param_2,param_3,param_4);\n  *puVar1 = &PTR_FUN_006674a8;\n  if (param_3 != 0x70000001) {\n    return puVar1;\n  }\n  if (puVar1[2] == 0) {\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00230d97 to 00230d9b has its CatchHandler @ 00230da4 */\n  FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");\n}" type_identifier (pointer_declarator "* FUN_00230d00(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)" * (function_declarator "FUN_00230d00(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "ulong param_4" type_identifier identifier) )))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_0049cb60(0x148);\n  if (param_3 == 0x70000001) {\n    param_4 = param_4 | 0x80;\n  }\n                    /* try { // try from 00230d3c to 00230d40 has its CatchHandler @ 00230d9c */\n  FUN_003c9d20(puVar1,param_2,param_3,param_4);\n  *puVar1 = &PTR_FUN_006674a8;\n  if (param_3 != 0x70000001) {\n    return puVar1;\n  }\n  if (puVar1[2] == 0) {\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00230d97 to 00230d9b has its CatchHandler @ 00230da4 */\n  FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "puVar1 = (undefined8 *)FUN_0049cb60(0x148);" (assignment_expression "puVar1 = (undefined8 *)FUN_0049cb60(0x148)" identifier = (cast_expression "(undefined8 *)FUN_0049cb60(0x148)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb60(0x148)" identifier (argument_list "(0x148)" ( number_literal ))))) ;) (if_statement "if (param_3 == 0x70000001) {\n    param_4 = param_4 | 0x80;\n  }" if (parenthesized_expression "(param_3 == 0x70000001)" ( (binary_expression "param_3 == 0x70000001" identifier == number_literal) )) (compound_statement "{\n    param_4 = param_4 | 0x80;\n  }" { (expression_statement "param_4 = param_4 | 0x80;" (assignment_expression "param_4 = param_4 | 0x80" identifier = (binary_expression "param_4 | 0x80" identifier | number_literal)) ;) })) comment (expression_statement "FUN_003c9d20(puVar1,param_2,param_3,param_4);" (call_expression "FUN_003c9d20(puVar1,param_2,param_3,param_4)" identifier (argument_list "(puVar1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*puVar1 = &PTR_FUN_006674a8;" (assignment_expression "*puVar1 = &PTR_FUN_006674a8" (pointer_expression "*puVar1" * identifier) = (pointer_expression "&PTR_FUN_006674a8" & identifier)) ;) (if_statement "if (param_3 != 0x70000001) {\n    return puVar1;\n  }" if (parenthesized_expression "(param_3 != 0x70000001)" ( (binary_expression "param_3 != 0x70000001" identifier != number_literal) )) (compound_statement "{\n    return puVar1;\n  }" { (return_statement "return puVar1;" return identifier ;) })) (if_statement "if (puVar1[2] == 0) {\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }" if (parenthesized_expression "(puVar1[2] == 0)" ( (binary_expression "puVar1[2] == 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }" { (expression_statement "*(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;" (assignment_expression "*(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10" (pointer_expression "*(byte *)((long)puVar1 + 0xca)" * (cast_expression "(byte *)((long)puVar1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0xca)" ( (binary_expression "(long)puVar1 + 0xca" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)puVar1 + 0xca) | 0x10" (pointer_expression "*(byte *)((long)puVar1 + 0xca)" * (cast_expression "(byte *)((long)puVar1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0xca)" ( (binary_expression "(long)puVar1 + 0xca" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) | number_literal)) ;) (return_statement "return puVar1;" return identifier ;) })) comment comment (expression_statement "FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");" (call_expression "FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections")" identifier (argument_list "("../../gold/output.h",0x10b8,"set_always_keeps_input_sections")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_always_keeps_input_sections"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Arm_input_section<true>": ignoring overlapping field "original_addralign_" */\n/* WARNING: Enum "<anon>": Some values do not have unique names */\n/* DWARF original prototype: Output_section * do_make_output_section(Target_arm<true> * this, char *\n   name, Elf_Word type, Elf_Xword flags) */\n\nOutput_section * __thiscall\nanon_unknown.dwarf_9b9b16::Target_arm<true>::do_make_output_section\n          (Target_arm<true> *this,char *name,Elf_Word type,Elf_Xword flags)\n\n{\n  Output_section *this_00;\n  \n  this_00 = (Output_section *)operator_new(0x148);\n  if (type == 0x70000001) {\n    flags = flags | 0x80;\n  }\n                    /* try { // try from 00230d3c to 00230d40 has its CatchHandler @ 00230d9c */\n  gold::Output_section::Output_section(this_00,name,type,flags);\n  (this_00->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Arm_output_section_006674a8;\n  if (type != 0x70000001) {\n    return this_00;\n  }\n  if ((this_00->super_Output_data).data_size_ == 0) {\n    this_00->field_0xca = this_00->field_0xca | 0x10;\n    return this_00;\n  }\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 00230d97 to 00230d9b has its CatchHandler @ 00230da4 */\n  gold::do_gold_unreachable("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");\n}\n\n" comment comment comment comment (expression_statement "Output_section * __thiscall\nanon_unknown.dwarf_9b9b16::Target_arm<true>::do_make_output_section\n          (Target_arm<true> *this,char *name,Elf_Word type,Elf_Xword flags)\n\n{\n  Output_section *this_00;" (update_expression "Output_section * __thiscall\nanon_unknown.dwarf_9b9b16::Target_arm<true>::do_make_output_section\n          (Target_arm<true> *this,char *name,Elf_Word type,Elf_Xword flags)\n\n{\n  Output_section *this_00" (binary_expression "Output_section * __thiscall\nanon_unknown.dwarf_9b9b16::Target_arm<true>::do_make_output_section\n          (Target_arm<true> *this,char *name,Elf_Word type,Elf_Xword flags)\n\n{\n  Output_section *this_00" (binary_expression "Output_section * __thiscall\nanon_unknown.dwarf_9b9b16::Target_arm<true" (binary_expression "Output_section * __thiscall\nanon_unknown.dwarf_9b9b16" identifier * (ERROR "__thiscall" identifier) (field_expression "anon_unknown.dwarf_9b9b16" identifier . field_identifier)) (ERROR "::Target_arm" : : identifier) < true) > (ERROR "::do_make_output_section\n          (Target_arm<true> *this,char *name,Elf_Word type,Elf_Xword flags)\n\n{" : : (call_expression "do_make_output_section\n          (Target_arm<true> *this,char *name,Elf_Word type,Elf_Xword flags)" identifier (argument_list "(Target_arm<true> *this,char *name,Elf_Word type,Elf_Xword flags)" ( (binary_expression "Target_arm<true> *this" (binary_expression "Target_arm<true" identifier < true) > (pointer_expression "*this" * identifier)) , (binary_expression "char *name" identifier * identifier) , identifier (ERROR "type" identifier) , identifier (ERROR "flags" identifier) ))) {) (binary_expression "Output_section *this_00" identifier * identifier)) --) ;) (expression_statement "this_00 = (Output_section *)operator_new(0x148);" (assignment_expression "this_00 = (Output_section *)operator_new(0x148)" identifier = (cast_expression "(Output_section *)operator_new(0x148)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x148)" identifier (argument_list "(0x148)" ( number_literal ))))) ;) (if_statement "if (type == 0x70000001) {\n    flags = flags | 0x80;\n  }" if (parenthesized_expression "(type == 0x70000001)" ( (binary_expression "type == 0x70000001" identifier == number_literal) )) (compound_statement "{\n    flags = flags | 0x80;\n  }" { (expression_statement "flags = flags | 0x80;" (assignment_expression "flags = flags | 0x80" identifier = (binary_expression "flags | 0x80" identifier | number_literal)) ;) })) comment (labeled_statement "gold::Output_section::Output_section(this_00,name,type,flags);" statement_identifier : (ERROR ":" :) (labeled_statement "Output_section::Output_section(this_00,name,type,flags);" statement_identifier : (ERROR ":" :) (expression_statement "Output_section(this_00,name,type,flags);" (call_expression "Output_section(this_00,name,type,flags)" identifier (argument_list "(this_00,name,type,flags)" ( identifier , identifier , identifier , identifier ))) ;))) (expression_statement "(this_00->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Arm_output_section_006674a8;" (assignment_expression "(this_00->super_Output_data)._vptr_Output_data =\n       (_func_int_varargs **)&PTR__Arm_output_section_006674a8" (field_expression "(this_00->super_Output_data)._vptr_Output_data" (parenthesized_expression "(this_00->super_Output_data)" ( (field_expression "this_00->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Arm_output_section_006674a8" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Arm_output_section_006674a8" & identifier))) ;) (if_statement "if (type != 0x70000001) {\n    return this_00;\n  }" if (parenthesized_expression "(type != 0x70000001)" ( (binary_expression "type != 0x70000001" identifier != number_literal) )) (compound_statement "{\n    return this_00;\n  }" { (return_statement "return this_00;" return identifier ;) })) (if_statement "if ((this_00->super_Output_data).data_size_ == 0) {\n    this_00->field_0xca = this_00->field_0xca | 0x10;\n    return this_00;\n  }" if (parenthesized_expression "((this_00->super_Output_data).data_size_ == 0)" ( (binary_expression "(this_00->super_Output_data).data_size_ == 0" (field_expression "(this_00->super_Output_data).data_size_" (parenthesized_expression "(this_00->super_Output_data)" ( (field_expression "this_00->super_Output_data" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n    this_00->field_0xca = this_00->field_0xca | 0x10;\n    return this_00;\n  }" { (expression_statement "this_00->field_0xca = this_00->field_0xca | 0x10;" (assignment_expression "this_00->field_0xca = this_00->field_0xca | 0x10" (field_expression "this_00->field_0xca" identifier -> field_identifier) = (binary_expression "this_00->field_0xca | 0x10" (field_expression "this_00->field_0xca" identifier -> field_identifier) | number_literal)) ;) (return_statement "return this_00;" return identifier ;) })) comment comment (labeled_statement "gold::do_gold_unreachable("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");" (call_expression "do_gold_unreachable("../../gold/output.h",0x10b8,"set_always_keeps_input_sections")" identifier (argument_list "("../../gold/output.h",0x10b8,"set_always_keeps_input_sections")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_always_keeps_input_sections"" " string_content ") ))) ;)) (ERROR "}" }))
(translation_unit "undefined8 * FUN_00230d00(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)\n\n{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_0049cb60(0x148);\n  if (param_3 == 0x70000001) {\n    param_4 = param_4 | 0x80;\n  }\n                    \n  FUN_003c9d20(puVar1,param_2,param_3,param_4);\n  *puVar1 = &PTR_FUN_006674a8;\n  if (param_3 != 0x70000001) {\n    return puVar1;\n  }\n  if (puVar1[2] == 0) {\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }\n                    \n                    \n  FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");\n}\n\n" (function_definition "undefined8 * FUN_00230d00(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)\n\n{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_0049cb60(0x148);\n  if (param_3 == 0x70000001) {\n    param_4 = param_4 | 0x80;\n  }\n                    \n  FUN_003c9d20(puVar1,param_2,param_3,param_4);\n  *puVar1 = &PTR_FUN_006674a8;\n  if (param_3 != 0x70000001) {\n    return puVar1;\n  }\n  if (puVar1[2] == 0) {\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }\n                    \n                    \n  FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");\n}" type_identifier (pointer_declarator "* FUN_00230d00(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)" * (function_declarator "FUN_00230d00(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "ulong param_4" type_identifier identifier) )))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_0049cb60(0x148);\n  if (param_3 == 0x70000001) {\n    param_4 = param_4 | 0x80;\n  }\n                    \n  FUN_003c9d20(puVar1,param_2,param_3,param_4);\n  *puVar1 = &PTR_FUN_006674a8;\n  if (param_3 != 0x70000001) {\n    return puVar1;\n  }\n  if (puVar1[2] == 0) {\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }\n                    \n                    \n  FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (expression_statement "puVar1 = (undefined8 *)FUN_0049cb60(0x148);" (assignment_expression "puVar1 = (undefined8 *)FUN_0049cb60(0x148)" identifier = (cast_expression "(undefined8 *)FUN_0049cb60(0x148)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb60(0x148)" identifier (argument_list "(0x148)" ( number_literal ))))) ;) (if_statement "if (param_3 == 0x70000001) {\n    param_4 = param_4 | 0x80;\n  }" if (parenthesized_expression "(param_3 == 0x70000001)" ( (binary_expression "param_3 == 0x70000001" identifier == number_literal) )) (compound_statement "{\n    param_4 = param_4 | 0x80;\n  }" { (expression_statement "param_4 = param_4 | 0x80;" (assignment_expression "param_4 = param_4 | 0x80" identifier = (binary_expression "param_4 | 0x80" identifier | number_literal)) ;) })) (expression_statement "FUN_003c9d20(puVar1,param_2,param_3,param_4);" (call_expression "FUN_003c9d20(puVar1,param_2,param_3,param_4)" identifier (argument_list "(puVar1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "*puVar1 = &PTR_FUN_006674a8;" (assignment_expression "*puVar1 = &PTR_FUN_006674a8" (pointer_expression "*puVar1" * identifier) = (pointer_expression "&PTR_FUN_006674a8" & identifier)) ;) (if_statement "if (param_3 != 0x70000001) {\n    return puVar1;\n  }" if (parenthesized_expression "(param_3 != 0x70000001)" ( (binary_expression "param_3 != 0x70000001" identifier != number_literal) )) (compound_statement "{\n    return puVar1;\n  }" { (return_statement "return puVar1;" return identifier ;) })) (if_statement "if (puVar1[2] == 0) {\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }" if (parenthesized_expression "(puVar1[2] == 0)" ( (binary_expression "puVar1[2] == 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }" { (expression_statement "*(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;" (assignment_expression "*(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10" (pointer_expression "*(byte *)((long)puVar1 + 0xca)" * (cast_expression "(byte *)((long)puVar1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0xca)" ( (binary_expression "(long)puVar1 + 0xca" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)puVar1 + 0xca) | 0x10" (pointer_expression "*(byte *)((long)puVar1 + 0xca)" * (cast_expression "(byte *)((long)puVar1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar1 + 0xca)" ( (binary_expression "(long)puVar1 + 0xca" (cast_expression "(long)puVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) | number_literal)) ;) (return_statement "return puVar1;" return identifier ;) })) (expression_statement "FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");" (call_expression "FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections")" identifier (argument_list "("../../gold/output.h",0x10b8,"set_always_keeps_input_sections")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_always_keeps_input_sections"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) | LIT)) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "undefined8 * FUN_00230d00(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)\n\n{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_0049cb60(0x148);\n  if (param_3 == 0x70000001) {\n    param_4 = param_4 | 0x80;\n  }\n                    \n  FUN_003c9d20(puVar1,param_2,param_3,param_4);\n  *puVar1 = &PTR_FUN_006674a8;\n  if (param_3 != 0x70000001) {\n    return puVar1;\n  }\n  if (puVar1[2] == 0) {\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }\n                    \n                    \n  FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");\n}" (type_identifier "undefined8") (pointer_declarator "* FUN_00230d00(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)" (* "*") (function_declarator "FUN_00230d00(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)" (identifier "FUN_00230d00") (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "ulong param_4" (type_identifier "ulong") (identifier "param_4")) () ")")))) (compound_statement "{\n  undefined8 *puVar1;\n  \n  puVar1 = (undefined8 *)FUN_0049cb60(0x148);\n  if (param_3 == 0x70000001) {\n    param_4 = param_4 | 0x80;\n  }\n                    \n  FUN_003c9d20(puVar1,param_2,param_3,param_4);\n  *puVar1 = &PTR_FUN_006674a8;\n  if (param_3 != 0x70000001) {\n    return puVar1;\n  }\n  if (puVar1[2] == 0) {\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }\n                    \n                    \n  FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (expression_statement "puVar1 = (undefined8 *)FUN_0049cb60(0x148);" (assignment_expression "puVar1 = (undefined8 *)FUN_0049cb60(0x148)" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)FUN_0049cb60(0x148)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0049cb60(0x148)" (identifier "FUN_0049cb60") (argument_list "(0x148)" (( "(") (number_literal "0x148") () ")"))))) (; ";")) (if_statement "if (param_3 == 0x70000001) {\n    param_4 = param_4 | 0x80;\n  }" (if "if") (parenthesized_expression "(param_3 == 0x70000001)" (( "(") (binary_expression "param_3 == 0x70000001" (identifier "param_3") (== "==") (number_literal "0x70000001")) () ")")) (compound_statement "{\n    param_4 = param_4 | 0x80;\n  }" ({ "{") (expression_statement "param_4 = param_4 | 0x80;" (assignment_expression "param_4 = param_4 | 0x80" (identifier "param_4") (= "=") (binary_expression "param_4 | 0x80" (identifier "param_4") (| "|") (number_literal "0x80"))) (; ";")) (} "}"))) (expression_statement "FUN_003c9d20(puVar1,param_2,param_3,param_4);" (call_expression "FUN_003c9d20(puVar1,param_2,param_3,param_4)" (identifier "FUN_003c9d20") (argument_list "(puVar1,param_2,param_3,param_4)" (( "(") (identifier "puVar1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "*puVar1 = &PTR_FUN_006674a8;" (assignment_expression "*puVar1 = &PTR_FUN_006674a8" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (pointer_expression "&PTR_FUN_006674a8" (& "&") (identifier "PTR_FUN_006674a8"))) (; ";")) (if_statement "if (param_3 != 0x70000001) {\n    return puVar1;\n  }" (if "if") (parenthesized_expression "(param_3 != 0x70000001)" (( "(") (binary_expression "param_3 != 0x70000001" (identifier "param_3") (!= "!=") (number_literal "0x70000001")) () ")")) (compound_statement "{\n    return puVar1;\n  }" ({ "{") (return_statement "return puVar1;" (return "return") (identifier "puVar1") (; ";")) (} "}"))) (if_statement "if (puVar1[2] == 0) {\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }" (if "if") (parenthesized_expression "(puVar1[2] == 0)" (( "(") (binary_expression "puVar1[2] == 0" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;\n    return puVar1;\n  }" ({ "{") (expression_statement "*(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;" (assignment_expression "*(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10" (pointer_expression "*(byte *)((long)puVar1 + 0xca)" (* "*") (cast_expression "(byte *)((long)puVar1 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar1 + 0xca)" (( "(") (binary_expression "(long)puVar1 + 0xca" (cast_expression "(long)puVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar1")) (+ "+") (number_literal "0xca")) () ")")))) (= "=") (binary_expression "*(byte *)((long)puVar1 + 0xca) | 0x10" (pointer_expression "*(byte *)((long)puVar1 + 0xca)" (* "*") (cast_expression "(byte *)((long)puVar1 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar1 + 0xca)" (( "(") (binary_expression "(long)puVar1 + 0xca" (cast_expression "(long)puVar1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar1")) (+ "+") (number_literal "0xca")) () ")")))) (| "|") (number_literal "0x10"))) (; ";")) (return_statement "return puVar1;" (return "return") (identifier "puVar1") (; ";")) (} "}"))) (expression_statement "FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");" (call_expression "FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.h",0x10b8,"set_always_keeps_input_sections")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x10b8") (, ",") (string_literal ""set_always_keeps_input_sections"" (" """) (string_content "set_always_keeps_input_sections") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Arm_input_section<true>": ignoring overlapping field "original_addralign_" */
/* WARNING: Enum "<anon>": Some values do not have unique names */
/* DWARF original prototype: Output_section * do_make_output_section(Target_arm<true> * this, char *
   name, Elf_Word type, Elf_Xword flags) */

var_1 * __thiscall
anon_unknown.dwarf_9b9b16::Target_arm<true>::do_make_output_section
          (Target_arm<true> *this,char *name,Elf_Word var_4,Elf_Xword var_5)

{
  var_1 *var_2;
  
  var_2 = (var_1 *)var_3(0x148);
  if (var_4 == 0x70000001) {
    var_5 = var_5 | 0x80;
  }
                    /* try { // try from 00230d3c to 00230d40 has its CatchHandler @ 00230d9c */
  gold::Output_section::var_1(var_2,name,var_4,var_5);
  (var_2->super_Output_data)._vptr_Output_data =
       (type_1 **)&PTR__Arm_output_section_006674a8;
  if (var_4 != 0x70000001) {
    return var_2;
  }
  if ((var_2->super_Output_data).data_size_ == 0) {
    var_2->field_0xca = var_2->field_0xca | 0x10;
    return var_2;
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00230d97 to 00230d9b has its CatchHandler @ 00230da4 */
  gold::var_6("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator 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: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal)))) (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))))

undefined8 * MASKED(undefined8 param_1,undefined8 param_2,int param_3,ulong param_4)

{
  undefined8 *puVar1;
  
  puVar1 = (undefined8 *)FUN_0049cb60(0x148);
  if (param_3 == 0x70000001) {
    param_4 = param_4 | 0x80;
  }
                    /* try { // try from 00230d3c to 00230d40 has its CatchHandler @ 00230d9c */
  FUN_003c9d20(puVar1,param_2,param_3,param_4);
  *puVar1 = &PTR_FUN_006674a8;
  if (param_3 != 0x70000001) {
    return puVar1;
  }
  if (puVar1[2] == 0) {
    *(byte *)((long)puVar1 + 0xca) = *(byte *)((long)puVar1 + 0xca) | 0x10;
    return puVar1;
  }
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 00230d97 to 00230d9b has its CatchHandler @ 00230da4 */
  FUN_00352af0("../../gold/output.h",0x10b8,"set_always_keeps_input_sections");
}

