
/* WARNING: Variable defined which should be unmapped: relbuf */
/* WARNING: Variable defined which should be unmapped: symval */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void apply_relocation(Target_tilegx<32,_true> * this,
   Relocate_info<32,_true> * relinfo, Elf_Addr r_offset, uint r_type, Elf_Swxword r_addend, Symbol *
   gsym, uchar * view, Elf_Addr address, section_size_type view_size) */

void __thiscall
anon_unknown.dwarf_ca7751::Target_tilegx<32,_true>::apply_relocation
          (Target_tilegx<32,_true> *this,Relocate_info<32,_true> *relinfo,Elf_Addr r_offset,
          uint r_type,Elf_Swxword r_addend,Symbol *gsym,uchar *view,Elf_Addr address,
          section_size_type view_size)

{
  Elf_Addr address_00;
  byte bVar1;
  undefined4 uStack_48;
  uchar relbuf [12];
  Symbol_value<32> symval;
  
  relbuf._4_4_ = r_type << 0x18;
  relbuf._8_4_ = (uint)r_addend >> 0x18 | (r_addend & 0xff0000U) >> 8 | (r_addend & 0xff00U) << 8 |
                 r_addend << 0x18;
  relbuf._0_4_ = r_offset >> 0x18 | (r_offset & 0xff0000) >> 8 | (r_offset & 0xff00) << 8 |
                 r_offset << 0x18;
  address_00 = gsym->symtab_index_;
  symval.output_symtab_index_ = 0;
  symval.output_dynsym_index_ = 0xffffffff;
  symval._8_4_ = 0x80000000;
  symval.u_.value = 0;
  if (0xfffffffd < address_00 - 1) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/target-reloc.h",0x1f2,"apply_relocation");
  }
  if (address_00 - 1 != 0xfffffffd) {
    symval.output_dynsym_index_ = 0xffffffff;
    symval.output_symtab_index_ = address_00;
    symval.u_.value = *(undefined4 *)&gsym[1].name_;
    bVar1 = gsym->field_0x38 & 0xf;
    if (bVar1 == 6) {
      symval._8_4_ = 0xa0000000;
    }
    else if (bVar1 == 10) {
      symval._8_4_ = 0xc0000000;
    }
                    /* try { // try from 0027efb7 to 0027f01d has its CatchHandler @ 0027f01e */
    Relocate::relocate((Relocate *)relinfo,(Relocate_info<32,_true> *)this,0xffffffff,
                       (Target_tilegx<32,_true> *)relbuf,(Output_section *)gsym,(size_t)&symval,
                       view + r_offset,(Sized_symbol<32> *)(ulong)(address + r_offset),
                       (Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),
                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,
                       CONCAT44(symval._12_4_,symval._8_4_));
    gold::Symbol_value<32>::~Symbol_value(&symval,(int)this);
    return;
  }
                    /* WARNING: Subroutine does not return */
  gold::do_gold_unreachable("../../gold/object.h",0x70d,"set_output_symtab_index");
}



void FUN_0027ef20(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,
                 long param_6,long param_7)

{
  byte bVar1;
  uint uVar2;
  uint local_44;
  int local_40;
  uint local_3c;
  undefined8 local_38;
  undefined4 local_30;
  undefined4 local_28;
  
  local_40 = (uint)param_4 << 0x18;
  local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18
  ;
  local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18
  ;
  uVar2 = *(int *)(param_6 + 0x1c) - 1;
  local_38 = 0xffffffff00000000;
  local_30 = 0x80000000;
  local_28 = 0;
  if (0xfffffffd < uVar2) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");
  }
  if (uVar2 != 0xfffffffd) {
    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));
    local_28 = *(undefined4 *)(param_6 + 0x40);
    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;
    if (bVar1 == 6) {
      local_30 = 0xa0000000;
    }
    else if (bVar1 == 10) {
      local_30 = 0xc0000000;
    }
                    /* try { // try from 0027efb7 to 0027f01d has its CatchHandler @ 0027f01e */
    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);
    FUN_001a5bc0(&local_38);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");
}


