
/* WARNING: Variable defined which should be unmapped: relbuf */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void apply_relocation(Target_s390<64> * this, Relocate_info<64,_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_23cd15::Target_s390<64>::apply_relocation
          (Target_s390<64> *this,Relocate_info<64,_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
          )

{
  uint uVar1;
  byte bVar2;
  ulong uVar3;
  uchar *in_stack_ffffffffffffffa0;
  uchar relbuf [24];
  Symbol_value<64> symval;
  
  uVar3 = (ulong)r_type;
  relbuf._8_8_ = (uVar3 & 0xff000000) << 8 | (uVar3 & 0xff0000) << 0x18 | (uVar3 & 0xff00) << 0x28 |
                 uVar3 << 0x38;
  relbuf._16_8_ =
       (ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28 |
       (r_addend & 0xff0000000000U) >> 0x18 | (r_addend & 0xff00000000U) >> 8 |
       (r_addend & 0xff000000U) << 8 | (r_addend & 0xff0000U) << 0x18 | (r_addend & 0xff00U) << 0x28
       | r_addend << 0x38;
  relbuf._0_8_ = r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28 |
                 (r_offset & 0xff0000000000) >> 0x18 | (r_offset & 0xff00000000) >> 8 |
                 (r_offset & 0xff000000) << 8 | (r_offset & 0xff0000) << 0x18 |
                 (r_offset & 0xff00) << 0x28 | r_offset << 0x38;
  uVar1 = gsym->symtab_index_ - 1;
  symval.output_symtab_index_ = 0;
  symval.output_dynsym_index_ = 0xffffffff;
  symval._8_4_ = 0x80000000;
  symval.u_.value = 0;
  if (0xfffffffd < uVar1) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/target-reloc.h",0x1f2,"apply_relocation");
  }
  if (uVar1 != 0xfffffffd) {
    symval.output_dynsym_index_ = 0xffffffff;
    symval.output_symtab_index_ = gsym->symtab_index_;
    symval.u_ = *(anon_union_8_2_6a937475_for_u_ *)(gsym + 1);
    bVar2 = gsym->field_0x38 & 0xf;
    if (bVar2 == 6) {
      symval._8_4_ = 0xa0000000;
    }
    else if (bVar2 == 10) {
      symval._8_4_ = 0xc0000000;
    }
                    /* try { // try from 00167998 to 001679fd has its CatchHandler @ 001679fe */
    Relocate::relocate((Relocate *)relinfo,(Relocate_info<64,_true> *)this,0xffffffff,
                       (Target_s390<64> *)relbuf,(Output_section *)gsym,(size_t)&symval,
                       view + r_offset,(Sized_symbol<64> *)(address + r_offset),
                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,
                       relbuf._8_8_);
    gold::Symbol_value<64>::~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_001678f0(undefined8 param_1,undefined8 param_2,ulong param_3,uint param_4,ulong param_5,
                 long param_6,long param_7,long param_8,undefined8 param_9)

{
  byte bVar1;
  ulong uVar2;
  uint uVar3;
  ulong local_58;
  ulong local_50;
  ulong local_48;
  undefined8 local_38;
  undefined4 local_30;
  undefined8 local_28;
  
  uVar2 = (ulong)param_4;
  local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |
             uVar2 << 0x38;
  local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |
             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |
             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28
             | param_5 << 0x38;
  local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |
             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |
             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28
             | param_3 << 0x38;
  uVar3 = *(int *)(param_6 + 0x1c) - 1;
  local_38 = 0xffffffff00000000;
  local_30 = 0x80000000;
  local_28 = 0;
  if (0xfffffffd < uVar3) {
                    /* WARNING: Subroutine does not return */
    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");
  }
  if (uVar3 != 0xfffffffd) {
    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));
    local_28 = *(undefined8 *)(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 00167998 to 001679fd has its CatchHandler @ 001679fe */
    FUN_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,
                 param_8 + param_3,param_9);
    FUN_00177310(&local_38);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");
}


PUSH RBP
MOV ECX,ECX
MOV R10,RDI
MOV RDI,RSI
BSWAP RCX
MOV RSI,RDX
BSWAP R8
BSWAP RSI
MOV RBP,RSP
PUSH R14
PUSH RBX
MOV RBX,-0x100000000
SUB RSP,0x40
MOV qword ptr [RBP + -0x48],RCX
MOV ECX,dword ptr [R9 + 0x1c]
MOV qword ptr [RBP + -0x50],RSI
LEA ESI,[RCX + -0x1]
MOV qword ptr [RBP + -0x40],R8
MOV qword ptr [RBP + -0x30],RBX
MOV dword ptr [RBP + -0x28],0x80000000
MOV qword ptr [RBP + -0x20],0x0
CMP ESI,-0x3
JA 0x001679c6
JZ 0x001679e2
MOV dword ptr [RBP + -0x30],ECX
MOV RCX,qword ptr [R9 + 0x40]
MOV RAX,R9
MOV qword ptr [RBP + -0x20],RCX
MOVZX ECX,byte ptr [R9 + 0x38]
AND ECX,0xf
CMP ECX,0x6
JZ 0x001679c0
CMP ECX,0xa
JZ 0x001679b8
MOV RSI,qword ptr [RBP + 0x18]
SUB RSP,0x8
PUSH qword ptr [RBP + 0x20]
LEA RBX,[RBP + -0x30]
LEA RCX,[RBP + -0x50]
MOV R9,RBX
MOV R8,RAX
ADD RSI,RDX
ADD RDX,qword ptr [RBP + 0x10]
PUSH RSI
MOV RSI,R10
PUSH RDX
MOV EDX,0xffffffff
CALL 0x00165d90
ADD RSP,0x20
MOV RDI,RBX
CALL 0x00177310
LEA RSP,[RBP + -0x10]
POP RBX
POP R14
POP RBP
RET
OR byte ptr [RBP + -0x25],0x40
JMP 0x0016796e
OR byte ptr [RBP + -0x25],0x20
JMP 0x0016796e
LEA RDX,[0x38b270]
MOV ESI,0x1f2
LEA RDI,[0x38b6c2]
LEA RBX,[RBP + -0x30]
CALL 0x0018ff20
LEA RDX,[0x38b250]
MOV ESI,0x70d
LEA RDI,[0x3873ac]
LEA RBX,[RBP + -0x30]
CALL 0x0018ff20
(translation_unit "void FUN_001678f0(undefined8 param_1,undefined8 param_2,ulong param_3,uint param_4,ulong param_5,\n                 long param_6,long param_7,long param_8,undefined8 param_9)\n\n{\n  byte bVar1;\n  ulong uVar2;\n  uint uVar3;\n  ulong local_58;\n  ulong local_50;\n  ulong local_48;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined8 local_28;\n  \n  uVar2 = (ulong)param_4;\n  local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38;\n  local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38;\n  local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38;\n  uVar3 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar3) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar3 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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 00167998 to 001679fd has its CatchHandler @ 001679fe */\n    FUN_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&local_38);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");\n}\n\n" (function_definition "void FUN_001678f0(undefined8 param_1,undefined8 param_2,ulong param_3,uint param_4,ulong param_5,\n                 long param_6,long param_7,long param_8,undefined8 param_9)\n\n{\n  byte bVar1;\n  ulong uVar2;\n  uint uVar3;\n  ulong local_58;\n  ulong local_50;\n  ulong local_48;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined8 local_28;\n  \n  uVar2 = (ulong)param_4;\n  local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38;\n  local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38;\n  local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38;\n  uVar3 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar3) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar3 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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 00167998 to 001679fd has its CatchHandler @ 001679fe */\n    FUN_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&local_38);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" primitive_type (function_declarator "FUN_001678f0(undefined8 param_1,undefined8 param_2,ulong param_3,uint param_4,ulong param_5,\n                 long param_6,long param_7,long param_8,undefined8 param_9)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,ulong param_3,uint param_4,ulong param_5,\n                 long param_6,long param_7,long param_8,undefined8 param_9)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "ulong param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "ulong 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) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_9" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  ulong uVar2;\n  uint uVar3;\n  ulong local_58;\n  ulong local_50;\n  ulong local_48;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined8 local_28;\n  \n  uVar2 = (ulong)param_4;\n  local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38;\n  local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38;\n  local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38;\n  uVar3 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar3) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar3 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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 00167998 to 001679fd has its CatchHandler @ 001679fe */\n    FUN_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&local_38);\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "ulong local_58;" type_identifier identifier ;) (declaration "ulong local_50;" type_identifier identifier ;) (declaration "ulong local_48;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (expression_statement "uVar2 = (ulong)param_4;" (assignment_expression "uVar2 = (ulong)param_4" identifier = (cast_expression "(ulong)param_4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38;" (assignment_expression "local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38" identifier = (binary_expression "(uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38" (binary_expression "(uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28" (binary_expression "(uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal))) ;) (expression_statement "local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38;" (assignment_expression "local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38" identifier = (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28" (binary_expression "param_5 >> 0x38" identifier >> number_literal) | (binary_expression "(param_5 & 0xff000000000000) >> 0x28" (parenthesized_expression "(param_5 & 0xff000000000000)" ( (binary_expression "param_5 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_5 & 0xff0000000000) >> 0x18" (parenthesized_expression "(param_5 & 0xff0000000000)" ( (binary_expression "param_5 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_5 & 0xff00000000) >> 8" (parenthesized_expression "(param_5 & 0xff00000000)" ( (binary_expression "param_5 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_5 & 0xff000000) << 8" (parenthesized_expression "(param_5 & 0xff000000)" ( (binary_expression "param_5 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_5 & 0xff0000) << 0x18" (parenthesized_expression "(param_5 & 0xff0000)" ( (binary_expression "param_5 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_5 & 0xff00) << 0x28" (parenthesized_expression "(param_5 & 0xff00)" ( (binary_expression "param_5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_5 << 0x38" identifier << number_literal))) ;) (expression_statement "local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38;" (assignment_expression "local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38" identifier = (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28" (binary_expression "param_3 >> 0x38" identifier >> number_literal) | (binary_expression "(param_3 & 0xff000000000000) >> 0x28" (parenthesized_expression "(param_3 & 0xff000000000000)" ( (binary_expression "param_3 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff0000000000) >> 0x18" (parenthesized_expression "(param_3 & 0xff0000000000)" ( (binary_expression "param_3 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff00000000) >> 8" (parenthesized_expression "(param_3 & 0xff00000000)" ( (binary_expression "param_3 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff000000) << 8" (parenthesized_expression "(param_3 & 0xff000000)" ( (binary_expression "param_3 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_3 & 0xff0000) << 0x18" (parenthesized_expression "(param_3 & 0xff0000)" ( (binary_expression "param_3 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_3 & 0xff00) << 0x28" (parenthesized_expression "(param_3 & 0xff00)" ( (binary_expression "param_3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_3 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar3 = *(int *)(param_6 + 0x1c) - 1;" (assignment_expression "uVar3 = *(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 < uVar3) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" if (parenthesized_expression "(0xfffffffd < uVar3)" ( (binary_expression "0xfffffffd < uVar3" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" { comment (expression_statement "FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");" (call_expression "FUN_0018ff20("../../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 (uVar3 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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 00167998 to 001679fd has its CatchHandler @ 001679fe */\n    FUN_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&local_38);\n    return;\n  }" if (parenthesized_expression "(uVar3 != 0xfffffffd)" ( (binary_expression "uVar3 != 0xfffffffd" identifier != number_literal) )) (compound_statement "{\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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 00167998 to 001679fd has its CatchHandler @ 001679fe */\n    FUN_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&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 = *(undefined8 *)(param_6 + 0x40);" (assignment_expression "local_28 = *(undefined8 *)(param_6 + 0x40)" identifier = (pointer_expression "*(undefined8 *)(param_6 + 0x40)" * (cast_expression "(undefined8 *)(param_6 + 0x40)" ( (type_descriptor "undefined8 *" 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_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);" (call_expression "FUN_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9)" identifier (argument_list "(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9)" ( identifier , identifier , number_literal , (pointer_expression "&local_58" & identifier) , identifier , (pointer_expression "&local_38" & identifier) , (binary_expression "param_3 + param_7" identifier + identifier) , (binary_expression "param_8 + param_3" identifier + identifier) , identifier ))) ;) (expression_statement "FUN_00177310(&local_38);" (call_expression "FUN_00177310(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");" (call_expression "FUN_0018ff20("../../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: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void apply_relocation(Target_s390<64> * this, Relocate_info<64,_true> *\n   relinfo, Elf_Addr r_offset, uint r_type, Elf_Swxword r_addend, Symbol * gsym, uchar * view,\n   Elf_Addr address, section_size_type view_size) */\n\nvoid __thiscall\nanon_unknown.dwarf_23cd15::Target_s390<64>::apply_relocation\n          (Target_s390<64> *this,Relocate_info<64,_true> *relinfo,Elf_Addr r_offset,uint r_type,\n          Elf_Swxword r_addend,Symbol *gsym,uchar *view,Elf_Addr address,section_size_type view_size\n          )\n\n{\n  uint uVar1;\n  byte bVar2;\n  ulong uVar3;\n  uchar *in_stack_ffffffffffffffa0;\n  uchar relbuf [24];\n  Symbol_value<64> symval;\n  \n  uVar3 = (ulong)r_type;\n  relbuf._8_8_ = (uVar3 & 0xff000000) << 8 | (uVar3 & 0xff0000) << 0x18 | (uVar3 & 0xff00) << 0x28 |\n                 uVar3 << 0x38;\n  relbuf._16_8_ =\n       (ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28 |\n       (r_addend & 0xff0000000000U) >> 0x18 | (r_addend & 0xff00000000U) >> 8 |\n       (r_addend & 0xff000000U) << 8 | (r_addend & 0xff0000U) << 0x18 | (r_addend & 0xff00U) << 0x28\n       | r_addend << 0x38;\n  relbuf._0_8_ = r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28 |\n                 (r_offset & 0xff0000000000) >> 0x18 | (r_offset & 0xff00000000) >> 8 |\n                 (r_offset & 0xff000000) << 8 | (r_offset & 0xff0000) << 0x18 |\n                 (r_offset & 0xff00) << 0x28 | r_offset << 0x38;\n  uVar1 = gsym->symtab_index_ - 1;\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 < uVar1) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar1 != 0xfffffffd) {\n    symval.output_dynsym_index_ = 0xffffffff;\n    symval.output_symtab_index_ = gsym->symtab_index_;\n    symval.u_ = *(anon_union_8_2_6a937475_for_u_ *)(gsym + 1);\n    bVar2 = gsym->field_0x38 & 0xf;\n    if (bVar2 == 6) {\n      symval._8_4_ = 0xa0000000;\n    }\n    else if (bVar2 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }\n                    /* try { // try from 00167998 to 001679fd has its CatchHandler @ 001679fe */\n    Relocate::relocate((Relocate *)relinfo,(Relocate_info<64,_true> *)this,0xffffffff,\n                       (Target_s390<64> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<64> *)(address + r_offset),\n                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_);\n    gold::Symbol_value<64>::~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 (function_definition "void __thiscall\nanon_unknown.dwarf_23cd15::Target_s390<64>::apply_relocation\n          (Target_s390<64> *this,Relocate_info<64,_true> *relinfo,Elf_Addr r_offset,uint r_type,\n          Elf_Swxword r_addend,Symbol *gsym,uchar *view,Elf_Addr address,section_size_type view_size\n          )\n\n{\n  uint uVar1;\n  byte bVar2;\n  ulong uVar3;\n  uchar *in_stack_ffffffffffffffa0;\n  uchar relbuf [24];\n  Symbol_value<64> symval;\n  \n  uVar3 = (ulong)r_type;\n  relbuf._8_8_ = (uVar3 & 0xff000000) << 8 | (uVar3 & 0xff0000) << 0x18 | (uVar3 & 0xff00) << 0x28 |\n                 uVar3 << 0x38;\n  relbuf._16_8_ =\n       (ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28 |\n       (r_addend & 0xff0000000000U) >> 0x18 | (r_addend & 0xff00000000U) >> 8 |\n       (r_addend & 0xff000000U) << 8 | (r_addend & 0xff0000U) << 0x18 | (r_addend & 0xff00U) << 0x28\n       | r_addend << 0x38;\n  relbuf._0_8_ = r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28 |\n                 (r_offset & 0xff0000000000) >> 0x18 | (r_offset & 0xff00000000) >> 8 |\n                 (r_offset & 0xff000000) << 8 | (r_offset & 0xff0000) << 0x18 |\n                 (r_offset & 0xff00) << 0x28 | r_offset << 0x38;\n  uVar1 = gsym->symtab_index_ - 1;\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 < uVar1) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar1 != 0xfffffffd) {\n    symval.output_dynsym_index_ = 0xffffffff;\n    symval.output_symtab_index_ = gsym->symtab_index_;\n    symval.u_ = *(anon_union_8_2_6a937475_for_u_ *)(gsym + 1);\n    bVar2 = gsym->field_0x38 & 0xf;\n    if (bVar2 == 6) {\n      symval._8_4_ = 0xa0000000;\n    }\n    else if (bVar2 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }\n                    /* try { // try from 00167998 to 001679fd has its CatchHandler @ 001679fe */\n    Relocate::relocate((Relocate *)relinfo,(Relocate_info<64,_true> *)this,0xffffffff,\n                       (Target_s390<64> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<64> *)(address + r_offset),\n                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_);\n    gold::Symbol_value<64>::~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}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_23cd15::Target_s390<64>::" identifier . identifier : : identifier < number_literal > : :) (function_declarator "apply_relocation\n          (Target_s390<64> *this,Relocate_info<64,_true> *relinfo,Elf_Addr r_offset,uint r_type,\n          Elf_Swxword r_addend,Symbol *gsym,uchar *view,Elf_Addr address,section_size_type view_size\n          )" identifier (parameter_list "(Target_s390<64> *this,Relocate_info<64,_true> *relinfo,Elf_Addr r_offset,uint r_type,\n          Elf_Swxword r_addend,Symbol *gsym,uchar *view,Elf_Addr address,section_size_type view_size\n          )" ( (parameter_declaration "Target_s390<64> *this" type_identifier (ERROR "<64>" < number_literal >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relocate_info" type_identifier) (ERROR "<64" < 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) ))) (compound_statement "{\n  uint uVar1;\n  byte bVar2;\n  ulong uVar3;\n  uchar *in_stack_ffffffffffffffa0;\n  uchar relbuf [24];\n  Symbol_value<64> symval;\n  \n  uVar3 = (ulong)r_type;\n  relbuf._8_8_ = (uVar3 & 0xff000000) << 8 | (uVar3 & 0xff0000) << 0x18 | (uVar3 & 0xff00) << 0x28 |\n                 uVar3 << 0x38;\n  relbuf._16_8_ =\n       (ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28 |\n       (r_addend & 0xff0000000000U) >> 0x18 | (r_addend & 0xff00000000U) >> 8 |\n       (r_addend & 0xff000000U) << 8 | (r_addend & 0xff0000U) << 0x18 | (r_addend & 0xff00U) << 0x28\n       | r_addend << 0x38;\n  relbuf._0_8_ = r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28 |\n                 (r_offset & 0xff0000000000) >> 0x18 | (r_offset & 0xff00000000) >> 8 |\n                 (r_offset & 0xff000000) << 8 | (r_offset & 0xff0000) << 0x18 |\n                 (r_offset & 0xff00) << 0x28 | r_offset << 0x38;\n  uVar1 = gsym->symtab_index_ - 1;\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 < uVar1) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar1 != 0xfffffffd) {\n    symval.output_dynsym_index_ = 0xffffffff;\n    symval.output_symtab_index_ = gsym->symtab_index_;\n    symval.u_ = *(anon_union_8_2_6a937475_for_u_ *)(gsym + 1);\n    bVar2 = gsym->field_0x38 & 0xf;\n    if (bVar2 == 6) {\n      symval._8_4_ = 0xa0000000;\n    }\n    else if (bVar2 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }\n                    /* try { // try from 00167998 to 001679fd has its CatchHandler @ 001679fe */\n    Relocate::relocate((Relocate *)relinfo,(Relocate_info<64,_true> *)this,0xffffffff,\n                       (Target_s390<64> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<64> *)(address + r_offset),\n                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_);\n    gold::Symbol_value<64>::~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}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "uchar *in_stack_ffffffffffffffa0;" type_identifier (pointer_declarator "*in_stack_ffffffffffffffa0" * identifier) ;) (declaration "uchar relbuf [24];" type_identifier (array_declarator "relbuf [24]" identifier [ number_literal ]) ;) (expression_statement "Symbol_value<64> symval;" (binary_expression "Symbol_value<64> symval" (binary_expression "Symbol_value<64" identifier < number_literal) > identifier) ;) (expression_statement "uVar3 = (ulong)r_type;" (assignment_expression "uVar3 = (ulong)r_type" identifier = (cast_expression "(ulong)r_type" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "relbuf._8_8_ = (uVar3 & 0xff000000) << 8 | (uVar3 & 0xff0000) << 0x18 | (uVar3 & 0xff00) << 0x28 |\n                 uVar3 << 0x38;" (assignment_expression "relbuf._8_8_ = (uVar3 & 0xff000000) << 8 | (uVar3 & 0xff0000) << 0x18 | (uVar3 & 0xff00) << 0x28 |\n                 uVar3 << 0x38" (field_expression "relbuf._8_8_" identifier . field_identifier) = (binary_expression "(uVar3 & 0xff000000) << 8 | (uVar3 & 0xff0000) << 0x18 | (uVar3 & 0xff00) << 0x28 |\n                 uVar3 << 0x38" (binary_expression "(uVar3 & 0xff000000) << 8 | (uVar3 & 0xff0000) << 0x18 | (uVar3 & 0xff00) << 0x28" (binary_expression "(uVar3 & 0xff000000) << 8 | (uVar3 & 0xff0000) << 0x18" (binary_expression "(uVar3 & 0xff000000) << 8" (parenthesized_expression "(uVar3 & 0xff000000)" ( (binary_expression "uVar3 & 0xff000000" identifier & number_literal) )) << number_literal) | (binary_expression "(uVar3 & 0xff0000) << 0x18" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar3 & 0xff00) << 0x28" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x38" identifier << number_literal))) ;) (expression_statement "relbuf._16_8_ =\n       (ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28 |\n       (r_addend & 0xff0000000000U) >> 0x18 | (r_addend & 0xff00000000U) >> 8 |\n       (r_addend & 0xff000000U) << 8 | (r_addend & 0xff0000U) << 0x18 | (r_addend & 0xff00U) << 0x28\n       | r_addend << 0x38;" (assignment_expression "relbuf._16_8_ =\n       (ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28 |\n       (r_addend & 0xff0000000000U) >> 0x18 | (r_addend & 0xff00000000U) >> 8 |\n       (r_addend & 0xff000000U) << 8 | (r_addend & 0xff0000U) << 0x18 | (r_addend & 0xff00U) << 0x28\n       | r_addend << 0x38" (field_expression "relbuf._16_8_" identifier . field_identifier) = (binary_expression "(ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28 |\n       (r_addend & 0xff0000000000U) >> 0x18 | (r_addend & 0xff00000000U) >> 8 |\n       (r_addend & 0xff000000U) << 8 | (r_addend & 0xff0000U) << 0x18 | (r_addend & 0xff00U) << 0x28\n       | r_addend << 0x38" (binary_expression "(ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28 |\n       (r_addend & 0xff0000000000U) >> 0x18 | (r_addend & 0xff00000000U) >> 8 |\n       (r_addend & 0xff000000U) << 8 | (r_addend & 0xff0000U) << 0x18 | (r_addend & 0xff00U) << 0x28" (binary_expression "(ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28 |\n       (r_addend & 0xff0000000000U) >> 0x18 | (r_addend & 0xff00000000U) >> 8 |\n       (r_addend & 0xff000000U) << 8 | (r_addend & 0xff0000U) << 0x18" (binary_expression "(ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28 |\n       (r_addend & 0xff0000000000U) >> 0x18 | (r_addend & 0xff00000000U) >> 8 |\n       (r_addend & 0xff000000U) << 8" (binary_expression "(ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28 |\n       (r_addend & 0xff0000000000U) >> 0x18 | (r_addend & 0xff00000000U) >> 8" (binary_expression "(ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28 |\n       (r_addend & 0xff0000000000U) >> 0x18" (binary_expression "(ulong)r_addend >> 0x38 | (r_addend & 0xff000000000000U) >> 0x28" (binary_expression "(ulong)r_addend >> 0x38" (cast_expression "(ulong)r_addend" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) | (binary_expression "(r_addend & 0xff000000000000U) >> 0x28" (parenthesized_expression "(r_addend & 0xff000000000000U)" ( (binary_expression "r_addend & 0xff000000000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(r_addend & 0xff0000000000U) >> 0x18" (parenthesized_expression "(r_addend & 0xff0000000000U)" ( (binary_expression "r_addend & 0xff0000000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(r_addend & 0xff00000000U) >> 8" (parenthesized_expression "(r_addend & 0xff00000000U)" ( (binary_expression "r_addend & 0xff00000000U" identifier & number_literal) )) >> number_literal)) | (binary_expression "(r_addend & 0xff000000U) << 8" (parenthesized_expression "(r_addend & 0xff000000U)" ( (binary_expression "r_addend & 0xff000000U" identifier & number_literal) )) << number_literal)) | (binary_expression "(r_addend & 0xff0000U) << 0x18" (parenthesized_expression "(r_addend & 0xff0000U)" ( (binary_expression "r_addend & 0xff0000U" identifier & number_literal) )) << number_literal)) | (binary_expression "(r_addend & 0xff00U) << 0x28" (parenthesized_expression "(r_addend & 0xff00U)" ( (binary_expression "r_addend & 0xff00U" identifier & number_literal) )) << number_literal)) | (binary_expression "r_addend << 0x38" identifier << number_literal))) ;) (expression_statement "relbuf._0_8_ = r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28 |\n                 (r_offset & 0xff0000000000) >> 0x18 | (r_offset & 0xff00000000) >> 8 |\n                 (r_offset & 0xff000000) << 8 | (r_offset & 0xff0000) << 0x18 |\n                 (r_offset & 0xff00) << 0x28 | r_offset << 0x38;" (assignment_expression "relbuf._0_8_ = r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28 |\n                 (r_offset & 0xff0000000000) >> 0x18 | (r_offset & 0xff00000000) >> 8 |\n                 (r_offset & 0xff000000) << 8 | (r_offset & 0xff0000) << 0x18 |\n                 (r_offset & 0xff00) << 0x28 | r_offset << 0x38" (field_expression "relbuf._0_8_" identifier . field_identifier) = (binary_expression "r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28 |\n                 (r_offset & 0xff0000000000) >> 0x18 | (r_offset & 0xff00000000) >> 8 |\n                 (r_offset & 0xff000000) << 8 | (r_offset & 0xff0000) << 0x18 |\n                 (r_offset & 0xff00) << 0x28 | r_offset << 0x38" (binary_expression "r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28 |\n                 (r_offset & 0xff0000000000) >> 0x18 | (r_offset & 0xff00000000) >> 8 |\n                 (r_offset & 0xff000000) << 8 | (r_offset & 0xff0000) << 0x18 |\n                 (r_offset & 0xff00) << 0x28" (binary_expression "r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28 |\n                 (r_offset & 0xff0000000000) >> 0x18 | (r_offset & 0xff00000000) >> 8 |\n                 (r_offset & 0xff000000) << 8 | (r_offset & 0xff0000) << 0x18" (binary_expression "r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28 |\n                 (r_offset & 0xff0000000000) >> 0x18 | (r_offset & 0xff00000000) >> 8 |\n                 (r_offset & 0xff000000) << 8" (binary_expression "r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28 |\n                 (r_offset & 0xff0000000000) >> 0x18 | (r_offset & 0xff00000000) >> 8" (binary_expression "r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28 |\n                 (r_offset & 0xff0000000000) >> 0x18" (binary_expression "r_offset >> 0x38 | (r_offset & 0xff000000000000) >> 0x28" (binary_expression "r_offset >> 0x38" identifier >> number_literal) | (binary_expression "(r_offset & 0xff000000000000) >> 0x28" (parenthesized_expression "(r_offset & 0xff000000000000)" ( (binary_expression "r_offset & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(r_offset & 0xff0000000000) >> 0x18" (parenthesized_expression "(r_offset & 0xff0000000000)" ( (binary_expression "r_offset & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(r_offset & 0xff00000000) >> 8" (parenthesized_expression "(r_offset & 0xff00000000)" ( (binary_expression "r_offset & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(r_offset & 0xff000000) << 8" (parenthesized_expression "(r_offset & 0xff000000)" ( (binary_expression "r_offset & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(r_offset & 0xff0000) << 0x18" (parenthesized_expression "(r_offset & 0xff0000)" ( (binary_expression "r_offset & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(r_offset & 0xff00) << 0x28" (parenthesized_expression "(r_offset & 0xff00)" ( (binary_expression "r_offset & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "r_offset << 0x38" identifier << number_literal))) ;) (expression_statement "uVar1 = gsym->symtab_index_ - 1;" (assignment_expression "uVar1 = gsym->symtab_index_ - 1" identifier = (binary_expression "gsym->symtab_index_ - 1" (field_expression "gsym->symtab_index_" identifier -> field_identifier) - number_literal)) ;) (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 < uVar1) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" if (parenthesized_expression "(0xfffffffd < uVar1)" ( (binary_expression "0xfffffffd < uVar1" number_literal < identifier) )) (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 (uVar1 != 0xfffffffd) {\n    symval.output_dynsym_index_ = 0xffffffff;\n    symval.output_symtab_index_ = gsym->symtab_index_;\n    symval.u_ = *(anon_union_8_2_6a937475_for_u_ *)(gsym + 1);\n    bVar2 = gsym->field_0x38 & 0xf;\n    if (bVar2 == 6) {\n      symval._8_4_ = 0xa0000000;\n    }\n    else if (bVar2 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }\n                    /* try { // try from 00167998 to 001679fd has its CatchHandler @ 001679fe */\n    Relocate::relocate((Relocate *)relinfo,(Relocate_info<64,_true> *)this,0xffffffff,\n                       (Target_s390<64> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<64> *)(address + r_offset),\n                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_);\n    gold::Symbol_value<64>::~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 "(uVar1 != 0xfffffffd)" ( (binary_expression "uVar1 != 0xfffffffd" identifier != number_literal) )) (compound_statement "{\n    symval.output_dynsym_index_ = 0xffffffff;\n    symval.output_symtab_index_ = gsym->symtab_index_;\n    symval.u_ = *(anon_union_8_2_6a937475_for_u_ *)(gsym + 1);\n    bVar2 = gsym->field_0x38 & 0xf;\n    if (bVar2 == 6) {\n      symval._8_4_ = 0xa0000000;\n    }\n    else if (bVar2 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }\n                    /* try { // try from 00167998 to 001679fd has its CatchHandler @ 001679fe */\n    Relocate::relocate((Relocate *)relinfo,(Relocate_info<64,_true> *)this,0xffffffff,\n                       (Target_s390<64> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<64> *)(address + r_offset),\n                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_);\n    gold::Symbol_value<64>::~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_ = gsym->symtab_index_;" (assignment_expression "symval.output_symtab_index_ = gsym->symtab_index_" (field_expression "symval.output_symtab_index_" identifier . field_identifier) = (field_expression "gsym->symtab_index_" identifier -> field_identifier)) ;) (expression_statement "symval.u_ = *(anon_union_8_2_6a937475_for_u_ *)(gsym + 1);" (assignment_expression "symval.u_ = *(anon_union_8_2_6a937475_for_u_ *)(gsym + 1)" (field_expression "symval.u_" identifier . field_identifier) = (pointer_expression "*(anon_union_8_2_6a937475_for_u_ *)(gsym + 1)" * (cast_expression "(anon_union_8_2_6a937475_for_u_ *)(gsym + 1)" ( (type_descriptor "anon_union_8_2_6a937475_for_u_ *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(gsym + 1)" ( (binary_expression "gsym + 1" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = gsym->field_0x38 & 0xf;" (assignment_expression "bVar2 = gsym->field_0x38 & 0xf" identifier = (binary_expression "gsym->field_0x38 & 0xf" (field_expression "gsym->field_0x38" identifier -> field_identifier) & number_literal)) ;) (if_statement "if (bVar2 == 6) {\n      symval._8_4_ = 0xa0000000;\n    }\n    else if (bVar2 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }" if (parenthesized_expression "(bVar2 == 6)" ( (binary_expression "bVar2 == 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 (bVar2 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }" else (if_statement "if (bVar2 == 10) {\n      symval._8_4_ = 0xc0000000;\n    }" if (parenthesized_expression "(bVar2 == 10)" ( (binary_expression "bVar2 == 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<64,_true> *)this,0xffffffff,\n                       (Target_s390<64> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<64> *)(address + r_offset),\n                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_);\n    gold::Symbol_value<64>::~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<64" identifier < number_literal) , (binary_expression "_true> *)this" identifier > (pointer_expression "*)this" * (ERROR ")" )) identifier)) , number_literal , ( (ERROR "Target_s390<64> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<64> *)(address + r_offset),\n                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_);\n    gold::Symbol_value<64>::~Symbol_value(&symval,(int)this);\n    return;\n  }" (comma_expression "Target_s390<64> *)relbuf,(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<64> *)(address + r_offset),\n                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_)" (binary_expression "Target_s390<64> *)relbuf" (binary_expression "Target_s390<64" identifier < number_literal) > (pointer_expression "*)relbuf" * (ERROR ")" )) identifier)) , (comma_expression "(Output_section *)gsym,(size_t)&symval,\n                       view + r_offset,(Sized_symbol<64> *)(address + r_offset),\n                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_)" (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<64> *)(address + r_offset),\n                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_)" (cast_expression "(size_t)&symval" ( (type_descriptor "size_t" primitive_type) ) (pointer_expression "&symval" & identifier)) , (comma_expression "view + r_offset,(Sized_symbol<64> *)(address + r_offset),\n                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_)" (binary_expression "view + r_offset" identifier + identifier) , (comma_expression "(Sized_symbol<64> *)(address + r_offset),\n                       (Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_)" (call_expression "(Sized_symbol<64> *)(address + r_offset)" (parenthesized_expression "(Sized_symbol<64> *)" ( (binary_expression "Sized_symbol<64> *" (binary_expression "Sized_symbol<64" identifier < number_literal) > (pointer_expression "*" * identifier)) )) (argument_list "(address + r_offset)" ( (binary_expression "address + r_offset" identifier + identifier) ))) , (parenthesized_expression "(Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_)" ( (comma_expression "Symbol_value<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_" (binary_expression "Symbol_value<64> *)view_size" (binary_expression "Symbol_value<64" identifier < number_literal) > (pointer_expression "*)view_size" * (ERROR ")" )) identifier)) , (comma_expression "in_stack_ffffffffffffffa0,relbuf._0_8_,\n                       relbuf._8_8_" identifier , (comma_expression "relbuf._0_8_,\n                       relbuf._8_8_" (field_expression "relbuf._0_8_" identifier . field_identifier) , (field_expression "relbuf._8_8_" 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_001678f0(undefined8 param_1,undefined8 param_2,ulong param_3,uint param_4,ulong param_5,\n                 long param_6,long param_7,long param_8,undefined8 param_9)\n\n{\n  byte bVar1;\n  ulong uVar2;\n  uint uVar3;\n  ulong local_58;\n  ulong local_50;\n  ulong local_48;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined8 local_28;\n  \n  uVar2 = (ulong)param_4;\n  local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38;\n  local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38;\n  local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38;\n  uVar3 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar3) {\n                    \n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar3 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&local_38);\n    return;\n  }\n                    \n  FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");\n}\n\n" (function_definition "void FUN_001678f0(undefined8 param_1,undefined8 param_2,ulong param_3,uint param_4,ulong param_5,\n                 long param_6,long param_7,long param_8,undefined8 param_9)\n\n{\n  byte bVar1;\n  ulong uVar2;\n  uint uVar3;\n  ulong local_58;\n  ulong local_50;\n  ulong local_48;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined8 local_28;\n  \n  uVar2 = (ulong)param_4;\n  local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38;\n  local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38;\n  local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38;\n  uVar3 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar3) {\n                    \n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar3 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&local_38);\n    return;\n  }\n                    \n  FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" primitive_type (function_declarator "FUN_001678f0(undefined8 param_1,undefined8 param_2,ulong param_3,uint param_4,ulong param_5,\n                 long param_6,long param_7,long param_8,undefined8 param_9)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,ulong param_3,uint param_4,ulong param_5,\n                 long param_6,long param_7,long param_8,undefined8 param_9)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "ulong param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "ulong 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) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_9" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  ulong uVar2;\n  uint uVar3;\n  ulong local_58;\n  ulong local_50;\n  ulong local_48;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined8 local_28;\n  \n  uVar2 = (ulong)param_4;\n  local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38;\n  local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38;\n  local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38;\n  uVar3 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar3) {\n                    \n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar3 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&local_38);\n    return;\n  }\n                    \n  FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "ulong local_58;" type_identifier identifier ;) (declaration "ulong local_50;" type_identifier identifier ;) (declaration "ulong local_48;" type_identifier identifier ;) (declaration "undefined8 local_38;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (expression_statement "uVar2 = (ulong)param_4;" (assignment_expression "uVar2 = (ulong)param_4" identifier = (cast_expression "(ulong)param_4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38;" (assignment_expression "local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38" identifier = (binary_expression "(uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38" (binary_expression "(uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28" (binary_expression "(uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" ( (binary_expression "uVar2 & 0xff000000" identifier & number_literal) )) << number_literal) | (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" ( (binary_expression "uVar2 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" ( (binary_expression "uVar2 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar2 << 0x38" identifier << number_literal))) ;) (expression_statement "local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38;" (assignment_expression "local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38" identifier = (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28" (binary_expression "param_5 >> 0x38" identifier >> number_literal) | (binary_expression "(param_5 & 0xff000000000000) >> 0x28" (parenthesized_expression "(param_5 & 0xff000000000000)" ( (binary_expression "param_5 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_5 & 0xff0000000000) >> 0x18" (parenthesized_expression "(param_5 & 0xff0000000000)" ( (binary_expression "param_5 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_5 & 0xff00000000) >> 8" (parenthesized_expression "(param_5 & 0xff00000000)" ( (binary_expression "param_5 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_5 & 0xff000000) << 8" (parenthesized_expression "(param_5 & 0xff000000)" ( (binary_expression "param_5 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_5 & 0xff0000) << 0x18" (parenthesized_expression "(param_5 & 0xff0000)" ( (binary_expression "param_5 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_5 & 0xff00) << 0x28" (parenthesized_expression "(param_5 & 0xff00)" ( (binary_expression "param_5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_5 << 0x38" identifier << number_literal))) ;) (expression_statement "local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38;" (assignment_expression "local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38" identifier = (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28" (binary_expression "param_3 >> 0x38" identifier >> number_literal) | (binary_expression "(param_3 & 0xff000000000000) >> 0x28" (parenthesized_expression "(param_3 & 0xff000000000000)" ( (binary_expression "param_3 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff0000000000) >> 0x18" (parenthesized_expression "(param_3 & 0xff0000000000)" ( (binary_expression "param_3 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff00000000) >> 8" (parenthesized_expression "(param_3 & 0xff00000000)" ( (binary_expression "param_3 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(param_3 & 0xff000000) << 8" (parenthesized_expression "(param_3 & 0xff000000)" ( (binary_expression "param_3 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_3 & 0xff0000) << 0x18" (parenthesized_expression "(param_3 & 0xff0000)" ( (binary_expression "param_3 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(param_3 & 0xff00) << 0x28" (parenthesized_expression "(param_3 & 0xff00)" ( (binary_expression "param_3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "param_3 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar3 = *(int *)(param_6 + 0x1c) - 1;" (assignment_expression "uVar3 = *(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 < uVar3) {\n                    \n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" if (parenthesized_expression "(0xfffffffd < uVar3)" ( (binary_expression "0xfffffffd < uVar3" number_literal < identifier) )) (compound_statement "{\n                    \n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" { (expression_statement "FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");" (call_expression "FUN_0018ff20("../../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 (uVar3 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&local_38);\n    return;\n  }" if (parenthesized_expression "(uVar3 != 0xfffffffd)" ( (binary_expression "uVar3 != 0xfffffffd" identifier != number_literal) )) (compound_statement "{\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&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 = *(undefined8 *)(param_6 + 0x40);" (assignment_expression "local_28 = *(undefined8 *)(param_6 + 0x40)" identifier = (pointer_expression "*(undefined8 *)(param_6 + 0x40)" * (cast_expression "(undefined8 *)(param_6 + 0x40)" ( (type_descriptor "undefined8 *" 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_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);" (call_expression "FUN_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9)" identifier (argument_list "(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9)" ( identifier , identifier , number_literal , (pointer_expression "&local_58" & identifier) , identifier , (pointer_expression "&local_38" & identifier) , (binary_expression "param_3 + param_7" identifier + identifier) , (binary_expression "param_8 + param_3" identifier + identifier) , identifier ))) ;) (expression_statement "FUN_00177310(&local_38);" (call_expression "FUN_00177310(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");" (call_expression "FUN_0018ff20("../../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) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE 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 ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << 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 (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << 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 (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << 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 IDENT + IDENT) , (binary_expression IDENT + 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_001678f0(undefined8 param_1,undefined8 param_2,ulong param_3,uint param_4,ulong param_5,\n                 long param_6,long param_7,long param_8,undefined8 param_9)\n\n{\n  byte bVar1;\n  ulong uVar2;\n  uint uVar3;\n  ulong local_58;\n  ulong local_50;\n  ulong local_48;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined8 local_28;\n  \n  uVar2 = (ulong)param_4;\n  local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38;\n  local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38;\n  local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38;\n  uVar3 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar3) {\n                    \n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar3 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&local_38);\n    return;\n  }\n                    \n  FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" (primitive_type "void") (function_declarator "FUN_001678f0(undefined8 param_1,undefined8 param_2,ulong param_3,uint param_4,ulong param_5,\n                 long param_6,long param_7,long param_8,undefined8 param_9)" (identifier "FUN_001678f0") (parameter_list "(undefined8 param_1,undefined8 param_2,ulong param_3,uint param_4,ulong param_5,\n                 long param_6,long param_7,long param_8,undefined8 param_9)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "ulong param_3" (type_identifier "ulong") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "ulong param_5" (type_identifier "ulong") (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")) (, ",") (parameter_declaration "long param_8" (sized_type_specifier "long" (long "long")) (identifier "param_8")) (, ",") (parameter_declaration "undefined8 param_9" (type_identifier "undefined8") (identifier "param_9")) () ")"))) (compound_statement "{\n  byte bVar1;\n  ulong uVar2;\n  uint uVar3;\n  ulong local_58;\n  ulong local_50;\n  ulong local_48;\n  undefined8 local_38;\n  undefined4 local_30;\n  undefined8 local_28;\n  \n  uVar2 = (ulong)param_4;\n  local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38;\n  local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38;\n  local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38;\n  uVar3 = *(int *)(param_6 + 0x1c) - 1;\n  local_38 = 0xffffffff00000000;\n  local_30 = 0x80000000;\n  local_28 = 0;\n  if (0xfffffffd < uVar3) {\n                    \n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }\n  if (uVar3 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&local_38);\n    return;\n  }\n                    \n  FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "ulong local_58;" (type_identifier "ulong") (identifier "local_58") (; ";")) (declaration "ulong local_50;" (type_identifier "ulong") (identifier "local_50") (; ";")) (declaration "ulong local_48;" (type_identifier "ulong") (identifier "local_48") (; ";")) (declaration "undefined8 local_38;" (type_identifier "undefined8") (identifier "local_38") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined8 local_28;" (type_identifier "undefined8") (identifier "local_28") (; ";")) (expression_statement "uVar2 = (ulong)param_4;" (assignment_expression "uVar2 = (ulong)param_4" (identifier "uVar2") (= "=") (cast_expression "(ulong)param_4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_4"))) (; ";")) (expression_statement "local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38;" (assignment_expression "local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38" (identifier "local_50") (= "=") (binary_expression "(uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |\n             uVar2 << 0x38" (binary_expression "(uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28" (binary_expression "(uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18" (binary_expression "(uVar2 & 0xff000000) << 8" (parenthesized_expression "(uVar2 & 0xff000000)" (( "(") (binary_expression "uVar2 & 0xff000000" (identifier "uVar2") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(uVar2 & 0xff0000) << 0x18" (parenthesized_expression "(uVar2 & 0xff0000)" (( "(") (binary_expression "uVar2 & 0xff0000" (identifier "uVar2") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar2 & 0xff00) << 0x28" (parenthesized_expression "(uVar2 & 0xff00)" (( "(") (binary_expression "uVar2 & 0xff00" (identifier "uVar2") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar2 << 0x38" (identifier "uVar2") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38;" (assignment_expression "local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38" (identifier "local_48") (= "=") (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28\n             | param_5 << 0x38" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |\n             (param_5 & 0xff000000) << 8" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |\n             (param_5 & 0xff0000000000) >> 0x18" (binary_expression "param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28" (binary_expression "param_5 >> 0x38" (identifier "param_5") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(param_5 & 0xff000000000000) >> 0x28" (parenthesized_expression "(param_5 & 0xff000000000000)" (( "(") (binary_expression "param_5 & 0xff000000000000" (identifier "param_5") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(param_5 & 0xff0000000000) >> 0x18" (parenthesized_expression "(param_5 & 0xff0000000000)" (( "(") (binary_expression "param_5 & 0xff0000000000" (identifier "param_5") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(param_5 & 0xff00000000) >> 8" (parenthesized_expression "(param_5 & 0xff00000000)" (( "(") (binary_expression "param_5 & 0xff00000000" (identifier "param_5") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(param_5 & 0xff000000) << 8" (parenthesized_expression "(param_5 & 0xff000000)" (( "(") (binary_expression "param_5 & 0xff000000" (identifier "param_5") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(param_5 & 0xff0000) << 0x18" (parenthesized_expression "(param_5 & 0xff0000)" (( "(") (binary_expression "param_5 & 0xff0000" (identifier "param_5") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(param_5 & 0xff00) << 0x28" (parenthesized_expression "(param_5 & 0xff00)" (( "(") (binary_expression "param_5 & 0xff00" (identifier "param_5") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "param_5 << 0x38" (identifier "param_5") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38;" (assignment_expression "local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38" (identifier "local_58") (= "=") (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28\n             | param_3 << 0x38" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |\n             (param_3 & 0xff000000) << 8" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |\n             (param_3 & 0xff0000000000) >> 0x18" (binary_expression "param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28" (binary_expression "param_3 >> 0x38" (identifier "param_3") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(param_3 & 0xff000000000000) >> 0x28" (parenthesized_expression "(param_3 & 0xff000000000000)" (( "(") (binary_expression "param_3 & 0xff000000000000" (identifier "param_3") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(param_3 & 0xff0000000000) >> 0x18" (parenthesized_expression "(param_3 & 0xff0000000000)" (( "(") (binary_expression "param_3 & 0xff0000000000" (identifier "param_3") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(param_3 & 0xff00000000) >> 8" (parenthesized_expression "(param_3 & 0xff00000000)" (( "(") (binary_expression "param_3 & 0xff00000000" (identifier "param_3") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(param_3 & 0xff000000) << 8" (parenthesized_expression "(param_3 & 0xff000000)" (( "(") (binary_expression "param_3 & 0xff000000" (identifier "param_3") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(param_3 & 0xff0000) << 0x18" (parenthesized_expression "(param_3 & 0xff0000)" (( "(") (binary_expression "param_3 & 0xff0000" (identifier "param_3") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(param_3 & 0xff00) << 0x28" (parenthesized_expression "(param_3 & 0xff00)" (( "(") (binary_expression "param_3 & 0xff00" (identifier "param_3") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "param_3 << 0x38" (identifier "param_3") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "uVar3 = *(int *)(param_6 + 0x1c) - 1;" (assignment_expression "uVar3 = *(int *)(param_6 + 0x1c) - 1" (identifier "uVar3") (= "=") (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 < uVar3) {\n                    \n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" (if "if") (parenthesized_expression "(0xfffffffd < uVar3)" (( "(") (binary_expression "0xfffffffd < uVar3" (number_literal "0xfffffffd") (< "<") (identifier "uVar3")) () ")")) (compound_statement "{\n                    \n    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");\n  }" ({ "{") (expression_statement "FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");" (call_expression "FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation")" (identifier "FUN_0018ff20") (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 (uVar3 != 0xfffffffd) {\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&local_38);\n    return;\n  }" (if "if") (parenthesized_expression "(uVar3 != 0xfffffffd)" (( "(") (binary_expression "uVar3 != 0xfffffffd" (identifier "uVar3") (!= "!=") (number_literal "0xfffffffd")) () ")")) (compound_statement "{\n    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));\n    local_28 = *(undefined8 *)(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_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);\n    FUN_00177310(&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 = *(undefined8 *)(param_6 + 0x40);" (assignment_expression "local_28 = *(undefined8 *)(param_6 + 0x40)" (identifier "local_28") (= "=") (pointer_expression "*(undefined8 *)(param_6 + 0x40)" (* "*") (cast_expression "(undefined8 *)(param_6 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (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_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9);" (call_expression "FUN_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9)" (identifier "FUN_00165d90") (argument_list "(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,\n                 param_8 + param_3,param_9)" (( "(") (identifier "param_2") (, ",") (identifier "param_1") (, ",") (number_literal "0xffffffff") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "param_6") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (binary_expression "param_3 + param_7" (identifier "param_3") (+ "+") (identifier "param_7")) (, ",") (binary_expression "param_8 + param_3" (identifier "param_8") (+ "+") (identifier "param_3")) (, ",") (identifier "param_9") () ")"))) (; ";")) (expression_statement "FUN_00177310(&local_38);" (call_expression "FUN_00177310(&local_38)" (identifier "FUN_00177310") (argument_list "(&local_38)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");" (call_expression "FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index")" (identifier "FUN_0018ff20") (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: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void apply_relocation(Target_s390<64> * this, Relocate_info<64,_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_23cd15::type_1<64>::function_1
          (type_1<64> *this,type_2<64,type_3> *relinfo,type_4 var_5,type_5 r_type,
          type_6 var_4,type_7 *var_8,type_8 *view,type_4 address,type_9 view_size
          )

{
  type_5 var_6;
  type_10 var_9;
  type_11 var_3;
  type_8 *in_stack_ffffffffffffffa0;
  type_8 relbuf [24];
  var_1<64> var_2;
  
  var_3 = (type_11)r_type;
  relbuf._8_8_ = (var_3 & 0xff000000) << 8 | (var_3 & 0xff0000) << 0x18 | (var_3 & 0xff00) << 0x28 |
                 var_3 << 0x38;
  relbuf._16_8_ =
       (type_11)var_4 >> 0x38 | (var_4 & 0xff000000000000U) >> 0x28 |
       (var_4 & 0xff0000000000U) >> 0x18 | (var_4 & 0xff00000000U) >> 8 |
       (var_4 & 0xff000000U) << 8 | (var_4 & 0xff0000U) << 0x18 | (var_4 & 0xff00U) << 0x28
       | var_4 << 0x38;
  relbuf._0_8_ = var_5 >> 0x38 | (var_5 & 0xff000000000000) >> 0x28 |
                 (var_5 & 0xff0000000000) >> 0x18 | (var_5 & 0xff00000000) >> 8 |
                 (var_5 & 0xff000000) << 8 | (var_5 & 0xff0000) << 0x18 |
                 (var_5 & 0xff00) << 0x28 | var_5 << 0x38;
  var_6 = var_8->symtab_index_ - 1;
  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) {
                    /* WARNING: Subroutine does not return */
    gold::var_7("../../gold/target-reloc.h",0x1f2,"apply_relocation");
  }
  if (var_6 != 0xfffffffd) {
    var_2.output_dynsym_index_ = 0xffffffff;
    var_2.output_symtab_index_ = var_8->symtab_index_;
    var_2.u_ = *(type_12 *)(var_8 + 1);
    var_9 = var_8->field_0x38 & 0xf;
    if (var_9 == 6) {
      var_2._8_4_ = 0xa0000000;
    }
    else if (var_9 == 10) {
      var_2._8_4_ = 0xc0000000;
    }
                    /* try { // try from 00167998 to 001679fd has its CatchHandler @ 001679fe */
    Relocate::relocate((Relocate *)relinfo,(type_2<64,type_3> *)this,0xffffffff,
                       (type_1<64> *)relbuf,(Output_section *)var_8,(size_t)&var_2,
                       view + var_5,(Sized_symbol<64> *)(address + var_5),
                       (var_1<64> *)view_size,in_stack_ffffffffffffffa0,relbuf._0_8_,
                       relbuf._8_8_);
    gold::var_1<64>::~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)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) 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: (type_identifier) 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)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (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: (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: (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: (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: (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: (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: (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: (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: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (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,ulong param_3,uint param_4,ulong param_5,
                 long param_6,long param_7,long param_8,undefined8 param_9)

{
  byte bVar1;
  ulong uVar2;
  uint uVar3;
  ulong local_58;
  ulong local_50;
  ulong local_48;
  undefined8 local_38;
  undefined4 local_30;
  undefined8 local_28;
  
  uVar2 = (ulong)param_4;
  local_50 = (uVar2 & 0xff000000) << 8 | (uVar2 & 0xff0000) << 0x18 | (uVar2 & 0xff00) << 0x28 |
             uVar2 << 0x38;
  local_48 = param_5 >> 0x38 | (param_5 & 0xff000000000000) >> 0x28 |
             (param_5 & 0xff0000000000) >> 0x18 | (param_5 & 0xff00000000) >> 8 |
             (param_5 & 0xff000000) << 8 | (param_5 & 0xff0000) << 0x18 | (param_5 & 0xff00) << 0x28
             | param_5 << 0x38;
  local_58 = param_3 >> 0x38 | (param_3 & 0xff000000000000) >> 0x28 |
             (param_3 & 0xff0000000000) >> 0x18 | (param_3 & 0xff00000000) >> 8 |
             (param_3 & 0xff000000) << 8 | (param_3 & 0xff0000) << 0x18 | (param_3 & 0xff00) << 0x28
             | param_3 << 0x38;
  uVar3 = *(int *)(param_6 + 0x1c) - 1;
  local_38 = 0xffffffff00000000;
  local_30 = 0x80000000;
  local_28 = 0;
  if (0xfffffffd < uVar3) {
                    /* WARNING: Subroutine does not return */
    FUN_0018ff20("../../gold/target-reloc.h",0x1f2,"apply_relocation");
  }
  if (uVar3 != 0xfffffffd) {
    local_38 = CONCAT44(0xffffffff,*(int *)(param_6 + 0x1c));
    local_28 = *(undefined8 *)(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 00167998 to 001679fd has its CatchHandler @ 001679fe */
    FUN_00165d90(param_2,param_1,0xffffffff,&local_58,param_6,&local_38,param_3 + param_7,
                 param_8 + param_3,param_9);
    FUN_00177310(&local_38);
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0018ff20("../../gold/object.h",0x70d,"set_output_symtab_index");
}