PUSH RBP
MOVZX ECX,CL
MOV R10,RDI
MOV RDI,RSI
BSWAP ECX
MOV ESI,EDX
BSWAP R8D
BSWAP ESI
MOV RBP,RSP
PUSH R14
PUSH RBX
MOV RBX,-0x100000000
SUB RSP,0x30
MOV dword ptr [RBP + -0x38],ECX
MOV ECX,dword ptr [R9 + 0x1c]
MOV dword ptr [RBP + -0x3c],ESI
LEA ESI,[RCX + -0x1]
MOV dword ptr [RBP + -0x34],R8D
MOV qword ptr [RBP + -0x30],RBX
MOV dword ptr [RBP + -0x28],0x80000000
MOV dword ptr [RBP + -0x20],0x0
CMP ESI,-0x3
JA 0x0027efe6
JZ 0x0027f002
MOV dword ptr [RBP + -0x30],ECX
MOV ECX,dword ptr [R9 + 0x40]
MOV RAX,R9
MOV dword ptr [RBP + -0x20],ECX
MOVZX ECX,byte ptr [R9 + 0x38]
AND ECX,0xf
CMP ECX,0x6
JZ 0x0027efe0
CMP ECX,0xa
JZ 0x0027efd0
MOV ESI,dword ptr [RBP + 0x18]
LEA RBX,[RBP + -0x30]
LEA RCX,[RBP + -0x3c]
MOV R8,RAX
MOV R9,RBX
ADD ESI,EDX
MOV EDX,EDX
ADD RDX,qword ptr [RBP + 0x10]
PUSH RSI
MOV RSI,R10
PUSH RDX
MOV EDX,0xffffffff
CALL 0x0027e020
POP RAX
MOV RDI,RBX
POP RDX
CALL 0x001a5bc0
LEA RSP,[RBP + -0x10]
POP RBX
POP R14
POP RBP
RET
OR byte ptr [RBP + -0x25],0x40
JMP 0x0027ef94
OR byte ptr [RBP + -0x25],0x20
JMP 0x0027ef94
LEA RDX,[0x557540]
MOV ESI,0x1f2
LEA RDI,[0x5334ee]
LEA RBX,[RBP + -0x30]
CALL 0x00352af0
LEA RDX,[0x557520]
MOV ESI,0x70d
LEA RDI,[0x5333ac]
LEA RBX,[RBP + -0x30]
CALL 0x00352af0
(translation_unit "void FUN_0027ef20(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,\n                 long param_6,long param_7)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint local_44;\n  int local_40;\n  uint local_3c;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined4 local_28;\n  \n  local_40 = (uint)param_4 << 0x18;\n  local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18\n  ;\n  local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18\n  ;\n  uVar2 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar2 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    /* try { // try from 0027efb7 to 0027f01d has its CatchHandler @ 0027f01e */\n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");\n}\n\n" (function_definition "void FUN_0027ef20(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,\n                 long param_6,long param_7)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint local_44;\n  int local_40;\n  uint local_3c;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined4 local_28;\n  \n  local_40 = (uint)param_4 << 0x18;\n  local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18\n  ;\n  local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18\n  ;\n  uVar2 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar2 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    /* try { // try from 0027efb7 to 0027f01d has its CatchHandler @ 0027f01e */\n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" primitive_type (function_declarator "FUN_0027ef20(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,\n                 long param_6,long param_7)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,\n                 long param_6,long param_7)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "byte param_4" type_identifier identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_7" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint local_44;\n  int local_40;\n  uint local_3c;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined4 local_28;\n  \n  local_40 = (uint)param_4 << 0x18;\n  local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18\n  ;\n  local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18\n  ;\n  uVar2 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar2 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    /* try { // try from 0027efb7 to 0027f01d has its CatchHandler @ 0027f01e */\n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (expression_statement "local_40 = (uint)param_4 << 0x18;" (assignment_expression "local_40 = (uint)param_4 << 0x18" identifier = (binary_expression "(uint)param_4 << 0x18" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) ;) (expression_statement "local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18\n  ;" (assignment_expression "local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18" identifier = (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18" (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8" (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8" (binary_expression "param_5 >> 0x18" identifier >> number_literal) | (binary_expression "(param_5 & 0xff0000) >> 8" (parenthesized_expression "(param_5 & 0xff0000)" ( (binary_expression "param_5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_5 & 0xff00) << 8" (parenthesized_expression "(param_5 & 0xff00)" ( (binary_expression "param_5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_5 << 0x18" identifier << number_literal))) ;) (expression_statement "local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18\n  ;" (assignment_expression "local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18" identifier = (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8" (binary_expression "param_3 >> 0x18" identifier >> number_literal) | (binary_expression "(param_3 & 0xff0000) >> 8" (parenthesized_expression "(param_3 & 0xff0000)" ( (binary_expression "param_3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff00) << 8" (parenthesized_expression "(param_3 & 0xff00)" ( (binary_expression "param_3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_3 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar2 = *(int *)(param_6 + 0x1c) - 1;" (assignment_expression "uVar2 = *(int *)(param_6 + 0x1c) - 1" identifier = (binary_expression "*(int *)(param_6 + 0x1c) - 1" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "local_38 = 0xffffffff00000000;" (assignment_expression "local_38 = 0xffffffff00000000" identifier = number_literal) ;) (expression_statement "local_30 = 0x80000000;" (assignment_expression "local_30 = 0x80000000" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (0xfffffffd < uVar2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" if (parenthesized_expression "(0xfffffffd < uVar2)" ( (binary_expression "0xfffffffd < uVar2" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" { comment (expression_statement "FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");" (call_expression "FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation")" identifier (argument_list "("../../gold/target-reloc.h",0x1f2,"apply_relocation")" ( (string_literal ""../../gold/target-reloc.h"" " string_content ") , number_literal , (string_literal ""apply_relocation"" " string_content ") ))) ;) })) (if_statement "if (uVar2 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    /* try { // try from 0027efb7 to 0027f01d has its CatchHandler @ 0027f01e */\n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }" if (parenthesized_expression "(uVar2 != 0xfffffffd)" ( (binary_expression "uVar2 != 0xfffffffd" identifier != number_literal) )) (compound_statement "{\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    /* try { // try from 0027efb7 to 0027f01d has its CatchHandler @ 0027f01e */\n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }" { (expression_statement "local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));" (assignment_expression "local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c))" identifier = (call_expression "CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c))" identifier (argument_list "(0xffffffff,*(int *)(param_6 + 0x1c))" ( number_literal , (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "local_28 = *(undefined4 *)(param_6 + 0x40);" (assignment_expression "local_28 = *(undefined4 *)(param_6 + 0x40)" identifier = (pointer_expression "*(undefined4 *)(param_6 + 0x40)" * (cast_expression "(undefined4 *)(param_6 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x40)" ( (binary_expression "param_6 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)(param_6 + 0x38) & 0xf;" (assignment_expression "bVar1 = *(byte *)(param_6 + 0x38) & 0xf" identifier = (binary_expression "*(byte *)(param_6 + 0x38) & 0xf" (pointer_expression "*(byte *)(param_6 + 0x38)" * (cast_expression "(byte *)(param_6 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x38)" ( (binary_expression "param_6 + 0x38" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }" if (parenthesized_expression "(bVar1 == 6)" ( (binary_expression "bVar1 == 6" identifier == number_literal) )) (compound_statement "{\n      local_30 = 0xa0000000;\n    }" { (expression_statement "local_30 = 0xa0000000;" (assignment_expression "local_30 = 0xa0000000" identifier = number_literal) ;) }) (else_clause "else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }" else (if_statement "if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }" if (parenthesized_expression "(bVar1 == 10)" ( (binary_expression "bVar1 == 10" identifier == number_literal) )) (compound_statement "{\n      local_30 = 0xc0000000;\n    }" { (expression_statement "local_30 = 0xc0000000;" (assignment_expression "local_30 = 0xc0000000" identifier = number_literal) ;) })))) comment (expression_statement "FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);" (call_expression "FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7)" identifier (argument_list "(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7)" ( identifier , identifier , number_literal , (pointer_expression "&local_44" & identifier) , identifier , (pointer_expression "&local_38" & identifier) , (binary_expression "(ulong)param_3 + param_7" (cast_expression "(ulong)param_3" ( (type_descriptor "ulong" type_identifier) ) identifier) + identifier) ))) ;) (expression_statement "FUN_001a5bc0(&local_38);" (call_expression "FUN_001a5bc0(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");" (call_expression "FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index")" identifier (argument_list "("../../gold/object.h",0x70d,"set_output_symtab_index")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""set_output_symtab_index"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Variable defined which should be unmapped: relbuf */\n/* WARNING: Variable defined which should be unmapped: symval */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void apply_relocation(Target_tilegx<32,_true> * this,\n   Relocate_info<32,_true> * relinfo, Elf_Addr r_offset, uint r_type, Elf_Swxword r_addend, Symbol *\n   gsym, uchar * view, Elf_Addr address, section_size_type view_size) */\n\nvoid __thiscall\nanon_unknown.dwarf_ca7751::Target_tilegx<32,_true>::apply_relocation\n          (Target_tilegx<32,_true> *this,Relocate_info<32,_true> *relinfo,Elf_Addr r_offset,\n          uint r_type,Elf_Swxword r_addend,Symbol *gsym,uchar *view,Elf_Addr address,\n          section_size_type view_size)\n\n{\n  Elf_Addr address_00;\n  byte bVar1;\n  undefined4 uStack_48;\n  uchar relbuf [12];\n  Symbol_value<32> symval;\n  \n  relbuf._4_4_ = r_type << 0x18;\n  relbuf._8_4_ = (uint)r_addend >> 0x18 | (r_addend & 0xff0000U) >> 8 | (r_addend & 0xff00U) << 8 |\n                 r_addend << 0x18;\n  relbuf._0_4_ = r_offset >> 0x18 | (r_offset & 0xff0000) >> 8 | (r_offset & 0xff00) << 8 |\n                 r_offset << 0x18;\n  address_00 = gsym->symtab_index_;\n  symval.output_symtab_index_ = 0;\n  symval.output_dynsym_index_ = 0xffffffff;\n  symval._8_4_ = 0x80000000;\n  symval.u_.value = 0;\n  if (0xfffffffd < address_00 - 1) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (address_00 - 1 != 0xfffffffd) {\n    symval.output_dynsym_index_ = 0xffffffff;\n    symval.output_symtab_index_ = address_00;\n    symval.u_.value = *(undefined4 *)&gsym[1].name_;\n    bVar1 = gsym->field_0x38 & 0xf;\n    if (bVar1 == 6) {\n      symval._8_4_ = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }\n                    /* try { // try from 0027efb7 to 0027f01d has its CatchHandler @ 0027f01e */\n    Relocate::relocate((Relocate *)relinfo,(Relocate_info<32,_true> *)this,0xffffffff,\n                       (Target_tilegx<32,_true> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<32> *)(ulong)(address + r_offset),\n                       (Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_));\n    gold::Symbol_value<32>::~Symbol_value(&symval,(int)this);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/object.h",0x70d,"set_output_symtab_index");\n}\n\n" comment comment comment comment (declaration "void __thiscall\nanon_unknown.dwarf_ca7751::Target_tilegx<32,_true>::apply_relocation\n          (Target_tilegx<32,_true> *this,Relocate_info<32,_true> *relinfo,Elf_Addr r_offset,\n          uint r_type,Elf_Swxword r_addend,Symbol *gsym,uchar *view,Elf_Addr address,\n          section_size_type view_size)\n\n{\n  Elf_Addr address_00;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_ca7751::" identifier . identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>::apply_relocation\n          (Target_tilegx<32,_true> *this,Relocate_info<32,_true> *relinfo,Elf_Addr r_offset,\n          uint r_type,Elf_Swxword r_addend,Symbol *gsym,uchar *view,Elf_Addr address,\n          section_size_type view_size)\n\n{\n  Elf_Addr" identifier > : : (function_declarator "apply_relocation\n          (Target_tilegx<32,_true> *this,Relocate_info<32,_true> *relinfo,Elf_Addr r_offset,\n          uint r_type,Elf_Swxword r_addend,Symbol *gsym,uchar *view,Elf_Addr address,\n          section_size_type view_size)" identifier (parameter_list "(Target_tilegx<32,_true> *this,Relocate_info<32,_true> *relinfo,Elf_Addr r_offset,\n          uint r_type,Elf_Swxword r_addend,Symbol *gsym,uchar *view,Elf_Addr address,\n          section_size_type view_size)" ( (parameter_declaration "Target_tilegx" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relocate_info" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *relinfo" type_identifier (ERROR ">" >) (pointer_declarator "*relinfo" * identifier)) , (parameter_declaration "Elf_Addr r_offset" type_identifier identifier) , (parameter_declaration "uint r_type" type_identifier identifier) , (parameter_declaration "Elf_Swxword r_addend" type_identifier identifier) , (parameter_declaration "Symbol *gsym" type_identifier (pointer_declarator "*gsym" * identifier)) , (parameter_declaration "uchar *view" type_identifier (pointer_declarator "*view" * identifier)) , (parameter_declaration "Elf_Addr address" type_identifier identifier) , (parameter_declaration "section_size_type view_size" type_identifier identifier) ))) { identifier) identifier ;) (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined4 uStack_48;" type_identifier identifier ;) (declaration "uchar relbuf [12];" type_identifier (array_declarator "relbuf [12]" identifier [ number_literal ]) ;) (expression_statement "Symbol_value<32> symval;" (update_expression "Symbol_value<32> symval" (binary_expression "Symbol_value<32> symval" (binary_expression "Symbol_value<32" identifier < number_literal) > identifier) --) ;) (expression_statement "relbuf._4_4_ = r_type << 0x18;" (assignment_expression "relbuf._4_4_ = r_type << 0x18" (field_expression "relbuf._4_4_" identifier . field_identifier) = (binary_expression "r_type << 0x18" identifier << number_literal)) ;) (expression_statement "relbuf._8_4_ = (uint)r_addend >> 0x18 | (r_addend & 0xff0000U) >> 8 | (r_addend & 0xff00U) << 8 |\n                 r_addend << 0x18;" (assignment_expression "relbuf._8_4_ = (uint)r_addend >> 0x18 | (r_addend & 0xff0000U) >> 8 | (r_addend & 0xff00U) << 8 |\n                 r_addend << 0x18" (field_expression "relbuf._8_4_" identifier . field_identifier) = (binary_expression "(uint)r_addend >> 0x18 | (r_addend & 0xff0000U) >> 8 | (r_addend & 0xff00U) << 8 |\n                 r_addend << 0x18" (binary_expression "(uint)r_addend >> 0x18 | (r_addend & 0xff0000U) >> 8 | (r_addend & 0xff00U) << 8" (binary_expression "(uint)r_addend >> 0x18 | (r_addend & 0xff0000U) >> 8" (binary_expression "(uint)r_addend >> 0x18" (cast_expression "(uint)r_addend" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) | (binary_expression "(r_addend & 0xff0000U) >> 8" (parenthesized_expression "(r_addend & 0xff0000U)" ( (binary_expression "r_addend & 0xff0000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(r_addend & 0xff00U) << 8" (parenthesized_expression "(r_addend & 0xff00U)" ( (binary_expression "r_addend & 0xff00U" identifier & number_literal) )) << number_literal)) | (binary_expression "r_addend << 0x18" identifier << number_literal))) ;) (expression_statement "relbuf._0_4_ = r_offset >> 0x18 | (r_offset & 0xff0000) >> 8 | (r_offset & 0xff00) << 8 |\n                 r_offset << 0x18;" (assignment_expression "relbuf._0_4_ = r_offset >> 0x18 | (r_offset & 0xff0000) >> 8 | (r_offset & 0xff00) << 8 |\n                 r_offset << 0x18" (field_expression "relbuf._0_4_" identifier . field_identifier) = (binary_expression "r_offset >> 0x18 | (r_offset & 0xff0000) >> 8 | (r_offset & 0xff00) << 8 |\n                 r_offset << 0x18" (binary_expression "r_offset >> 0x18 | (r_offset & 0xff0000) >> 8 | (r_offset & 0xff00) << 8" (binary_expression "r_offset >> 0x18 | (r_offset & 0xff0000) >> 8" (binary_expression "r_offset >> 0x18" identifier >> number_literal) | (binary_expression "(r_offset & 0xff0000) >> 8" (parenthesized_expression "(r_offset & 0xff0000)" ( (binary_expression "r_offset & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(r_offset & 0xff00) << 8" (parenthesized_expression "(r_offset & 0xff00)" ( (binary_expression "r_offset & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "r_offset << 0x18" identifier << number_literal))) ;) (expression_statement "address_00 = gsym->symtab_index_;" (assignment_expression "address_00 = gsym->symtab_index_" identifier = (field_expression "gsym->symtab_index_" identifier -> field_identifier)) ;) (expression_statement "symval.output_symtab_index_ = 0;" (assignment_expression "symval.output_symtab_index_ = 0" (field_expression "symval.output_symtab_index_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval.output_dynsym_index_ = 0xffffffff;" (assignment_expression "symval.output_dynsym_index_ = 0xffffffff" (field_expression "symval.output_dynsym_index_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval._8_4_ = 0x80000000;" (assignment_expression "symval._8_4_ = 0x80000000" (field_expression "symval._8_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval.u_.value = 0;" (assignment_expression "symval.u_.value = 0" (field_expression "symval.u_.value" (field_expression "symval.u_" identifier . field_identifier) . field_identifier) = number_literal) ;) (if_statement "if (0xfffffffd < address_00 - 1) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" if (parenthesized_expression "(0xfffffffd < address_00 - 1)" ( (binary_expression "0xfffffffd < address_00 - 1" number_literal < (binary_expression "address_00 - 1" identifier - number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/target-reloc.h",0x1f2,"apply_relocation");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/target-reloc.h",0x1f2,"apply_relocation");" (call_expression "do_gold_unreachable("../../gold/target-reloc.h",0x1f2,"apply_relocation")" identifier (argument_list "("../../gold/target-reloc.h",0x1f2,"apply_relocation")" ( (string_literal ""../../gold/target-reloc.h"" " string_content ") , number_literal , (string_literal ""apply_relocation"" " string_content ") ))) ;)) })) (if_statement "if (address_00 - 1 != 0xfffffffd) {\n    symval.output_dynsym_index_ = 0xffffffff;\n    symval.output_symtab_index_ = address_00;\n    symval.u_.value = *(undefined4 *)&gsym[1].name_;\n    bVar1 = gsym->field_0x38 & 0xf;\n    if (bVar1 == 6) {\n      symval._8_4_ = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }\n                    /* try { // try from 0027efb7 to 0027f01d has its CatchHandler @ 0027f01e */\n    Relocate::relocate((Relocate *)relinfo,(Relocate_info<32,_true> *)this,0xffffffff,\n                       (Target_tilegx<32,_true> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<32> *)(ulong)(address + r_offset),\n                       (Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_));\n    gold::Symbol_value<32>::~Symbol_value(&symval,(int)this);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" if (parenthesized_expression "(address_00 - 1 != 0xfffffffd)" ( (binary_expression "address_00 - 1 != 0xfffffffd" (binary_expression "address_00 - 1" identifier - number_literal) != number_literal) )) (compound_statement "{\n    symval.output_dynsym_index_ = 0xffffffff;\n    symval.output_symtab_index_ = address_00;\n    symval.u_.value = *(undefined4 *)&gsym[1].name_;\n    bVar1 = gsym->field_0x38 & 0xf;\n    if (bVar1 == 6) {\n      symval._8_4_ = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }\n                    /* try { // try from 0027efb7 to 0027f01d has its CatchHandler @ 0027f01e */\n    Relocate::relocate((Relocate *)relinfo,(Relocate_info<32,_true> *)this,0xffffffff,\n                       (Target_tilegx<32,_true> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<32> *)(ulong)(address + r_offset),\n                       (Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_));\n    gold::Symbol_value<32>::~Symbol_value(&symval,(int)this);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" { (expression_statement "symval.output_dynsym_index_ = 0xffffffff;" (assignment_expression "symval.output_dynsym_index_ = 0xffffffff" (field_expression "symval.output_dynsym_index_" identifier . field_identifier) = number_literal) ;) (expression_statement "symval.output_symtab_index_ = address_00;" (assignment_expression "symval.output_symtab_index_ = address_00" (field_expression "symval.output_symtab_index_" identifier . field_identifier) = identifier) ;) (expression_statement "symval.u_.value = *(undefined4 *)&gsym[1].name_;" (assignment_expression "symval.u_.value = *(undefined4 *)&gsym[1].name_" (field_expression "symval.u_.value" (field_expression "symval.u_" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)&gsym[1].name_" * (cast_expression "(undefined4 *)&gsym[1].name_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&gsym[1].name_" & (field_expression "gsym[1].name_" (subscript_expression "gsym[1]" identifier [ number_literal ]) . field_identifier))))) ;) (expression_statement "bVar1 = gsym->field_0x38 & 0xf;" (assignment_expression "bVar1 = gsym->field_0x38 & 0xf" identifier = (binary_expression "gsym->field_0x38 & 0xf" (field_expression "gsym->field_0x38" identifier -> field_identifier) & number_literal)) ;) (if_statement "if (bVar1 == 6) {\n      symval._8_4_ = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }" if (parenthesized_expression "(bVar1 == 6)" ( (binary_expression "bVar1 == 6" identifier == number_literal) )) (compound_statement "{\n      symval._8_4_ = 0xa0000000;\n    }" { (expression_statement "symval._8_4_ = 0xa0000000;" (assignment_expression "symval._8_4_ = 0xa0000000" (field_expression "symval._8_4_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else if (bVar1 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }" else (if_statement "if (bVar1 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }" if (parenthesized_expression "(bVar1 == 10)" ( (binary_expression "bVar1 == 10" identifier == number_literal) )) (compound_statement "{\n      symval._8_4_ = 0xc0000000;\n    }" { (expression_statement "symval._8_4_ = 0xc0000000;" (assignment_expression "symval._8_4_ = 0xc0000000" (field_expression "symval._8_4_" identifier . field_identifier) = number_literal) ;) })))) comment (ERROR "Relocate::relocate((Relocate *)relinfo,(Relocate_info<32,_true> *)this,0xffffffff,\n                       (Target_tilegx<32,_true> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<32> *)(ulong)(address + r_offset),\n                       (Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_));\n    gold::Symbol_value<32>::~Symbol_value(&symval,(int)this);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/object.h",0x70d,"set_output_symtab_index");" identifier (ERROR ":" :) : identifier ( (cast_expression "(Relocate *)relinfo" ( (type_descriptor "Relocate *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , ( (binary_expression "Relocate_info<32" identifier < number_literal) , (binary_expression "_true> *)this" identifier > (pointer_expression "*)this" * (ERROR ")" )) identifier)) , number_literal , ( (ERROR "Target_tilegx<32,_true> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<32> *)(ulong)(address + r_offset),\n                       (Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_));\n    gold::Symbol_value<32>::~Symbol_value(&symval,(int)this);\n    return;\n  }" (comma_expression "Target_tilegx<32,_true> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<32> *)(ulong)(address + r_offset),\n                       (Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_))" (binary_expression "Target_tilegx<32" identifier < number_literal) , (comma_expression "_true> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<32> *)(ulong)(address + r_offset),\n                       (Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_))" (binary_expression "_true> *)relbuf" identifier > (pointer_expression "*)relbuf" * (ERROR ")" )) identifier)) , (comma_expression "(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<32> *)(ulong)(address + r_offset),\n                       (Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_))" (cast_expression "(Output_section *)gsym" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (comma_expression "(size_t)&symval,\n                       view + r_offset,(Sized_symbol<32> *)(ulong)(address + r_offset),\n                       (Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_))" (cast_expression "(size_t)&symval" ( (type_descriptor "size_t" primitive_type) ) (pointer_expression "&symval" & identifier)) , (comma_expression "view + r_offset,(Sized_symbol<32> *)(ulong)(address + r_offset),\n                       (Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_))" (binary_expression "view + r_offset" identifier + identifier) , (comma_expression "(Sized_symbol<32> *)(ulong)(address + r_offset),\n                       (Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_))" (call_expression "(Sized_symbol<32> *)(ulong)(address + r_offset)" (call_expression "(Sized_symbol<32> *)(ulong)" (parenthesized_expression "(Sized_symbol<32> *)" ( (binary_expression "Sized_symbol<32> *" (binary_expression "Sized_symbol<32" identifier < number_literal) > (pointer_expression "*" * identifier)) )) (argument_list "(ulong)" ( identifier ))) (argument_list "(address + r_offset)" ( (binary_expression "address + r_offset" identifier + identifier) ))) , (parenthesized_expression "(Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_))" ( (comma_expression "Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48),\n                       (uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_)" (binary_expression "Symbol_value<32> *)CONCAT44(relbuf._0_4_,uStack_48)" (binary_expression "Symbol_value<32" identifier < number_literal) > (pointer_expression "*)CONCAT44(relbuf._0_4_,uStack_48)" * (ERROR ")" )) (call_expression "CONCAT44(relbuf._0_4_,uStack_48)" identifier (argument_list "(relbuf._0_4_,uStack_48)" ( (field_expression "relbuf._0_4_" identifier . field_identifier) , identifier ))))) , (comma_expression "(uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_),address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_)" (cast_expression "(uchar *)CONCAT44(relbuf._8_4_,relbuf._4_4_)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(relbuf._8_4_,relbuf._4_4_)" identifier (argument_list "(relbuf._8_4_,relbuf._4_4_)" ( (field_expression "relbuf._8_4_" identifier . field_identifier) , (field_expression "relbuf._4_4_" identifier . field_identifier) )))) , (comma_expression "address_00,\n                       CONCAT44(symval._12_4_,symval._8_4_)" identifier , (call_expression "CONCAT44(symval._12_4_,symval._8_4_)" identifier (argument_list "(symval._12_4_,symval._8_4_)" ( (field_expression "symval._12_4_" identifier . field_identifier) , (field_expression "symval._8_4_" identifier . field_identifier) )))))) )))))))) ; identifier : : identifier < number_literal > : : (unary_expression "~Symbol_value(&symval,(int)this)" ~ (call_expression "Symbol_value(&symval,(int)this)" identifier (argument_list "(&symval,(int)this)" ( (pointer_expression "&symval" & identifier) , (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) )))) ; return ; }) comment (ERROR "gold::" identifier : :) (call_expression "do_gold_unreachable("../../gold/object.h",0x70d,"set_output_symtab_index")" identifier (argument_list "("../../gold/object.h",0x70d,"set_output_symtab_index")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""set_output_symtab_index"" " string_content ") ))) ;) })))
(translation_unit "void FUN_0027ef20(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,\n                 long param_6,long param_7)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint local_44;\n  int local_40;\n  uint local_3c;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined4 local_28;\n  \n  local_40 = (uint)param_4 << 0x18;\n  local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18\n  ;\n  local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18\n  ;\n  uVar2 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar2) {\n                    \n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar2 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    \n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }\n                    \n  FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");\n}\n\n" (function_definition "void FUN_0027ef20(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,\n                 long param_6,long param_7)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint local_44;\n  int local_40;\n  uint local_3c;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined4 local_28;\n  \n  local_40 = (uint)param_4 << 0x18;\n  local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18\n  ;\n  local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18\n  ;\n  uVar2 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar2) {\n                    \n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar2 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    \n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }\n                    \n  FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" primitive_type (function_declarator "FUN_0027ef20(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,\n                 long param_6,long param_7)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,\n                 long param_6,long param_7)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "byte param_4" type_identifier identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_7" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint local_44;\n  int local_40;\n  uint local_3c;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined4 local_28;\n  \n  local_40 = (uint)param_4 << 0x18;\n  local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18\n  ;\n  local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18\n  ;\n  uVar2 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar2) {\n                    \n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar2 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    \n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }\n                    \n  FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (expression_statement "local_40 = (uint)param_4 << 0x18;" (assignment_expression "local_40 = (uint)param_4 << 0x18" identifier = (binary_expression "(uint)param_4 << 0x18" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) ;) (expression_statement "local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18\n  ;" (assignment_expression "local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18" identifier = (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18" (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8" (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8" (binary_expression "param_5 >> 0x18" identifier >> number_literal) | (binary_expression "(param_5 & 0xff0000) >> 8" (parenthesized_expression "(param_5 & 0xff0000)" ( (binary_expression "param_5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_5 & 0xff00) << 8" (parenthesized_expression "(param_5 & 0xff00)" ( (binary_expression "param_5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_5 << 0x18" identifier << number_literal))) ;) (expression_statement "local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18\n  ;" (assignment_expression "local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18" identifier = (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8" (binary_expression "param_3 >> 0x18" identifier >> number_literal) | (binary_expression "(param_3 & 0xff0000) >> 8" (parenthesized_expression "(param_3 & 0xff0000)" ( (binary_expression "param_3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff00) << 8" (parenthesized_expression "(param_3 & 0xff00)" ( (binary_expression "param_3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_3 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar2 = *(int *)(param_6 + 0x1c) - 1;" (assignment_expression "uVar2 = *(int *)(param_6 + 0x1c) - 1" identifier = (binary_expression "*(int *)(param_6 + 0x1c) - 1" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) - number_literal)) ;) (expression_statement "local_38 = 0xffffffff00000000;" (assignment_expression "local_38 = 0xffffffff00000000" identifier = number_literal) ;) (expression_statement "local_30 = 0x80000000;" (assignment_expression "local_30 = 0x80000000" identifier = number_literal) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (0xfffffffd < uVar2) {\n                    \n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" if (parenthesized_expression "(0xfffffffd < uVar2)" ( (binary_expression "0xfffffffd < uVar2" number_literal < identifier) )) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" { (expression_statement "FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");" (call_expression "FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation")" identifier (argument_list "("../../gold/target-reloc.h",0x1f2,"apply_relocation")" ( (string_literal ""../../gold/target-reloc.h"" " string_content ") , number_literal , (string_literal ""apply_relocation"" " string_content ") ))) ;) })) (if_statement "if (uVar2 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    \n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }" if (parenthesized_expression "(uVar2 != 0xfffffffd)" ( (binary_expression "uVar2 != 0xfffffffd" identifier != number_literal) )) (compound_statement "{\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    \n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }" { (expression_statement "local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));" (assignment_expression "local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c))" identifier = (call_expression "CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c))" identifier (argument_list "(0xffffffff,*(int *)(param_6 + 0x1c))" ( number_literal , (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "local_28 = *(undefined4 *)(param_6 + 0x40);" (assignment_expression "local_28 = *(undefined4 *)(param_6 + 0x40)" identifier = (pointer_expression "*(undefined4 *)(param_6 + 0x40)" * (cast_expression "(undefined4 *)(param_6 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x40)" ( (binary_expression "param_6 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)(param_6 + 0x38) & 0xf;" (assignment_expression "bVar1 = *(byte *)(param_6 + 0x38) & 0xf" identifier = (binary_expression "*(byte *)(param_6 + 0x38) & 0xf" (pointer_expression "*(byte *)(param_6 + 0x38)" * (cast_expression "(byte *)(param_6 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x38)" ( (binary_expression "param_6 + 0x38" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }" if (parenthesized_expression "(bVar1 == 6)" ( (binary_expression "bVar1 == 6" identifier == number_literal) )) (compound_statement "{\n      local_30 = 0xa0000000;\n    }" { (expression_statement "local_30 = 0xa0000000;" (assignment_expression "local_30 = 0xa0000000" identifier = number_literal) ;) }) (else_clause "else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }" else (if_statement "if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }" if (parenthesized_expression "(bVar1 == 10)" ( (binary_expression "bVar1 == 10" identifier == number_literal) )) (compound_statement "{\n      local_30 = 0xc0000000;\n    }" { (expression_statement "local_30 = 0xc0000000;" (assignment_expression "local_30 = 0xc0000000" identifier = number_literal) ;) })))) (expression_statement "FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);" (call_expression "FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7)" identifier (argument_list "(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7)" ( identifier , identifier , number_literal , (pointer_expression "&local_44" & identifier) , identifier , (pointer_expression "&local_38" & identifier) , (binary_expression "(ulong)param_3 + param_7" (cast_expression "(ulong)param_3" ( (type_descriptor "ulong" type_identifier) ) identifier) + identifier) ))) ;) (expression_statement "FUN_001a5bc0(&local_38);" (call_expression "FUN_001a5bc0(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");" (call_expression "FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index")" identifier (argument_list "("../../gold/object.h",0x70d,"set_output_symtab_index")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""set_output_symtab_index"" " string_content ") ))) ;) })))
(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 (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_0027ef20(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,\n                 long param_6,long param_7)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint local_44;\n  int local_40;\n  uint local_3c;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined4 local_28;\n  \n  local_40 = (uint)param_4 << 0x18;\n  local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18\n  ;\n  local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18\n  ;\n  uVar2 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar2) {\n                    \n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar2 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    \n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }\n                    \n  FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" (primitive_type "void") (function_declarator "FUN_0027ef20(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,\n                 long param_6,long param_7)" (identifier "FUN_0027ef20") (parameter_list "(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,\n                 long param_6,long param_7)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "byte param_4" (type_identifier "byte") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "long param_6" (sized_type_specifier "long" (long "long")) (identifier "param_6")) (, ",") (parameter_declaration "long param_7" (sized_type_specifier "long" (long "long")) (identifier "param_7")) () ")"))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint local_44;\n  int local_40;\n  uint local_3c;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined4 local_28;\n  \n  local_40 = (uint)param_4 << 0x18;\n  local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18\n  ;\n  local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18\n  ;\n  uVar2 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar2) {\n                    \n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar2 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    \n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }\n                    \n  FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "undefined8 local_38;" (type_identifier "undefined8") (identifier "local_38") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (expression_statement "local_40 = (uint)param_4 << 0x18;" (assignment_expression "local_40 = (uint)param_4 << 0x18" (identifier "local_40") (= "=") (binary_expression "(uint)param_4 << 0x18" (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")) (<< "<<") (number_literal "0x18"))) (; ";")) (expression_statement "local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18\n  ;" (assignment_expression "local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18" (identifier "local_3c") (= "=") (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18" (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8" (binary_expression "param_5 >> 0x18 | (param_5 & 0xff0000) >> 8" (binary_expression "param_5 >> 0x18" (identifier "param_5") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(param_5 & 0xff0000) >> 8" (parenthesized_expression "(param_5 & 0xff0000)" (( "(") (binary_expression "param_5 & 0xff0000" (identifier "param_5") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(param_5 & 0xff00) << 8" (parenthesized_expression "(param_5 & 0xff00)" (( "(") (binary_expression "param_5 & 0xff00" (identifier "param_5") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "param_5 << 0x18" (identifier "param_5") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18\n  ;" (assignment_expression "local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18" (identifier "local_44") (= "=") (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8" (binary_expression "param_3 >> 0x18 | (param_3 & 0xff0000) >> 8" (binary_expression "param_3 >> 0x18" (identifier "param_3") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(param_3 & 0xff0000) >> 8" (parenthesized_expression "(param_3 & 0xff0000)" (( "(") (binary_expression "param_3 & 0xff0000" (identifier "param_3") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(param_3 & 0xff00) << 8" (parenthesized_expression "(param_3 & 0xff00)" (( "(") (binary_expression "param_3 & 0xff00" (identifier "param_3") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "param_3 << 0x18" (identifier "param_3") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar2 = *(int *)(param_6 + 0x1c) - 1;" (assignment_expression "uVar2 = *(int *)(param_6 + 0x1c) - 1" (identifier "uVar2") (= "=") (binary_expression "*(int *)(param_6 + 0x1c) - 1" (pointer_expression "*(int *)(param_6 + 0x1c)" (* "*") (cast_expression "(int *)(param_6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x1c)" (( "(") (binary_expression "param_6 + 0x1c" (identifier "param_6") (+ "+") (number_literal "0x1c")) () ")")))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "local_38 = 0xffffffff00000000;" (assignment_expression "local_38 = 0xffffffff00000000" (identifier "local_38") (= "=") (number_literal "0xffffffff00000000")) (; ";")) (expression_statement "local_30 = 0x80000000;" (assignment_expression "local_30 = 0x80000000" (identifier "local_30") (= "=") (number_literal "0x80000000")) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0xfffffffd < uVar2) {\n                    \n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" (if "if") (parenthesized_expression "(0xfffffffd < uVar2)" (( "(") (binary_expression "0xfffffffd < uVar2" (number_literal "0xfffffffd") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" ({ "{") (expression_statement "FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");" (call_expression "FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation")" (identifier "FUN_00352af0") (argument_list "("../../gold/target-reloc.h",0x1f2,"apply_relocation")" (( "(") (string_literal ""../../gold/target-reloc.h"" (" """) (string_content "../../gold/target-reloc.h") (" """)) (, ",") (number_literal "0x1f2") (, ",") (string_literal ""apply_relocation"" (" """) (string_content "apply_relocation") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar2 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    \n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }" (if "if") (parenthesized_expression "(uVar2 != 0xfffffffd)" (( "(") (binary_expression "uVar2 != 0xfffffffd" (identifier "uVar2") (!= "!=") (number_literal "0xfffffffd")) () ")")) (compound_statement "{\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined4 *)(param_6 + 0x40);\n    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;\n    if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }\n                    \n    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);\n    FUN_001a5bc0(&local_38);\n    return;\n  }" ({ "{") (expression_statement "local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));" (assignment_expression "local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c))" (identifier "local_38") (= "=") (call_expression "CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c))" (identifier "CONCAT44") (argument_list "(0xffffffff,*(int *)(param_6 + 0x1c))" (( "(") (number_literal "0xffffffff") (, ",") (pointer_expression "*(int *)(param_6 + 0x1c)" (* "*") (cast_expression "(int *)(param_6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x1c)" (( "(") (binary_expression "param_6 + 0x1c" (identifier "param_6") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "local_28 = *(undefined4 *)(param_6 + 0x40);" (assignment_expression "local_28 = *(undefined4 *)(param_6 + 0x40)" (identifier "local_28") (= "=") (pointer_expression "*(undefined4 *)(param_6 + 0x40)" (* "*") (cast_expression "(undefined4 *)(param_6 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x40)" (( "(") (binary_expression "param_6 + 0x40" (identifier "param_6") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "bVar1 = *(byte *)(param_6 + 0x38) & 0xf;" (assignment_expression "bVar1 = *(byte *)(param_6 + 0x38) & 0xf" (identifier "bVar1") (= "=") (binary_expression "*(byte *)(param_6 + 0x38) & 0xf" (pointer_expression "*(byte *)(param_6 + 0x38)" (* "*") (cast_expression "(byte *)(param_6 + 0x38)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x38)" (( "(") (binary_expression "param_6 + 0x38" (identifier "param_6") (+ "+") (number_literal "0x38")) () ")")))) (& "&") (number_literal "0xf"))) (; ";")) (if_statement "if (bVar1 == 6) {\n      local_30 = 0xa0000000;\n    }\n    else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }" (if "if") (parenthesized_expression "(bVar1 == 6)" (( "(") (binary_expression "bVar1 == 6" (identifier "bVar1") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n      local_30 = 0xa0000000;\n    }" ({ "{") (expression_statement "local_30 = 0xa0000000;" (assignment_expression "local_30 = 0xa0000000" (identifier "local_30") (= "=") (number_literal "0xa0000000")) (; ";")) (} "}")) (else_clause "else if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }" (else "else") (if_statement "if (bVar1 == 10) {\n      local_30 = 0xc0000000;\n    }" (if "if") (parenthesized_expression "(bVar1 == 10)" (( "(") (binary_expression "bVar1 == 10" (identifier "bVar1") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n      local_30 = 0xc0000000;\n    }" ({ "{") (expression_statement "local_30 = 0xc0000000;" (assignment_expression "local_30 = 0xc0000000" (identifier "local_30") (= "=") (number_literal "0xc0000000")) (; ";")) (} "}"))))) (expression_statement "FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);" (call_expression "FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7)" (identifier "FUN_0027e020") (argument_list "(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7)" (( "(") (identifier "param_2") (, ",") (identifier "param_1") (, ",") (number_literal "0xffffffff") (, ",") (pointer_expression "&local_44" (& "&") (identifier "local_44")) (, ",") (identifier "param_6") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (binary_expression "(ulong)param_3 + param_7" (cast_expression "(ulong)param_3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_3")) (+ "+") (identifier "param_7")) () ")"))) (; ";")) (expression_statement "FUN_001a5bc0(&local_38);" (call_expression "FUN_001a5bc0(&local_38)" (identifier "FUN_001a5bc0") (argument_list "(&local_38)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");" (call_expression "FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index")" (identifier "FUN_00352af0") (argument_list "("../../gold/object.h",0x70d,"set_output_symtab_index")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x70d") (, ",") (string_literal ""set_output_symtab_index"" (" """) (string_content "set_output_symtab_index") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Variable defined which should be unmapped: relbuf */
/* WARNING: Variable defined which should be unmapped: symval */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void apply_relocation(Target_tilegx<32,_true> * this,
   Relocate_info<32,_true> * relinfo, Elf_Addr r_offset, uint r_type, Elf_Swxword r_addend, Symbol *
   gsym, uchar * view, Elf_Addr address, section_size_type view_size) */

void __thiscall
anon_unknown.dwarf_ca7751::Target_tilegx<32,_true>::apply_relocation
          (Target_tilegx<32,_true> *this,Relocate_info<32,_true> *relinfo,Elf_Addr var_5,
          type_4 var_3,Elf_Swxword var_4,Symbol *gsym,type_3 *view,Elf_Addr address,
          section_size_type view_size)

{
  Elf_Addr var_6;
  type_1 var_8;
  type_2 uStack_48;
  type_3 relbuf [12];
  var_1<32> var_2;
  
  relbuf._4_4_ = var_3 << 0x18;
  relbuf._8_4_ = (type_4)var_4 >> 0x18 | (var_4 & 0xff0000U) >> 8 | (var_4 & 0xff00U) << 8 |
                 var_4 << 0x18;
  relbuf._0_4_ = var_5 >> 0x18 | (var_5 & 0xff0000) >> 8 | (var_5 & 0xff00) << 8 |
                 var_5 << 0x18;
  var_6 = gsym->symtab_index_;
  var_2.output_symtab_index_ = 0;
  var_2.output_dynsym_index_ = 0xffffffff;
  var_2._8_4_ = 0x80000000;
  var_2.u_.value = 0;
  if (0xfffffffd < var_6 - 1) {
                    /* WARNING: Subroutine does not return */
    gold::var_7("../../gold/target-reloc.h",0x1f2,"apply_relocation");
  }
  if (var_6 - 1 != 0xfffffffd) {
    var_2.output_dynsym_index_ = 0xffffffff;
    var_2.output_symtab_index_ = var_6;
    var_2.u_.value = *(type_2 *)&gsym[1].name_;
    var_8 = gsym->field_0x38 & 0xf;
    if (var_8 == 6) {
      var_2._8_4_ = 0xa0000000;
    }
    else if (var_8 == 10) {
      var_2._8_4_ = 0xc0000000;
    }
                    /* try { // try from 0027efb7 to 0027f01d has its CatchHandler @ 0027f01e */
    Relocate::relocate((Relocate *)relinfo,(Relocate_info<32,_true> *)this,0xffffffff,
                       (Target_tilegx<32,_true> *)relbuf,(Output_section *)gsym,(size_t)&var_2,
                       view + var_5,(Sized_symbol<32> *)(ulong)(address + var_5),
                       (var_1<32> *)CONCAT44(relbuf._0_4_,uStack_48),
                       (type_3 *)CONCAT44(relbuf._8_4_,relbuf._4_4_),var_6,
                       CONCAT44(var_2._12_4_,var_2._8_4_));
    gold::var_1<32>::~var_1(&var_2,(int)this);
    return;
  }
                    /* WARNING: Subroutine does not return */
  gold::var_7("../../gold/object.h",0x70d,"set_output_symtab_index");
}


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

void MASKED(undefined8 param_1,undefined8 param_2,uint param_3,byte param_4,uint param_5,
                 long param_6,long param_7)

{
  byte bVar1;
  uint uVar2;
  uint local_44;
  int local_40;
  uint local_3c;
  undefined8 local_38;
  undefined4 local_30;
  undefined4 local_28;
  
  local_40 = (uint)param_4 << 0x18;
  local_3c = param_5 >> 0x18 | (param_5 & 0xff0000) >> 8 | (param_5 & 0xff00) << 8 | param_5 << 0x18
  ;
  local_44 = param_3 >> 0x18 | (param_3 & 0xff0000) >> 8 | (param_3 & 0xff00) << 8 | param_3 << 0x18
  ;
  uVar2 = *(int *)(param_6 + 0x1c) - 1;
  local_38 = 0xffffffff00000000;
  local_30 = 0x80000000;
  local_28 = 0;
  if (0xfffffffd < uVar2) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/target-reloc.h",0x1f2,"apply_relocation");
  }
  if (uVar2 != 0xfffffffd) {
    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));
    local_28 = *(undefined4 *)(param_6 + 0x40);
    bVar1 = *(byte *)(param_6 + 0x38) & 0xf;
    if (bVar1 == 6) {
      local_30 = 0xa0000000;
    }
    else if (bVar1 == 10) {
      local_30 = 0xc0000000;
    }
                    /* try { // try from 0027efb7 to 0027f01d has its CatchHandler @ 0027f01e */
    FUN_0027e020(param_2,param_1,0xffffffff,&local_44,param_6,&local_38,(ulong)param_3 + param_7);
    FUN_001a5bc0(&local_38);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00352af0("../../gold/object.h",0x70d,"set_output_symtab_index");
}

