
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void do_apply_incremental_relocs(Sized_incremental_binary<32,_false> *
   this, Symbol_table * symtab, Layout * layout, Output_file * of) */

void __thiscall
gold::Sized_incremental_binary<32,_false>::do_apply_incremental_relocs
          (Sized_incremental_binary<32,_false> *this,Symbol_table *symtab,Layout *layout,
          Output_file *of)

{
  byte bVar1;
  uint uVar2;
  uchar *puVar3;
  uchar *puVar4;
  long lVar5;
  Target *pTVar6;
  Symbol *pSVar7;
  uchar *puVar8;
  uint64_t uVar9;
  uchar *puVar10;
  int iVar11;
  int iVar12;
  long lVar13;
  Output_section *pOVar14;
  uint uVar15;
  int iVar16;
  uint uVar17;
  uint uVar18;
  uint uVar19;
  bool bVar20;
  ulong local_90;
  Relocate_info<32,_false> relinfo;
  
  puVar3 = (this->symtab_reader_).p_;
  puVar4 = (this->relocs_reader_).p_;
  lVar5 = (this->symtab_reader_).len_;
  lVar13 = lVar5 + 3;
  if (-1 < lVar5) {
    lVar13 = lVar5;
  }
  pTVar6 = parameters->target_;
  relinfo.object = (Sized_relobj_file<32,_false> *)0x0;
  relinfo.reloc_shndx = 0;
  relinfo.reloc_shdr = (uchar *)0x0;
  relinfo.data_shndx = 0;
  relinfo.data_shdr = (uchar *)0x0;
  relinfo.symtab = symtab;
  relinfo.layout = layout;
  if (pTVar6 == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");
  }
  iVar11 = (int)(lVar13 >> 2);
  if (iVar11 != 0) {
    local_90 = 0;
    do {
      pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>
               ._M_impl._M_start[local_90];
      if ((pSVar7 != (Symbol *)0x0) &&
         (((pSVar7->field_0x3a & 7) != 0 ||
          (iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0')))) {
        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))
        {
          Errors::debug(parameters->errors_,
                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,
                        local_90 & 0xffffffff);
        }
        for (uVar2 = *(uint *)(puVar3 + (uint)((int)local_90 * 4)); uVar2 != 0;
            uVar2 = *(uint *)(puVar8 + (ulong)uVar2 + 8)) {
          puVar8 = (this->inputs_reader_).p_;
          uVar15 = *(uint *)(puVar8 + (ulong)uVar2 + 0x10);
          iVar12 = *(int *)(puVar8 + (ulong)uVar2 + 0xc);
          if (iVar12 != 0) {
            uVar17 = *(uint *)(puVar4 + uVar15);
            uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);
            uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);
            pOVar14 = (this->section_map_).
                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];
            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {
LAB_001f9685:
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/output.h",0xc5,"address");
            }
            iVar16 = 0;
            while( true ) {
              bVar1 = (pOVar14->super_Output_data).field_0x20;
              uVar9 = (pOVar14->super_Output_data).address_;
              if ((bVar1 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/output.h",0xe3,"offset");
              }
              lVar5 = (pOVar14->super_Output_data).offset_;
              if ((bVar1 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
              }
              lVar13 = (pOVar14->super_Output_data).data_size_;
              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");
              }
              puVar10 = of->base_;
              if ((parameters->options_ != (General_options *)0x0) &&
                 ((parameters->debug_ & 0x10) != 0)) {
                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",
                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,
                              (long)(int)uVar19);
              }
              iVar16 = iVar16 + 1;
              uVar15 = uVar15 + 0x10;
              (*pTVar6->_vptr_Target[0x3d])
                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,
                         puVar10 + lVar5,uVar9,lVar13);
              if (iVar16 == iVar12) break;
              uVar17 = *(uint *)(puVar4 + uVar15);
              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);
              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);
              pOVar14 = (this->section_map_).
                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];
              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;
            }
          }
        }
      }
      bVar20 = local_90 != iVar11 - 1;
      local_90 = local_90 + 1;
    } while (bVar20);
  }
  return;
}



void FUN_001f9380(long param_1,undefined8 param_2,undefined8 param_3,long param_4)

{
  int iVar1;
  long lVar2;
  long lVar3;
  long *plVar4;
  undefined8 *puVar5;
  undefined8 uVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  char cVar10;
  int iVar11;
  long lVar12;
  ulong uVar13;
  long lVar14;
  uint uVar15;
  int iVar16;
  undefined4 uVar17;
  uint uVar18;
  int iVar19;
  bool bVar20;
  ulong local_90;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  undefined4 local_60;
  undefined8 local_58;
  undefined4 local_48;
  undefined8 local_40;
  
  lVar2 = *(long *)(param_1 + 0x120);
  lVar3 = *(long *)(param_1 + 0x130);
  lVar12 = *(long *)(param_1 + 0x128);
  lVar14 = lVar12 + 3;
  if (-1 < lVar12) {
    lVar14 = lVar12;
  }
  plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);
  local_68 = 0;
  local_60 = 0;
  local_58 = 0;
  local_48 = 0;
  local_40 = 0;
  local_78 = param_2;
  local_70 = param_3;
  if (plVar4 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");
  }
  iVar11 = (int)(lVar14 >> 2);
  if (iVar11 != 0) {
    local_90 = 0;
    do {
      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);
      if ((puVar5 != (undefined8 *)0x0) &&
         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||
          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {
        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {
          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,
                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,
                       local_90 & 0xffffffff);
        }
        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));
        while (uVar15 != 0) {
          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);
          uVar15 = *(uint *)(lVar12 + 0x10);
          iVar1 = *(int *)(lVar12 + 0xc);
          if (iVar1 != 0) {
            uVar13 = (ulong)uVar15;
            uVar17 = *(undefined4 *)(lVar3 + uVar13);
            uVar18 = *(uint *)(lVar3 + 8 + uVar13);
            iVar19 = *(int *)(lVar3 + 0xc + uVar13);
            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)
            ;
            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {
LAB_001f9685:
                    /* WARNING: Subroutine does not return */
              FUN_001e9890("../../gold/output.h",0xc5,"address");
            }
            iVar16 = 0;
            while( true ) {
              uVar6 = *(undefined8 *)(lVar14 + 8);
              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_001e9890("../../gold/output.h",0xe3,"offset");
              }
              lVar7 = *(long *)(lVar14 + 0x18);
              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_001e9890("../../gold/output.h",0xcf,"data_size");
              }
              lVar8 = *(long *)(lVar14 + 0x10);
              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {
                    /* WARNING: Subroutine does not return */
                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");
              }
              lVar9 = *(long *)(param_4 + 0x18);
              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&
                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {
                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",
                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,
                             (long)iVar19);
              }
              iVar16 = iVar16 + 1;
              uVar15 = uVar15 + 0x10;
              uVar13 = (ulong)uVar15;
              (**(code **)(*plVar4 + 0x1e8))
                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);
              if (iVar16 == iVar1) break;
              uVar17 = *(undefined4 *)(lVar3 + uVar13);
              uVar18 = *(uint *)(lVar3 + 8 + uVar13);
              iVar19 = *(int *)(lVar3 + 0xc + uVar13);
              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +
                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);
              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;
            }
          }
          uVar15 = *(uint *)(lVar12 + 8);
        }
      }
      bVar20 = local_90 != iVar11 - 1;
      local_90 = local_90 + 1;
    } while (bVar20);
  }
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0xa8
MOV RBX,qword ptr [RDI + 0x120]
MOV R14,qword ptr [RDI + 0x130]
MOV qword ptr [RSP],RCX
MOV RCX,qword ptr [RDI + 0x128]
MOV qword ptr [RSP + 0x68],RDX
MOV RDX,qword ptr [0x004ba7c8]
TEST RCX,RCX
LEA RAX,[RCX + 0x3]
MOV qword ptr [RSP + 0x58],RBX
CMOVNS RAX,RCX
MOV RBX,qword ptr [RDX + 0x18]
MOV qword ptr [RSP + 0x10],RDI
MOV qword ptr [RSP + 0x60],RSI
SAR RAX,0x2
MOV qword ptr [RSP + 0x70],0x0
MOV dword ptr [RSP + 0x78],0x0
MOV qword ptr [RSP + 0x80],0x0
MOV dword ptr [RSP + 0x90],0x0
MOV qword ptr [RSP + 0x98],0x0
MOV qword ptr [RSP + 0x20],RBX
TEST RBX,RBX
JZ 0x001f96c7
TEST EAX,EAX
JZ 0x001f96b5
MOV qword ptr [RSP + 0x48],0x0
SUB EAX,0x1
MOV qword ptr [RSP + 0x50],RAX
LEA RAX,[RSP + 0x60]
MOV qword ptr [RSP + 0x28],RAX
MOV RAX,qword ptr [RSP + 0x10]
MOV RSI,qword ptr [RSP + 0x48]
MOV RAX,qword ptr [RAX + 0xa8]
MOV EBX,ESI
MOV RAX,qword ptr [RAX + RSI*0x8]
MOV qword ptr [RSP + 0x18],RAX
TEST RAX,RAX
JZ 0x001f9477
TEST byte ptr [RAX + 0x3a],0x7
JNZ 0x001f9492
MOV RAX,qword ptr [RSP + 0x18]
MOV RDI,qword ptr [RAX + 0x10]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x30]
TEST AL,AL
JZ 0x001f9492
MOV RBX,qword ptr [RSP + 0x48]
LEA RAX,[RBX + 0x1]
CMP RBX,qword ptr [RSP + 0x50]
JZ 0x001f96b5
MOV qword ptr [RSP + 0x48],RAX
JMP 0x001f943d
MOV RAX,qword ptr [0x004ba7c8]
CMP qword ptr [RAX + 0x10],0x0
JZ 0x001f94c1
TEST byte ptr [RAX + 0x24],0x10
JZ 0x001f94c1
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,qword ptr [RAX]
MOV ECX,EBX
XOR EAX,EAX
MOV RDX,qword ptr [RSI]
LEA RSI,[0x3e2758]
CALL 0x001e12d0
LEA EAX,[RBX*0x4]
MOV RBX,qword ptr [RSP + 0x58]
MOV EAX,dword ptr [RBX + RAX*0x1]
TEST EAX,EAX
JZ 0x001f9477
NOP dword ptr [RAX]
MOV RBX,qword ptr [RSP + 0x10]
ADD RAX,qword ptr [RBX + 0x100]
MOV qword ptr [RSP + 0x40],RAX
MOV EBX,dword ptr [RAX + 0x10]
MOV EAX,dword ptr [RAX + 0xc]
MOV dword ptr [RSP + 0x30],EAX
TEST EAX,EAX
JZ 0x001f9640
MOV EAX,EBX
MOV EDX,dword ptr [R14 + RAX*0x1 + 0x4]
MOV R11D,dword ptr [R14 + RAX*0x1]
MOV R13D,dword ptr [R14 + RAX*0x1 + 0x8]
MOV R15D,dword ptr [R14 + RAX*0x1 + 0xc]
MOV RAX,qword ptr [RSP + 0x10]
MOV RAX,qword ptr [RAX + 0x90]
MOV RAX,qword ptr [RAX + RDX*0x8]
TEST byte ptr [RAX + 0x20],0x1
JZ 0x001f9685
XOR EBP,EBP
JMP 0x001f955f
MOV EAX,EBX
MOV EDX,dword ptr [R14 + RAX*0x1 + 0x4]
MOV R11D,dword ptr [R14 + RAX*0x1]
MOV R13D,dword ptr [R14 + RAX*0x1 + 0x8]
MOV R15D,dword ptr [R14 + RAX*0x1 + 0xc]
MOV RAX,qword ptr [RSP + 0x10]
MOV RAX,qword ptr [RAX + 0x90]
MOV RAX,qword ptr [RAX + RDX*0x8]
TEST byte ptr [RAX + 0x20],0x1
JZ 0x001f9685
MOVZX ECX,byte ptr [RAX + 0x20]
MOV R10,qword ptr [RAX + 0x8]
TEST CL,0x4
JZ 0x001f969d
AND ECX,0x2
MOV RDX,qword ptr [RAX + 0x18]
JZ 0x001f966d
MOV R12,qword ptr [RAX + 0x10]
TEST RDX,RDX
JS 0x001f9655
MOV RSI,qword ptr [RSP]
LEA RCX,[RDX + R12*0x1]
CMP RCX,qword ptr [RSI + 0x10]
JG 0x001f9655
MOV RCX,qword ptr [RSP]
MOV RDI,qword ptr [0x004ba7c8]
MOV RSI,qword ptr [RCX + 0x18]
ADD RSI,RDX
CMP qword ptr [RDI + 0x10],0x0
MOV qword ptr [RSP + 0x8],RSI
JZ 0x001f95ff
TEST byte ptr [RDI + 0x24],0x10
JZ 0x001f95ff
MOV RCX,qword ptr [RAX + 0x28]
MOV EAX,R13D
MOV qword ptr [RSP + 0x38],R10
SUB RSP,0x8
ADD RDX,RAX
MOVSXD RAX,R15D
MOV RDI,qword ptr [RDI]
MOV R9D,R11D
PUSH RAX
MOV R8D,R13D
XOR EAX,EAX
LEA RSI,[0x3e2798]
MOV dword ptr [RSP + 0x44],R11D
CALL 0x001e12d0
POP RAX
POP RDX
MOV R10,qword ptr [RSP + 0x38]
MOV R11D,dword ptr [RSP + 0x34]
SUB RSP,0x8
MOV R8D,R15D
MOV ECX,R11D
MOV EDX,R13D
MOV RDI,qword ptr [RSP + 0x28]
ADD EBP,0x1
ADD EBX,0x10
MOV RAX,qword ptr [RDI]
PUSH R12
PUSH R10
PUSH qword ptr [RSP + 0x20]
MOV R9,qword ptr [RSP + 0x38]
MOV RSI,qword ptr [RSP + 0x48]
CALL qword ptr [RAX + 0x1e8]
ADD RSP,0x20
CMP EBP,dword ptr [RSP + 0x30]
JNZ 0x001f9530
MOV RAX,qword ptr [RSP + 0x40]
MOV EAX,dword ptr [RAX + 0x8]
TEST EAX,EAX
JNZ 0x001f94d8
JMP 0x001f9477
LEA RDX,[0x3e47e0]
MOV ESI,0x6f
LEA RDI,[0x3de409]
CALL 0x001e9890
LEA RDX,[0x3e4418]
MOV ESI,0xcf
LEA RDI,[0x3de409]
CALL 0x001e9890
LEA RDX,[0x3e4128]
MOV ESI,0xc5
LEA RDI,[0x3de409]
CALL 0x001e9890
LEA RDX,[0x3e4422]
MOV ESI,0xe3
LEA RDI,[0x3de409]
CALL 0x001e9890
ADD RSP,0xa8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA RDX,[0x3e4640]
MOV ESI,0x73
LEA RDI,[0x3c9279]
CALL 0x001e9890
(translation_unit "void FUN_001f9380(long param_1,undefined8 param_2,undefined8 param_3,long param_4)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long *plVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char cVar10;\n  int iVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  uint uVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  int iVar19;\n  bool bVar20;\n  ulong local_90;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_48;\n  undefined8 local_40;\n  \n  lVar2 = *(long *)(param_1 + 0x120);\n  lVar3 = *(long *)(param_1 + 0x130);\n  lVar12 = *(long *)(param_1 + 0x128);\n  lVar14 = lVar12 + 3;\n  if (-1 < lVar12) {\n    lVar14 = lVar12;\n  }\n  plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_78 = param_2;\n  local_70 = param_3;\n  if (plVar4 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }\n  iVar11 = (int)(lVar14 >> 2);\n  if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }\n  return;\n}\n\n" (function_definition "void FUN_001f9380(long param_1,undefined8 param_2,undefined8 param_3,long param_4)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long *plVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char cVar10;\n  int iVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  uint uVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  int iVar19;\n  bool bVar20;\n  ulong local_90;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_48;\n  undefined8 local_40;\n  \n  lVar2 = *(long *)(param_1 + 0x120);\n  lVar3 = *(long *)(param_1 + 0x130);\n  lVar12 = *(long *)(param_1 + 0x128);\n  lVar14 = lVar12 + 3;\n  if (-1 < lVar12) {\n    lVar14 = lVar12;\n  }\n  plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_78 = param_2;\n  local_70 = param_3;\n  if (plVar4 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }\n  iVar11 = (int)(lVar14 >> 2);\n  if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001f9380(long param_1,undefined8 param_2,undefined8 param_3,long param_4)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,long param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long *plVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char cVar10;\n  int iVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  uint uVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  int iVar19;\n  bool bVar20;\n  ulong local_90;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_48;\n  undefined8 local_40;\n  \n  lVar2 = *(long *)(param_1 + 0x120);\n  lVar3 = *(long *)(param_1 + 0x130);\n  lVar12 = *(long *)(param_1 + 0x128);\n  lVar14 = lVar12 + 3;\n  if (-1 < lVar12) {\n    lVar14 = lVar12;\n  }\n  plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_78 = param_2;\n  local_70 = param_3;\n  if (plVar4 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }\n  iVar11 = (int)(lVar14 >> 2);\n  if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "ulong local_90;" type_identifier identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined8 local_40;" type_identifier identifier ;) (expression_statement "lVar2 = *(long *)(param_1 + 0x120);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x120)" identifier = (pointer_expression "*(long *)(param_1 + 0x120)" * (cast_expression "(long *)(param_1 + 0x120)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x130);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x130)" identifier = (pointer_expression "*(long *)(param_1 + 0x130)" * (cast_expression "(long *)(param_1 + 0x130)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x130)" ( (binary_expression "param_1 + 0x130" identifier + number_literal) ))))) ;) (expression_statement "lVar12 = *(long *)(param_1 + 0x128);" (assignment_expression "lVar12 = *(long *)(param_1 + 0x128)" identifier = (pointer_expression "*(long *)(param_1 + 0x128)" * (cast_expression "(long *)(param_1 + 0x128)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (expression_statement "lVar14 = lVar12 + 3;" (assignment_expression "lVar14 = lVar12 + 3" identifier = (binary_expression "lVar12 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < lVar12) {\n    lVar14 = lVar12;\n  }" if (parenthesized_expression "(-1 < lVar12)" ( (binary_expression "-1 < lVar12" number_literal < identifier) )) (compound_statement "{\n    lVar14 = lVar12;\n  }" { (expression_statement "lVar14 = lVar12;" (assignment_expression "lVar14 = lVar12" identifier = identifier) ;) })) (expression_statement "plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);" (assignment_expression "plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_004ba7c8 + 0x18)" * (cast_expression "(long **)(PTR_DAT_004ba7c8 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x18)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_78 = param_2;" (assignment_expression "local_78 = param_2" identifier = identifier) ;) (expression_statement "local_70 = param_3;" (assignment_expression "local_70 = param_3" identifier = identifier) ;) (if_statement "if (plVar4 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }" if (parenthesized_expression "(plVar4 == (long *)0x0)" ( (binary_expression "plVar4 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }" { comment (expression_statement "FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_001e9890("../../gold/parameters.h",0x73,"sized_target")" identifier (argument_list "("../../gold/parameters.h",0x73,"sized_target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""sized_target"" " string_content ") ))) ;) })) (expression_statement "iVar11 = (int)(lVar14 >> 2);" (assignment_expression "iVar11 = (int)(lVar14 >> 2)" identifier = (cast_expression "(int)(lVar14 >> 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar14 >> 2)" ( (binary_expression "lVar14 >> 2" identifier >> number_literal) )))) ;) (if_statement "if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }" { (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (do_statement "do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);" do (compound_statement "{\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    }" { (expression_statement "puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);" (assignment_expression "puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8)" identifier = (pointer_expression "*(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8)" * (cast_expression "(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 0xa8) + local_90 * 8)" ( (binary_expression "*(long *)(param_1 + 0xa8) + local_90 * 8" (pointer_expression "*(long *)(param_1 + 0xa8)" * (cast_expression "(long *)(param_1 + 0xa8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa8)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) )))) + (binary_expression "local_90 * 8" identifier * number_literal)) ))))) ;) (if_statement "if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }" if (parenthesized_expression "((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0'))))" ( (binary_expression "(puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))" (parenthesized_expression "(puVar5 != (undefined8 *)0x0)" ( (binary_expression "puVar5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))" ( (parenthesized_expression "((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0'))" ( (binary_expression "(*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')" (binary_expression "(*(byte *)((long)puVar5 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)puVar5 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)puVar5 + 0x3a) & 7" (pointer_expression "*(byte *)((long)puVar5 + 0x3a)" * (cast_expression "(byte *)((long)puVar5 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x3a)" ( (binary_expression "(long)puVar5 + 0x3a" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "(cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')" ( (comma_expression "cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0'" (assignment_expression "cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))()" identifier = (call_expression "(**(code **)(*(long *)puVar5[2] + 0x30))()" (parenthesized_expression "(**(code **)(*(long *)puVar5[2] + 0x30))" ( (pointer_expression "**(code **)(*(long *)puVar5[2] + 0x30)" * (pointer_expression "*(code **)(*(long *)puVar5[2] + 0x30)" * (cast_expression "(code **)(*(long *)puVar5[2] + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)puVar5[2] + 0x30)" ( (binary_expression "*(long *)puVar5[2] + 0x30" (pointer_expression "*(long *)puVar5[2]" * (cast_expression "(long *)puVar5[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }" { (if_statement "if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }" if (parenthesized_expression "((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_004ba7c8[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_004ba7c8[0x24] & 0x10)" ( (binary_expression "PTR_DAT_004ba7c8[0x24] & 0x10" (subscript_expression "PTR_DAT_004ba7c8[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }" { (expression_statement "FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);" (call_expression "FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff)" identifier (argument_list "(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff)" ( (pointer_expression "*(undefined8 *)PTR_DAT_004ba7c8" * (cast_expression "(undefined8 *)PTR_DAT_004ba7c8" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (string_literal ""Applying incremental relocations for global symbol %s [%d]"" " string_content ") , (pointer_expression "*puVar5" * identifier) , (binary_expression "local_90 & 0xffffffff" identifier & number_literal) ))) ;) })) (expression_statement "uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));" (assignment_expression "uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4))" identifier = (pointer_expression "*(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4))" * (cast_expression "(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + (ulong)(uint)((int)local_90 * 4))" ( (binary_expression "lVar2 + (ulong)(uint)((int)local_90 * 4)" identifier + (call_expression "(ulong)(uint)((int)local_90 * 4)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "((int)local_90 * 4)" ( (binary_expression "(int)local_90 * 4" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ))))) ;) (while_statement "while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }" while (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }" { (expression_statement "lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);" (assignment_expression "lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100)" identifier = (binary_expression "(ulong)uVar15 + *(long *)(param_1 + 0x100)" (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier) + (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))))) ;) (expression_statement "uVar15 = *(uint *)(lVar12 + 0x10);" (assignment_expression "uVar15 = *(uint *)(lVar12 + 0x10)" identifier = (pointer_expression "*(uint *)(lVar12 + 0x10)" * (cast_expression "(uint *)(lVar12 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x10)" ( (binary_expression "lVar12 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(lVar12 + 0xc);" (assignment_expression "iVar1 = *(int *)(lVar12 + 0xc)" identifier = (pointer_expression "*(int *)(lVar12 + 0xc)" * (cast_expression "(int *)(lVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0xc)" ( (binary_expression "lVar12 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }" { (expression_statement "uVar13 = (ulong)uVar15;" (assignment_expression "uVar13 = (ulong)uVar15" identifier = (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar17 = *(undefined4 *)(lVar3 + uVar13);" (assignment_expression "uVar17 = *(undefined4 *)(lVar3 + uVar13)" identifier = (pointer_expression "*(undefined4 *)(lVar3 + uVar13)" * (cast_expression "(undefined4 *)(lVar3 + uVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + uVar13)" ( (binary_expression "lVar3 + uVar13" identifier + identifier) ))))) ;) (expression_statement "uVar18 = *(uint *)(lVar3 + 8 + uVar13);" (assignment_expression "uVar18 = *(uint *)(lVar3 + 8 + uVar13)" identifier = (pointer_expression "*(uint *)(lVar3 + 8 + uVar13)" * (cast_expression "(uint *)(lVar3 + 8 + uVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8 + uVar13)" ( (binary_expression "lVar3 + 8 + uVar13" (binary_expression "lVar3 + 8" identifier + number_literal) + identifier) ))))) ;) (expression_statement "iVar19 = *(int *)(lVar3 + 0xc + uVar13);" (assignment_expression "iVar19 = *(int *)(lVar3 + 0xc + uVar13)" identifier = (pointer_expression "*(int *)(lVar3 + 0xc + uVar13)" * (cast_expression "(int *)(lVar3 + 0xc + uVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc + uVar13)" ( (binary_expression "lVar3 + 0xc + uVar13" (binary_expression "lVar3 + 0xc" identifier + number_literal) + identifier) ))))) ;) (expression_statement "lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;" (assignment_expression "lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" identifier = (pointer_expression "*(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" * (cast_expression "(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" ( (binary_expression "*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8" (pointer_expression "*(long *)(param_1 + 0x90)" * (cast_expression "(long *)(param_1 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) + (binary_expression "(ulong)*(uint *)(lVar3 + 4 + uVar13) * 8" (binary_expression "(ulong)*(uint *)(lVar3 + 4 + uVar13)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar3 + 4 + uVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 4 + uVar13)" ( (binary_expression "lVar3 + 4 + uVar13" (binary_expression "lVar3 + 4" identifier + number_literal) + identifier) )))) * number_literal)) ))))) ;) (if_statement "if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }" if (parenthesized_expression "((*(byte *)(lVar14 + 0x20) & 1) == 0)" ( (binary_expression "(*(byte *)(lVar14 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x20) & 1)" ( (binary_expression "*(byte *)(lVar14 + 0x20) & 1" (pointer_expression "*(byte *)(lVar14 + 0x20)" * (cast_expression "(byte *)(lVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }" { (labeled_statement "LAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              FUN_001e9890("../../gold/output.h",0xc5,"address");" statement_identifier : comment (expression_statement "FUN_001e9890("../../gold/output.h",0xc5,"address");" (call_expression "FUN_001e9890("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }" { (expression_statement "uVar6 = *(undefined8 *)(lVar14 + 8);" (assignment_expression "uVar6 = *(undefined8 *)(lVar14 + 8)" identifier = (pointer_expression "*(undefined8 *)(lVar14 + 8)" * (cast_expression "(undefined8 *)(lVar14 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 8)" ( (binary_expression "lVar14 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }" if (parenthesized_expression "((*(byte *)(lVar14 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar14 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x20) & 4)" ( (binary_expression "*(byte *)(lVar14 + 0x20) & 4" (pointer_expression "*(byte *)(lVar14 + 0x20)" * (cast_expression "(byte *)(lVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }" { comment (expression_statement "FUN_001e9890("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_001e9890("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "lVar7 = *(long *)(lVar14 + 0x18);" (assignment_expression "lVar7 = *(long *)(lVar14 + 0x18)" identifier = (pointer_expression "*(long *)(lVar14 + 0x18)" * (cast_expression "(long *)(lVar14 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x18)" ( (binary_expression "lVar14 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }" if (parenthesized_expression "((*(byte *)(lVar14 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar14 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar14 + 0x20) & 2" (pointer_expression "*(byte *)(lVar14 + 0x20)" * (cast_expression "(byte *)(lVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }" { comment (expression_statement "FUN_001e9890("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_001e9890("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) (expression_statement "lVar8 = *(long *)(lVar14 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar14 + 0x10)" identifier = (pointer_expression "*(long *)(lVar14 + 0x10)" * (cast_expression "(long *)(lVar14 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x10)" ( (binary_expression "lVar14 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }" if (parenthesized_expression "((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8))" ( (binary_expression "(lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)" (parenthesized_expression "(lVar7 < 0)" ( (binary_expression "lVar7 < 0" identifier < number_literal) )) || (parenthesized_expression "(*(long *)(param_4 + 0x10) < lVar7 + lVar8)" ( (binary_expression "*(long *)(param_4 + 0x10) < lVar7 + lVar8" (pointer_expression "*(long *)(param_4 + 0x10)" * (cast_expression "(long *)(param_4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) < (binary_expression "lVar7 + lVar8" identifier + identifier)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }" { comment (expression_statement "FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");" (call_expression "FUN_001e9890("../../gold/output.h",0x6f,"get_output_view")" identifier (argument_list "("../../gold/output.h",0x6f,"get_output_view")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""get_output_view"" " string_content ") ))) ;) })) (expression_statement "lVar9 = *(long *)(param_4 + 0x18);" (assignment_expression "lVar9 = *(long *)(param_4 + 0x18)" identifier = (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }" if (parenthesized_expression "((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_004ba7c8[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_004ba7c8[0x24] & 0x10)" ( (binary_expression "PTR_DAT_004ba7c8[0x24] & 0x10" (subscript_expression "PTR_DAT_004ba7c8[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }" { (expression_statement "FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);" (call_expression "FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19)" identifier (argument_list "(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19)" ( (pointer_expression "*(undefined8 *)PTR_DAT_004ba7c8" * (cast_expression "(undefined8 *)PTR_DAT_004ba7c8" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (string_literal ""  %08lx: %s + %d: type %d addend %ld"" " string_content ") , (binary_expression "lVar7 + (ulong)uVar18" identifier + (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier)) , (pointer_expression "*(undefined8 *)(lVar14 + 0x28)" * (cast_expression "(undefined8 *)(lVar14 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x28)" ( (binary_expression "lVar14 + 0x28" identifier + number_literal) )))) , identifier , identifier , (cast_expression "(long)iVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ))) ;) })) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar15 = uVar15 + 0x10;" (assignment_expression "uVar15 = uVar15 + 0x10" identifier = (binary_expression "uVar15 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar13 = (ulong)uVar15;" (assignment_expression "uVar13 = (ulong)uVar15" identifier = (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);" (call_expression "(**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8)" (parenthesized_expression "(**(code **)(*plVar4 + 0x1e8))" ( (pointer_expression "**(code **)(*plVar4 + 0x1e8)" * (pointer_expression "*(code **)(*plVar4 + 0x1e8)" * (cast_expression "(code **)(*plVar4 + 0x1e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar4 + 0x1e8)" ( (binary_expression "*plVar4 + 0x1e8" (pointer_expression "*plVar4" * identifier) + number_literal) ))))) )) (argument_list "(plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8)" ( identifier , (pointer_expression "&local_78" & identifier) , identifier , identifier , identifier , identifier , (binary_expression "lVar9 + lVar7" identifier + identifier) , identifier , identifier ))) ;) (if_statement "if (iVar16 == iVar1) break;" if (parenthesized_expression "(iVar16 == iVar1)" ( (binary_expression "iVar16 == iVar1" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar17 = *(undefined4 *)(lVar3 + uVar13);" (assignment_expression "uVar17 = *(undefined4 *)(lVar3 + uVar13)" identifier = (pointer_expression "*(undefined4 *)(lVar3 + uVar13)" * (cast_expression "(undefined4 *)(lVar3 + uVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + uVar13)" ( (binary_expression "lVar3 + uVar13" identifier + identifier) ))))) ;) (expression_statement "uVar18 = *(uint *)(lVar3 + 8 + uVar13);" (assignment_expression "uVar18 = *(uint *)(lVar3 + 8 + uVar13)" identifier = (pointer_expression "*(uint *)(lVar3 + 8 + uVar13)" * (cast_expression "(uint *)(lVar3 + 8 + uVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8 + uVar13)" ( (binary_expression "lVar3 + 8 + uVar13" (binary_expression "lVar3 + 8" identifier + number_literal) + identifier) ))))) ;) (expression_statement "iVar19 = *(int *)(lVar3 + 0xc + uVar13);" (assignment_expression "iVar19 = *(int *)(lVar3 + 0xc + uVar13)" identifier = (pointer_expression "*(int *)(lVar3 + 0xc + uVar13)" * (cast_expression "(int *)(lVar3 + 0xc + uVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc + uVar13)" ( (binary_expression "lVar3 + 0xc + uVar13" (binary_expression "lVar3 + 0xc" identifier + number_literal) + identifier) ))))) ;) (expression_statement "lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);" (assignment_expression "lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" identifier = (pointer_expression "*(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" * (cast_expression "(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" ( (binary_expression "*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8" (pointer_expression "*(long *)(param_1 + 0x90)" * (cast_expression "(long *)(param_1 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) + (binary_expression "(ulong)*(uint *)(lVar3 + 4 + uVar13) * 8" (binary_expression "(ulong)*(uint *)(lVar3 + 4 + uVar13)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar3 + 4 + uVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 4 + uVar13)" ( (binary_expression "lVar3 + 4 + uVar13" (binary_expression "lVar3 + 4" identifier + number_literal) + identifier) )))) * number_literal)) ))))) ;) (if_statement "if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;" if (parenthesized_expression "((*(byte *)(lVar14 + 0x20) & 1) == 0)" ( (binary_expression "(*(byte *)(lVar14 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x20) & 1)" ( (binary_expression "*(byte *)(lVar14 + 0x20) & 1" (pointer_expression "*(byte *)(lVar14 + 0x20)" * (cast_expression "(byte *)(lVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001f9685;" goto statement_identifier ;)) })) })) (expression_statement "uVar15 = *(uint *)(lVar12 + 8);" (assignment_expression "uVar15 = *(uint *)(lVar12 + 8)" identifier = (pointer_expression "*(uint *)(lVar12 + 8)" * (cast_expression "(uint *)(lVar12 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 8)" ( (binary_expression "lVar12 + 8" identifier + number_literal) ))))) ;) })) })) (expression_statement "bVar20 = local_90 != iVar11 - 1;" (assignment_expression "bVar20 = local_90 != iVar11 - 1" identifier = (binary_expression "local_90 != iVar11 - 1" identifier != (binary_expression "iVar11 - 1" identifier - number_literal))) ;) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: void do_apply_incremental_relocs(Sized_incremental_binary<32,_false> *\n   this, Symbol_table * symtab, Layout * layout, Output_file * of) */\n\nvoid __thiscall\ngold::Sized_incremental_binary<32,_false>::do_apply_incremental_relocs\n          (Sized_incremental_binary<32,_false> *this,Symbol_table *symtab,Layout *layout,\n          Output_file *of)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uchar *puVar3;\n  uchar *puVar4;\n  long lVar5;\n  Target *pTVar6;\n  Symbol *pSVar7;\n  uchar *puVar8;\n  uint64_t uVar9;\n  uchar *puVar10;\n  int iVar11;\n  int iVar12;\n  long lVar13;\n  Output_section *pOVar14;\n  uint uVar15;\n  int iVar16;\n  uint uVar17;\n  uint uVar18;\n  uint uVar19;\n  bool bVar20;\n  ulong local_90;\n  Relocate_info<32,_false> relinfo;\n  \n  puVar3 = (this->symtab_reader_).p_;\n  puVar4 = (this->relocs_reader_).p_;\n  lVar5 = (this->symtab_reader_).len_;\n  lVar13 = lVar5 + 3;\n  if (-1 < lVar5) {\n    lVar13 = lVar5;\n  }\n  pTVar6 = parameters->target_;\n  relinfo.object = (Sized_relobj_file<32,_false> *)0x0;\n  relinfo.reloc_shndx = 0;\n  relinfo.reloc_shdr = (uchar *)0x0;\n  relinfo.data_shndx = 0;\n  relinfo.data_shdr = (uchar *)0x0;\n  relinfo.symtab = symtab;\n  relinfo.layout = layout;\n  if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n  }\n  iVar11 = (int)(lVar13 >> 2);\n  if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n               ._M_impl._M_start[local_90];\n      if ((pSVar7 != (Symbol *)0x0) &&\n         (((pSVar7->field_0x3a & 7) != 0 ||\n          (iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0')))) {\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff);\n        }\n        for (uVar2 = *(uint *)(puVar3 + (uint)((int)local_90 * 4)); uVar2 != 0;\n            uVar2 = *(uint *)(puVar8 + (ulong)uVar2 + 8)) {\n          puVar8 = (this->inputs_reader_).p_;\n          uVar15 = *(uint *)(puVar8 + (ulong)uVar2 + 0x10);\n          iVar12 = *(int *)(puVar8 + (ulong)uVar2 + 0xc);\n          if (iVar12 != 0) {\n            uVar17 = *(uint *)(puVar4 + uVar15);\n            uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n            uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n            pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }\n          }\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }\n  return;\n}\n\n" comment comment comment (declaration "void __thiscall\ngold::Sized_incremental_binary<32,_false>::do_apply_incremental_relocs\n          (Sized_incremental_binary<32,_false> *this,Symbol_table *symtab,Layout *layout,\n          Output_file *of)\n\n{\n  byte bVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>::do_apply_incremental_relocs\n          (Sized_incremental_binary<32,_false> *this,Symbol_table *symtab,Layout *layout,\n          Output_file *of)\n\n{\n  byte" identifier > : : (function_declarator "do_apply_incremental_relocs\n          (Sized_incremental_binary<32,_false> *this,Symbol_table *symtab,Layout *layout,\n          Output_file *of)" identifier (parameter_list "(Sized_incremental_binary<32,_false> *this,Symbol_table *symtab,Layout *layout,\n          Output_file *of)" ( (parameter_declaration "Sized_incremental_binary" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) ))) { identifier) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uchar *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uchar *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "Target *pTVar6;" type_identifier (pointer_declarator "*pTVar6" * identifier) ;) (declaration "Symbol *pSVar7;" type_identifier (pointer_declarator "*pSVar7" * identifier) ;) (declaration "uchar *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint64_t uVar9;" primitive_type identifier ;) (declaration "uchar *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "Output_section *pOVar14;" type_identifier (pointer_declarator "*pOVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "ulong local_90;" type_identifier identifier ;) (expression_statement "Relocate_info<32,_false> relinfo;" (update_expression "Relocate_info<32,_false> relinfo" (binary_expression "Relocate_info<32,_false> relinfo" (binary_expression "Relocate_info<32" identifier < number_literal) (ERROR ",_false" , identifier) > identifier) --) ;) (expression_statement "puVar3 = (this->symtab_reader_).p_;" (assignment_expression "puVar3 = (this->symtab_reader_).p_" identifier = (field_expression "(this->symtab_reader_).p_" (parenthesized_expression "(this->symtab_reader_)" ( (field_expression "this->symtab_reader_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar4 = (this->relocs_reader_).p_;" (assignment_expression "puVar4 = (this->relocs_reader_).p_" identifier = (field_expression "(this->relocs_reader_).p_" (parenthesized_expression "(this->relocs_reader_)" ( (field_expression "this->relocs_reader_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "lVar5 = (this->symtab_reader_).len_;" (assignment_expression "lVar5 = (this->symtab_reader_).len_" identifier = (field_expression "(this->symtab_reader_).len_" (parenthesized_expression "(this->symtab_reader_)" ( (field_expression "this->symtab_reader_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "lVar13 = lVar5 + 3;" (assignment_expression "lVar13 = lVar5 + 3" identifier = (binary_expression "lVar5 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < lVar5) {\n    lVar13 = lVar5;\n  }" if (parenthesized_expression "(-1 < lVar5)" ( (binary_expression "-1 < lVar5" number_literal < identifier) )) (compound_statement "{\n    lVar13 = lVar5;\n  }" { (expression_statement "lVar13 = lVar5;" (assignment_expression "lVar13 = lVar5" identifier = identifier) ;) })) (expression_statement "pTVar6 = parameters->target_;" (assignment_expression "pTVar6 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (expression_statement "relinfo.object = (Sized_relobj_file<32,_false> *)0x0;" (assignment_expression "relinfo.object = (Sized_relobj_file<32,_false> *)0x0" (field_expression "relinfo.object" identifier . field_identifier) = (parenthesized_expression "(Sized_relobj_file<32,_false> *)0x0" ( (comma_expression "Sized_relobj_file<32,_false> *)0x0" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) ;) (expression_statement "relinfo.reloc_shndx = 0;" (assignment_expression "relinfo.reloc_shndx = 0" (field_expression "relinfo.reloc_shndx" identifier . field_identifier) = number_literal) ;) (expression_statement "relinfo.reloc_shdr = (uchar *)0x0;" (assignment_expression "relinfo.reloc_shdr = (uchar *)0x0" (field_expression "relinfo.reloc_shdr" identifier . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "relinfo.data_shndx = 0;" (assignment_expression "relinfo.data_shndx = 0" (field_expression "relinfo.data_shndx" identifier . field_identifier) = number_literal) ;) (expression_statement "relinfo.data_shdr = (uchar *)0x0;" (assignment_expression "relinfo.data_shdr = (uchar *)0x0" (field_expression "relinfo.data_shdr" identifier . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "relinfo.symtab = symtab;" (assignment_expression "relinfo.symtab = symtab" (field_expression "relinfo.symtab" identifier . field_identifier) = identifier) ;) (expression_statement "relinfo.layout = layout;" (assignment_expression "relinfo.layout = layout" (field_expression "relinfo.layout" identifier . field_identifier) = identifier) ;) (if_statement "if (pTVar6 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n  }" if (parenthesized_expression "(pTVar6 == (Target *)0x0)" ( (binary_expression "pTVar6 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target")" identifier (argument_list "("../../gold/parameters.h",0x73,"sized_target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""sized_target"" " string_content ") ))) ;) })) (expression_statement "iVar11 = (int)(lVar13 >> 2);" (assignment_expression "iVar11 = (int)(lVar13 >> 2)" identifier = (cast_expression "(int)(lVar13 >> 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar13 >> 2)" ( (binary_expression "lVar13 >> 2" identifier >> number_literal) )))) ;) (if_statement "if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n               ._M_impl._M_start[local_90];\n      if ((pSVar7 != (Symbol *)0x0) &&\n         (((pSVar7->field_0x3a & 7) != 0 ||\n          (iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0')))) {\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff);\n        }\n        for (uVar2 = *(uint *)(puVar3 + (uint)((int)local_90 * 4)); uVar2 != 0;\n            uVar2 = *(uint *)(puVar8 + (ulong)uVar2 + 8)) {\n          puVar8 = (this->inputs_reader_).p_;\n          uVar15 = *(uint *)(puVar8 + (ulong)uVar2 + 0x10);\n          iVar12 = *(int *)(puVar8 + (ulong)uVar2 + 0xc);\n          if (iVar12 != 0) {\n            uVar17 = *(uint *)(puVar4 + uVar15);\n            uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n            uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n            pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }\n          }\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n    local_90 = 0;\n    do {\n      pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n               ._M_impl._M_start[local_90];\n      if ((pSVar7 != (Symbol *)0x0) &&\n         (((pSVar7->field_0x3a & 7) != 0 ||\n          (iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0')))) {\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff);\n        }\n        for (uVar2 = *(uint *)(puVar3 + (uint)((int)local_90 * 4)); uVar2 != 0;\n            uVar2 = *(uint *)(puVar8 + (ulong)uVar2 + 8)) {\n          puVar8 = (this->inputs_reader_).p_;\n          uVar15 = *(uint *)(puVar8 + (ulong)uVar2 + 0x10);\n          iVar12 = *(int *)(puVar8 + (ulong)uVar2 + 0xc);\n          if (iVar12 != 0) {\n            uVar17 = *(uint *)(puVar4 + uVar15);\n            uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n            uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n            pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }\n          }\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }" { (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (do_statement "do {\n      pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n               ._M_impl._M_start[local_90];\n      if ((pSVar7 != (Symbol *)0x0) &&\n         (((pSVar7->field_0x3a & 7) != 0 ||\n          (iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0')))) {\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff);\n        }\n        for (uVar2 = *(uint *)(puVar3 + (uint)((int)local_90 * 4)); uVar2 != 0;\n            uVar2 = *(uint *)(puVar8 + (ulong)uVar2 + 8)) {\n          puVar8 = (this->inputs_reader_).p_;\n          uVar15 = *(uint *)(puVar8 + (ulong)uVar2 + 0x10);\n          iVar12 = *(int *)(puVar8 + (ulong)uVar2 + 0xc);\n          if (iVar12 != 0) {\n            uVar17 = *(uint *)(puVar4 + uVar15);\n            uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n            uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n            pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }\n          }\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);" do (compound_statement "{\n      pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n               ._M_impl._M_start[local_90];\n      if ((pSVar7 != (Symbol *)0x0) &&\n         (((pSVar7->field_0x3a & 7) != 0 ||\n          (iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0')))) {\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff);\n        }\n        for (uVar2 = *(uint *)(puVar3 + (uint)((int)local_90 * 4)); uVar2 != 0;\n            uVar2 = *(uint *)(puVar8 + (ulong)uVar2 + 8)) {\n          puVar8 = (this->inputs_reader_).p_;\n          uVar15 = *(uint *)(puVar8 + (ulong)uVar2 + 0x10);\n          iVar12 = *(int *)(puVar8 + (ulong)uVar2 + 0xc);\n          if (iVar12 != 0) {\n            uVar17 = *(uint *)(puVar4 + uVar15);\n            uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n            uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n            pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }\n          }\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    }" { (expression_statement "pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n               ._M_impl._M_start[local_90];" (subscript_expression "pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n               ._M_impl._M_start[local_90]" (field_expression "pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n               ._M_impl._M_start" (field_expression "pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>\n               ._M_impl" (binary_expression "pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "pSVar7 = (this->symbol_map_).super__Vector_base<gold::Symbol*,_std" (assignment_expression "pSVar7 = (this->symbol_map_).super__Vector_base<gold" identifier = (binary_expression "(this->symbol_map_).super__Vector_base<gold" (field_expression "(this->symbol_map_).super__Vector_base" (parenthesized_expression "(this->symbol_map_)" ( (field_expression "this->symbol_map_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ identifier ]) ;) (if_statement "if ((pSVar7 != (Symbol *)0x0) &&\n         (((pSVar7->field_0x3a & 7) != 0 ||\n          (iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0')))) {\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff);\n        }\n        for (uVar2 = *(uint *)(puVar3 + (uint)((int)local_90 * 4)); uVar2 != 0;\n            uVar2 = *(uint *)(puVar8 + (ulong)uVar2 + 8)) {\n          puVar8 = (this->inputs_reader_).p_;\n          uVar15 = *(uint *)(puVar8 + (ulong)uVar2 + 0x10);\n          iVar12 = *(int *)(puVar8 + (ulong)uVar2 + 0xc);\n          if (iVar12 != 0) {\n            uVar17 = *(uint *)(puVar4 + uVar15);\n            uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n            uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n            pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }\n          }\n        }\n      }" if (parenthesized_expression "((pSVar7 != (Symbol *)0x0) &&\n         (((pSVar7->field_0x3a & 7) != 0 ||\n          (iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0'))))" ( (binary_expression "(pSVar7 != (Symbol *)0x0) &&\n         (((pSVar7->field_0x3a & 7) != 0 ||\n          (iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0')))" (parenthesized_expression "(pSVar7 != (Symbol *)0x0)" ( (binary_expression "pSVar7 != (Symbol *)0x0" identifier != (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((pSVar7->field_0x3a & 7) != 0 ||\n          (iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0')))" ( (parenthesized_expression "((pSVar7->field_0x3a & 7) != 0 ||\n          (iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0'))" ( (binary_expression "(pSVar7->field_0x3a & 7) != 0 ||\n          (iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0')" (binary_expression "(pSVar7->field_0x3a & 7) != 0" (parenthesized_expression "(pSVar7->field_0x3a & 7)" ( (binary_expression "pSVar7->field_0x3a & 7" (field_expression "pSVar7->field_0x3a" identifier -> field_identifier) & number_literal) )) != number_literal) || (parenthesized_expression "(iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0')" ( (comma_expression "iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])(), (char)iVar12 == '\0'" (assignment_expression "iVar12 = (*((pSVar7->u1_).object)->_vptr_Object[6])()" identifier = (call_expression "(*((pSVar7->u1_).object)->_vptr_Object[6])()" (parenthesized_expression "(*((pSVar7->u1_).object)->_vptr_Object[6])" ( (pointer_expression "*((pSVar7->u1_).object)->_vptr_Object[6]" * (subscript_expression "((pSVar7->u1_).object)->_vptr_Object[6]" (field_expression "((pSVar7->u1_).object)->_vptr_Object" (parenthesized_expression "((pSVar7->u1_).object)" ( (field_expression "(pSVar7->u1_).object" (parenthesized_expression "(pSVar7->u1_)" ( (field_expression "pSVar7->u1_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) , (binary_expression "(char)iVar12 == '\0'" (cast_expression "(char)iVar12" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n        if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff);\n        }\n        for (uVar2 = *(uint *)(puVar3 + (uint)((int)local_90 * 4)); uVar2 != 0;\n            uVar2 = *(uint *)(puVar8 + (ulong)uVar2 + 8)) {\n          puVar8 = (this->inputs_reader_).p_;\n          uVar15 = *(uint *)(puVar8 + (ulong)uVar2 + 0x10);\n          iVar12 = *(int *)(puVar8 + (ulong)uVar2 + 0xc);\n          if (iVar12 != 0) {\n            uVar17 = *(uint *)(puVar4 + uVar15);\n            uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n            uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n            pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }\n          }\n        }\n      }" { (if_statement "if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))\n        {\n          Errors::debug(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff);\n        }" if (parenthesized_expression "((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))" ( (binary_expression "(parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)" (parenthesized_expression "(parameters->options_ != (General_options *)0x0)" ( (binary_expression "parameters->options_ != (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((parameters->debug_ & 0x10) != 0)" ( (binary_expression "(parameters->debug_ & 0x10) != 0" (parenthesized_expression "(parameters->debug_ & 0x10)" ( (binary_expression "parameters->debug_ & 0x10" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          Errors::debug(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff);\n        }" { (labeled_statement "Errors::debug(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff);" statement_identifier : (ERROR ":" :) (expression_statement "debug(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff);" (call_expression "debug(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff)" identifier (argument_list "(parameters->errors_,\n                        "Applying incremental relocations for global symbol %s [%d]",pSVar7->name_,\n                        local_90 & 0xffffffff)" ( (field_expression "parameters->errors_" identifier -> field_identifier) , (string_literal ""Applying incremental relocations for global symbol %s [%d]"" " string_content ") , (field_expression "pSVar7->name_" identifier -> field_identifier) , (binary_expression "local_90 & 0xffffffff" identifier & number_literal) ))) ;)) })) (for_statement "for (uVar2 = *(uint *)(puVar3 + (uint)((int)local_90 * 4)); uVar2 != 0;\n            uVar2 = *(uint *)(puVar8 + (ulong)uVar2 + 8)) {\n          puVar8 = (this->inputs_reader_).p_;\n          uVar15 = *(uint *)(puVar8 + (ulong)uVar2 + 0x10);\n          iVar12 = *(int *)(puVar8 + (ulong)uVar2 + 0xc);\n          if (iVar12 != 0) {\n            uVar17 = *(uint *)(puVar4 + uVar15);\n            uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n            uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n            pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }\n          }\n        }" for ( (assignment_expression "uVar2 = *(uint *)(puVar3 + (uint)((int)local_90 * 4))" identifier = (pointer_expression "*(uint *)(puVar3 + (uint)((int)local_90 * 4))" * (cast_expression "(uint *)(puVar3 + (uint)((int)local_90 * 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + (uint)((int)local_90 * 4))" ( (binary_expression "puVar3 + (uint)((int)local_90 * 4)" identifier + (call_expression "(uint)((int)local_90 * 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_90 * 4)" ( (binary_expression "(int)local_90 * 4" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ))))) ; (binary_expression "uVar2 != 0" identifier != number_literal) ; (assignment_expression "uVar2 = *(uint *)(puVar8 + (ulong)uVar2 + 8)" identifier = (pointer_expression "*(uint *)(puVar8 + (ulong)uVar2 + 8)" * (cast_expression "(uint *)(puVar8 + (ulong)uVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + (ulong)uVar2 + 8)" ( (binary_expression "puVar8 + (ulong)uVar2 + 8" (binary_expression "puVar8 + (ulong)uVar2" identifier + (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ) (compound_statement "{\n          puVar8 = (this->inputs_reader_).p_;\n          uVar15 = *(uint *)(puVar8 + (ulong)uVar2 + 0x10);\n          iVar12 = *(int *)(puVar8 + (ulong)uVar2 + 0xc);\n          if (iVar12 != 0) {\n            uVar17 = *(uint *)(puVar4 + uVar15);\n            uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n            uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n            pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }\n          }\n        }" { (expression_statement "puVar8 = (this->inputs_reader_).p_;" (assignment_expression "puVar8 = (this->inputs_reader_).p_" identifier = (field_expression "(this->inputs_reader_).p_" (parenthesized_expression "(this->inputs_reader_)" ( (field_expression "this->inputs_reader_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar15 = *(uint *)(puVar8 + (ulong)uVar2 + 0x10);" (assignment_expression "uVar15 = *(uint *)(puVar8 + (ulong)uVar2 + 0x10)" identifier = (pointer_expression "*(uint *)(puVar8 + (ulong)uVar2 + 0x10)" * (cast_expression "(uint *)(puVar8 + (ulong)uVar2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + (ulong)uVar2 + 0x10)" ( (binary_expression "puVar8 + (ulong)uVar2 + 0x10" (binary_expression "puVar8 + (ulong)uVar2" identifier + (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(puVar8 + (ulong)uVar2 + 0xc);" (assignment_expression "iVar12 = *(int *)(puVar8 + (ulong)uVar2 + 0xc)" identifier = (pointer_expression "*(int *)(puVar8 + (ulong)uVar2 + 0xc)" * (cast_expression "(int *)(puVar8 + (ulong)uVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + (ulong)uVar2 + 0xc)" ( (binary_expression "puVar8 + (ulong)uVar2 + 0xc" (binary_expression "puVar8 + (ulong)uVar2" identifier + (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;) (if_statement "if (iVar12 != 0) {\n            uVar17 = *(uint *)(puVar4 + uVar15);\n            uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n            uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n            pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }\n          }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar17 = *(uint *)(puVar4 + uVar15);\n            uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n            uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n            pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }\n          }" { (expression_statement "uVar17 = *(uint *)(puVar4 + uVar15);" (assignment_expression "uVar17 = *(uint *)(puVar4 + uVar15)" identifier = (pointer_expression "*(uint *)(puVar4 + uVar15)" * (cast_expression "(uint *)(puVar4 + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + uVar15)" ( (binary_expression "puVar4 + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);" (assignment_expression "uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8)" identifier = (pointer_expression "*(uint *)(puVar4 + (ulong)uVar15 + 8)" * (cast_expression "(uint *)(puVar4 + (ulong)uVar15 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (ulong)uVar15 + 8)" ( (binary_expression "puVar4 + (ulong)uVar15 + 8" (binary_expression "puVar4 + (ulong)uVar15" identifier + (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);" (assignment_expression "uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc)" identifier = (pointer_expression "*(uint *)(puVar4 + (ulong)uVar15 + 0xc)" * (cast_expression "(uint *)(puVar4 + (ulong)uVar15 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (ulong)uVar15 + 0xc)" ( (binary_expression "puVar4 + (ulong)uVar15 + 0xc" (binary_expression "puVar4 + (ulong)uVar15" identifier + (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];" (subscript_expression "pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)]" (field_expression "pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_start" (field_expression "pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl" (binary_expression "pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "pOVar14 = (this->section_map_).\n                      super__Vector_base<gold::Output_section*,_std" (assignment_expression "pOVar14 = (this->section_map_).\n                      super__Vector_base<gold" identifier = (binary_expression "(this->section_map_).\n                      super__Vector_base<gold" (field_expression "(this->section_map_).\n                      super__Vector_base" (parenthesized_expression "(this->section_map_)" ( (field_expression "this->section_map_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ (pointer_expression "*(uint *)(puVar4 + (ulong)uVar15 + 4)" * (cast_expression "(uint *)(puVar4 + (ulong)uVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (ulong)uVar15 + 4)" ( (binary_expression "puVar4 + (ulong)uVar15 + 4" (binary_expression "puVar4 + (ulong)uVar15" identifier + (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) )))) ]) ;) (if_statement "if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }" if (parenthesized_expression "(((pOVar14->super_Output_data).field_0x20 & 1) == 0)" ( (binary_expression "((pOVar14->super_Output_data).field_0x20 & 1) == 0" (parenthesized_expression "((pOVar14->super_Output_data).field_0x20 & 1)" ( (binary_expression "(pOVar14->super_Output_data).field_0x20 & 1" (field_expression "(pOVar14->super_Output_data).field_0x20" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }" { (labeled_statement "LAB_001f9685:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xc5,"address");" (call_expression "do_gold_unreachable("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              bVar1 = (pOVar14->super_Output_data).field_0x20;\n              uVar9 = (pOVar14->super_Output_data).address_;\n              if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }\n              lVar5 = (pOVar14->super_Output_data).offset_;\n              if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar13 = (pOVar14->super_Output_data).data_size_;\n              if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }\n              puVar10 = of->base_;\n              if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              (*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);\n              if (iVar16 == iVar12) break;\n              uVar17 = *(uint *)(puVar4 + uVar15);\n              uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);\n              uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);\n              pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];\n              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;\n            }" { (expression_statement "bVar1 = (pOVar14->super_Output_data).field_0x20;" (assignment_expression "bVar1 = (pOVar14->super_Output_data).field_0x20" identifier = (field_expression "(pOVar14->super_Output_data).field_0x20" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar9 = (pOVar14->super_Output_data).address_;" (assignment_expression "uVar9 = (pOVar14->super_Output_data).address_" identifier = (field_expression "(pOVar14->super_Output_data).address_" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n              }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xe3,"offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "lVar5 = (pOVar14->super_Output_data).offset_;" (assignment_expression "lVar5 = (pOVar14->super_Output_data).offset_" identifier = (field_expression "(pOVar14->super_Output_data).offset_" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n              }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) (expression_statement "lVar13 = (pOVar14->super_Output_data).data_size_;" (assignment_expression "lVar13 = (pOVar14->super_Output_data).data_size_" identifier = (field_expression "(pOVar14->super_Output_data).data_size_" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }" if (parenthesized_expression "((lVar5 < 0) || (of->file_size_ < lVar5 + lVar13))" ( (binary_expression "(lVar5 < 0) || (of->file_size_ < lVar5 + lVar13)" (parenthesized_expression "(lVar5 < 0)" ( (binary_expression "lVar5 < 0" identifier < number_literal) )) || (parenthesized_expression "(of->file_size_ < lVar5 + lVar13)" ( (binary_expression "of->file_size_ < lVar5 + lVar13" (field_expression "of->file_size_" identifier -> field_identifier) < (binary_expression "lVar5 + lVar13" identifier + identifier)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n              }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");" (call_expression "do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view")" identifier (argument_list "("../../gold/output.h",0x6f,"get_output_view")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""get_output_view"" " string_content ") ))) ;) })) (expression_statement "puVar10 = of->base_;" (assignment_expression "puVar10 = of->base_" identifier = (field_expression "of->base_" identifier -> field_identifier)) ;) (if_statement "if ((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)) {\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }" if (parenthesized_expression "((parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0))" ( (binary_expression "(parameters->options_ != (General_options *)0x0) &&\n                 ((parameters->debug_ & 0x10) != 0)" (parenthesized_expression "(parameters->options_ != (General_options *)0x0)" ( (binary_expression "parameters->options_ != (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((parameters->debug_ & 0x10) != 0)" ( (binary_expression "(parameters->debug_ & 0x10) != 0" (parenthesized_expression "(parameters->debug_ & 0x10)" ( (binary_expression "parameters->debug_ & 0x10" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);\n              }" { (labeled_statement "Errors::debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);" statement_identifier : (ERROR ":" :) (expression_statement "debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19);" (call_expression "debug(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19)" identifier (argument_list "(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",\n                              lVar5 + (ulong)uVar18,pOVar14->name_,(ulong)uVar18,(ulong)uVar17,\n                              (long)(int)uVar19)" ( (field_expression "parameters->errors_" identifier -> field_identifier) , (string_literal ""  %08lx: %s + %d: type %d addend %ld"" " string_content ") , (binary_expression "lVar5 + (ulong)uVar18" identifier + (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier)) , (field_expression "pOVar14->name_" identifier -> field_identifier) , (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)uVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(long)(int)uVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;)) })) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar15 = uVar15 + 0x10;" (assignment_expression "uVar15 = uVar15 + 0x10" identifier = (binary_expression "uVar15 + 0x10" identifier + number_literal)) ;) (expression_statement "(*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13);" (call_expression "(*pTVar6->_vptr_Target[0x3d])\n                        (pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13)" (parenthesized_expression "(*pTVar6->_vptr_Target[0x3d])" ( (pointer_expression "*pTVar6->_vptr_Target[0x3d]" * (subscript_expression "pTVar6->_vptr_Target[0x3d]" (field_expression "pTVar6->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar6,&relinfo,(ulong)uVar18,(ulong)uVar17,(ulong)uVar19,pSVar7,\n                         puVar10 + lVar5,uVar9,lVar13)" ( identifier , (pointer_expression "&relinfo" & identifier) , (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)uVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)uVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier , (binary_expression "puVar10 + lVar5" identifier + identifier) , identifier , identifier ))) ;) (if_statement "if (iVar16 == iVar12) break;" if (parenthesized_expression "(iVar16 == iVar12)" ( (binary_expression "iVar16 == iVar12" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar17 = *(uint *)(puVar4 + uVar15);" (assignment_expression "uVar17 = *(uint *)(puVar4 + uVar15)" identifier = (pointer_expression "*(uint *)(puVar4 + uVar15)" * (cast_expression "(uint *)(puVar4 + uVar15)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + uVar15)" ( (binary_expression "puVar4 + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8);" (assignment_expression "uVar18 = *(uint *)(puVar4 + (ulong)uVar15 + 8)" identifier = (pointer_expression "*(uint *)(puVar4 + (ulong)uVar15 + 8)" * (cast_expression "(uint *)(puVar4 + (ulong)uVar15 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (ulong)uVar15 + 8)" ( (binary_expression "puVar4 + (ulong)uVar15 + 8" (binary_expression "puVar4 + (ulong)uVar15" identifier + (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc);" (assignment_expression "uVar19 = *(uint *)(puVar4 + (ulong)uVar15 + 0xc)" identifier = (pointer_expression "*(uint *)(puVar4 + (ulong)uVar15 + 0xc)" * (cast_expression "(uint *)(puVar4 + (ulong)uVar15 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (ulong)uVar15 + 0xc)" ( (binary_expression "puVar4 + (ulong)uVar15 + 0xc" (binary_expression "puVar4 + (ulong)uVar15" identifier + (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) ))))) ;) (expression_statement "pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)];" (subscript_expression "pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start[*(uint *)(puVar4 + (ulong)uVar15 + 4)]" (field_expression "pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start" (field_expression "pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl" (binary_expression "pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "pOVar14 = (this->section_map_).\n                        super__Vector_base<gold::Output_section*,_std" (assignment_expression "pOVar14 = (this->section_map_).\n                        super__Vector_base<gold" identifier = (binary_expression "(this->section_map_).\n                        super__Vector_base<gold" (field_expression "(this->section_map_).\n                        super__Vector_base" (parenthesized_expression "(this->section_map_)" ( (field_expression "this->section_map_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ (pointer_expression "*(uint *)(puVar4 + (ulong)uVar15 + 4)" * (cast_expression "(uint *)(puVar4 + (ulong)uVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + (ulong)uVar15 + 4)" ( (binary_expression "puVar4 + (ulong)uVar15 + 4" (binary_expression "puVar4 + (ulong)uVar15" identifier + (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) + number_literal) )))) ]) ;) (if_statement "if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;" if (parenthesized_expression "(((pOVar14->super_Output_data).field_0x20 & 1) == 0)" ( (binary_expression "((pOVar14->super_Output_data).field_0x20 & 1) == 0" (parenthesized_expression "((pOVar14->super_Output_data).field_0x20 & 1)" ( (binary_expression "(pOVar14->super_Output_data).field_0x20 & 1" (field_expression "(pOVar14->super_Output_data).field_0x20" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001f9685;" goto statement_identifier ;)) })) })) })) })) (expression_statement "bVar20 = local_90 != iVar11 - 1;" (assignment_expression "bVar20 = local_90 != iVar11 - 1" identifier = (binary_expression "local_90 != iVar11 - 1" identifier != (binary_expression "iVar11 - 1" identifier - number_literal))) ;) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_001f9380(long param_1,undefined8 param_2,undefined8 param_3,long param_4)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long *plVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char cVar10;\n  int iVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  uint uVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  int iVar19;\n  bool bVar20;\n  ulong local_90;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_48;\n  undefined8 local_40;\n  \n  lVar2 = *(long *)(param_1 + 0x120);\n  lVar3 = *(long *)(param_1 + 0x130);\n  lVar12 = *(long *)(param_1 + 0x128);\n  lVar14 = lVar12 + 3;\n  if (-1 < lVar12) {\n    lVar14 = lVar12;\n  }\n  plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_78 = param_2;\n  local_70 = param_3;\n  if (plVar4 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }\n  iVar11 = (int)(lVar14 >> 2);\n  if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }\n  return;\n}\n\n" (function_definition "void FUN_001f9380(long param_1,undefined8 param_2,undefined8 param_3,long param_4)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long *plVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char cVar10;\n  int iVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  uint uVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  int iVar19;\n  bool bVar20;\n  ulong local_90;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_48;\n  undefined8 local_40;\n  \n  lVar2 = *(long *)(param_1 + 0x120);\n  lVar3 = *(long *)(param_1 + 0x130);\n  lVar12 = *(long *)(param_1 + 0x128);\n  lVar14 = lVar12 + 3;\n  if (-1 < lVar12) {\n    lVar14 = lVar12;\n  }\n  plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_78 = param_2;\n  local_70 = param_3;\n  if (plVar4 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }\n  iVar11 = (int)(lVar14 >> 2);\n  if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001f9380(long param_1,undefined8 param_2,undefined8 param_3,long param_4)" identifier (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,long param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long *plVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char cVar10;\n  int iVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  uint uVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  int iVar19;\n  bool bVar20;\n  ulong local_90;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_48;\n  undefined8 local_40;\n  \n  lVar2 = *(long *)(param_1 + 0x120);\n  lVar3 = *(long *)(param_1 + 0x130);\n  lVar12 = *(long *)(param_1 + 0x128);\n  lVar14 = lVar12 + 3;\n  if (-1 < lVar12) {\n    lVar14 = lVar12;\n  }\n  plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_78 = param_2;\n  local_70 = param_3;\n  if (plVar4 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }\n  iVar11 = (int)(lVar14 >> 2);\n  if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "ulong local_90;" type_identifier identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined8 local_40;" type_identifier identifier ;) (expression_statement "lVar2 = *(long *)(param_1 + 0x120);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x120)" identifier = (pointer_expression "*(long *)(param_1 + 0x120)" * (cast_expression "(long *)(param_1 + 0x120)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(param_1 + 0x130);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x130)" identifier = (pointer_expression "*(long *)(param_1 + 0x130)" * (cast_expression "(long *)(param_1 + 0x130)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x130)" ( (binary_expression "param_1 + 0x130" identifier + number_literal) ))))) ;) (expression_statement "lVar12 = *(long *)(param_1 + 0x128);" (assignment_expression "lVar12 = *(long *)(param_1 + 0x128)" identifier = (pointer_expression "*(long *)(param_1 + 0x128)" * (cast_expression "(long *)(param_1 + 0x128)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (expression_statement "lVar14 = lVar12 + 3;" (assignment_expression "lVar14 = lVar12 + 3" identifier = (binary_expression "lVar12 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < lVar12) {\n    lVar14 = lVar12;\n  }" if (parenthesized_expression "(-1 < lVar12)" ( (binary_expression "-1 < lVar12" number_literal < identifier) )) (compound_statement "{\n    lVar14 = lVar12;\n  }" { (expression_statement "lVar14 = lVar12;" (assignment_expression "lVar14 = lVar12" identifier = identifier) ;) })) (expression_statement "plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);" (assignment_expression "plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_004ba7c8 + 0x18)" * (cast_expression "(long **)(PTR_DAT_004ba7c8 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x18)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_78 = param_2;" (assignment_expression "local_78 = param_2" identifier = identifier) ;) (expression_statement "local_70 = param_3;" (assignment_expression "local_70 = param_3" identifier = identifier) ;) (if_statement "if (plVar4 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }" if (parenthesized_expression "(plVar4 == (long *)0x0)" ( (binary_expression "plVar4 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }" { (expression_statement "FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_001e9890("../../gold/parameters.h",0x73,"sized_target")" identifier (argument_list "("../../gold/parameters.h",0x73,"sized_target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""sized_target"" " string_content ") ))) ;) })) (expression_statement "iVar11 = (int)(lVar14 >> 2);" (assignment_expression "iVar11 = (int)(lVar14 >> 2)" identifier = (cast_expression "(int)(lVar14 >> 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar14 >> 2)" ( (binary_expression "lVar14 >> 2" identifier >> number_literal) )))) ;) (if_statement "if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }" { (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (do_statement "do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);" do (compound_statement "{\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    }" { (expression_statement "puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);" (assignment_expression "puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8)" identifier = (pointer_expression "*(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8)" * (cast_expression "(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1 + 0xa8) + local_90 * 8)" ( (binary_expression "*(long *)(param_1 + 0xa8) + local_90 * 8" (pointer_expression "*(long *)(param_1 + 0xa8)" * (cast_expression "(long *)(param_1 + 0xa8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa8)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) )))) + (binary_expression "local_90 * 8" identifier * number_literal)) ))))) ;) (if_statement "if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }" if (parenthesized_expression "((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0'))))" ( (binary_expression "(puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))" (parenthesized_expression "(puVar5 != (undefined8 *)0x0)" ( (binary_expression "puVar5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))" ( (parenthesized_expression "((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0'))" ( (binary_expression "(*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')" (binary_expression "(*(byte *)((long)puVar5 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)puVar5 + 0x3a) & 7)" ( (binary_expression "*(byte *)((long)puVar5 + 0x3a) & 7" (pointer_expression "*(byte *)((long)puVar5 + 0x3a)" * (cast_expression "(byte *)((long)puVar5 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x3a)" ( (binary_expression "(long)puVar5 + 0x3a" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "(cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')" ( (comma_expression "cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0'" (assignment_expression "cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))()" identifier = (call_expression "(**(code **)(*(long *)puVar5[2] + 0x30))()" (parenthesized_expression "(**(code **)(*(long *)puVar5[2] + 0x30))" ( (pointer_expression "**(code **)(*(long *)puVar5[2] + 0x30)" * (pointer_expression "*(code **)(*(long *)puVar5[2] + 0x30)" * (cast_expression "(code **)(*(long *)puVar5[2] + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)puVar5[2] + 0x30)" ( (binary_expression "*(long *)puVar5[2] + 0x30" (pointer_expression "*(long *)puVar5[2]" * (cast_expression "(long *)puVar5[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }" { (if_statement "if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }" if (parenthesized_expression "((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_004ba7c8[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_004ba7c8[0x24] & 0x10)" ( (binary_expression "PTR_DAT_004ba7c8[0x24] & 0x10" (subscript_expression "PTR_DAT_004ba7c8[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }" { (expression_statement "FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);" (call_expression "FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff)" identifier (argument_list "(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff)" ( (pointer_expression "*(undefined8 *)PTR_DAT_004ba7c8" * (cast_expression "(undefined8 *)PTR_DAT_004ba7c8" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (string_literal ""Applying incremental relocations for global symbol %s [%d]"" " string_content ") , (pointer_expression "*puVar5" * identifier) , (binary_expression "local_90 & 0xffffffff" identifier & number_literal) ))) ;) })) (expression_statement "uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));" (assignment_expression "uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4))" identifier = (pointer_expression "*(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4))" * (cast_expression "(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + (ulong)(uint)((int)local_90 * 4))" ( (binary_expression "lVar2 + (ulong)(uint)((int)local_90 * 4)" identifier + (call_expression "(ulong)(uint)((int)local_90 * 4)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "((int)local_90 * 4)" ( (binary_expression "(int)local_90 * 4" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ))))) ;) (while_statement "while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }" while (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }" { (expression_statement "lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);" (assignment_expression "lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100)" identifier = (binary_expression "(ulong)uVar15 + *(long *)(param_1 + 0x100)" (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier) + (pointer_expression "*(long *)(param_1 + 0x100)" * (cast_expression "(long *)(param_1 + 0x100)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))))) ;) (expression_statement "uVar15 = *(uint *)(lVar12 + 0x10);" (assignment_expression "uVar15 = *(uint *)(lVar12 + 0x10)" identifier = (pointer_expression "*(uint *)(lVar12 + 0x10)" * (cast_expression "(uint *)(lVar12 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x10)" ( (binary_expression "lVar12 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(lVar12 + 0xc);" (assignment_expression "iVar1 = *(int *)(lVar12 + 0xc)" identifier = (pointer_expression "*(int *)(lVar12 + 0xc)" * (cast_expression "(int *)(lVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0xc)" ( (binary_expression "lVar12 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }" { (expression_statement "uVar13 = (ulong)uVar15;" (assignment_expression "uVar13 = (ulong)uVar15" identifier = (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar17 = *(undefined4 *)(lVar3 + uVar13);" (assignment_expression "uVar17 = *(undefined4 *)(lVar3 + uVar13)" identifier = (pointer_expression "*(undefined4 *)(lVar3 + uVar13)" * (cast_expression "(undefined4 *)(lVar3 + uVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + uVar13)" ( (binary_expression "lVar3 + uVar13" identifier + identifier) ))))) ;) (expression_statement "uVar18 = *(uint *)(lVar3 + 8 + uVar13);" (assignment_expression "uVar18 = *(uint *)(lVar3 + 8 + uVar13)" identifier = (pointer_expression "*(uint *)(lVar3 + 8 + uVar13)" * (cast_expression "(uint *)(lVar3 + 8 + uVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8 + uVar13)" ( (binary_expression "lVar3 + 8 + uVar13" (binary_expression "lVar3 + 8" identifier + number_literal) + identifier) ))))) ;) (expression_statement "iVar19 = *(int *)(lVar3 + 0xc + uVar13);" (assignment_expression "iVar19 = *(int *)(lVar3 + 0xc + uVar13)" identifier = (pointer_expression "*(int *)(lVar3 + 0xc + uVar13)" * (cast_expression "(int *)(lVar3 + 0xc + uVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc + uVar13)" ( (binary_expression "lVar3 + 0xc + uVar13" (binary_expression "lVar3 + 0xc" identifier + number_literal) + identifier) ))))) ;) (expression_statement "lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;" (assignment_expression "lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" identifier = (pointer_expression "*(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" * (cast_expression "(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" ( (binary_expression "*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8" (pointer_expression "*(long *)(param_1 + 0x90)" * (cast_expression "(long *)(param_1 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) + (binary_expression "(ulong)*(uint *)(lVar3 + 4 + uVar13) * 8" (binary_expression "(ulong)*(uint *)(lVar3 + 4 + uVar13)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar3 + 4 + uVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 4 + uVar13)" ( (binary_expression "lVar3 + 4 + uVar13" (binary_expression "lVar3 + 4" identifier + number_literal) + identifier) )))) * number_literal)) ))))) ;) (if_statement "if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }" if (parenthesized_expression "((*(byte *)(lVar14 + 0x20) & 1) == 0)" ( (binary_expression "(*(byte *)(lVar14 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x20) & 1)" ( (binary_expression "*(byte *)(lVar14 + 0x20) & 1" (pointer_expression "*(byte *)(lVar14 + 0x20)" * (cast_expression "(byte *)(lVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }" { (labeled_statement "LAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");" statement_identifier : (expression_statement "FUN_001e9890("../../gold/output.h",0xc5,"address");" (call_expression "FUN_001e9890("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }" { (expression_statement "uVar6 = *(undefined8 *)(lVar14 + 8);" (assignment_expression "uVar6 = *(undefined8 *)(lVar14 + 8)" identifier = (pointer_expression "*(undefined8 *)(lVar14 + 8)" * (cast_expression "(undefined8 *)(lVar14 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 8)" ( (binary_expression "lVar14 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }" if (parenthesized_expression "((*(byte *)(lVar14 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar14 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x20) & 4)" ( (binary_expression "*(byte *)(lVar14 + 0x20) & 4" (pointer_expression "*(byte *)(lVar14 + 0x20)" * (cast_expression "(byte *)(lVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }" { (expression_statement "FUN_001e9890("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_001e9890("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "lVar7 = *(long *)(lVar14 + 0x18);" (assignment_expression "lVar7 = *(long *)(lVar14 + 0x18)" identifier = (pointer_expression "*(long *)(lVar14 + 0x18)" * (cast_expression "(long *)(lVar14 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x18)" ( (binary_expression "lVar14 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }" if (parenthesized_expression "((*(byte *)(lVar14 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar14 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar14 + 0x20) & 2" (pointer_expression "*(byte *)(lVar14 + 0x20)" * (cast_expression "(byte *)(lVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }" { (expression_statement "FUN_001e9890("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_001e9890("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) (expression_statement "lVar8 = *(long *)(lVar14 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar14 + 0x10)" identifier = (pointer_expression "*(long *)(lVar14 + 0x10)" * (cast_expression "(long *)(lVar14 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x10)" ( (binary_expression "lVar14 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }" if (parenthesized_expression "((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8))" ( (binary_expression "(lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)" (parenthesized_expression "(lVar7 < 0)" ( (binary_expression "lVar7 < 0" identifier < number_literal) )) || (parenthesized_expression "(*(long *)(param_4 + 0x10) < lVar7 + lVar8)" ( (binary_expression "*(long *)(param_4 + 0x10) < lVar7 + lVar8" (pointer_expression "*(long *)(param_4 + 0x10)" * (cast_expression "(long *)(param_4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) < (binary_expression "lVar7 + lVar8" identifier + identifier)) ))) )) (compound_statement "{\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }" { (expression_statement "FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");" (call_expression "FUN_001e9890("../../gold/output.h",0x6f,"get_output_view")" identifier (argument_list "("../../gold/output.h",0x6f,"get_output_view")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""get_output_view"" " string_content ") ))) ;) })) (expression_statement "lVar9 = *(long *)(param_4 + 0x18);" (assignment_expression "lVar9 = *(long *)(param_4 + 0x18)" identifier = (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }" if (parenthesized_expression "((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0))" ( (binary_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0)" ( (binary_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" * (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" ( (binary_expression "PTR_DAT_004ba7c8 + 0x10" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)" ( (binary_expression "(PTR_DAT_004ba7c8[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_004ba7c8[0x24] & 0x10)" ( (binary_expression "PTR_DAT_004ba7c8[0x24] & 0x10" (subscript_expression "PTR_DAT_004ba7c8[0x24]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }" { (expression_statement "FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);" (call_expression "FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19)" identifier (argument_list "(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19)" ( (pointer_expression "*(undefined8 *)PTR_DAT_004ba7c8" * (cast_expression "(undefined8 *)PTR_DAT_004ba7c8" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (string_literal ""  %08lx: %s + %d: type %d addend %ld"" " string_content ") , (binary_expression "lVar7 + (ulong)uVar18" identifier + (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier)) , (pointer_expression "*(undefined8 *)(lVar14 + 0x28)" * (cast_expression "(undefined8 *)(lVar14 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x28)" ( (binary_expression "lVar14 + 0x28" identifier + number_literal) )))) , identifier , identifier , (cast_expression "(long)iVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ))) ;) })) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar15 = uVar15 + 0x10;" (assignment_expression "uVar15 = uVar15 + 0x10" identifier = (binary_expression "uVar15 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar13 = (ulong)uVar15;" (assignment_expression "uVar13 = (ulong)uVar15" identifier = (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);" (call_expression "(**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8)" (parenthesized_expression "(**(code **)(*plVar4 + 0x1e8))" ( (pointer_expression "**(code **)(*plVar4 + 0x1e8)" * (pointer_expression "*(code **)(*plVar4 + 0x1e8)" * (cast_expression "(code **)(*plVar4 + 0x1e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar4 + 0x1e8)" ( (binary_expression "*plVar4 + 0x1e8" (pointer_expression "*plVar4" * identifier) + number_literal) ))))) )) (argument_list "(plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8)" ( identifier , (pointer_expression "&local_78" & identifier) , identifier , identifier , identifier , identifier , (binary_expression "lVar9 + lVar7" identifier + identifier) , identifier , identifier ))) ;) (if_statement "if (iVar16 == iVar1) break;" if (parenthesized_expression "(iVar16 == iVar1)" ( (binary_expression "iVar16 == iVar1" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar17 = *(undefined4 *)(lVar3 + uVar13);" (assignment_expression "uVar17 = *(undefined4 *)(lVar3 + uVar13)" identifier = (pointer_expression "*(undefined4 *)(lVar3 + uVar13)" * (cast_expression "(undefined4 *)(lVar3 + uVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + uVar13)" ( (binary_expression "lVar3 + uVar13" identifier + identifier) ))))) ;) (expression_statement "uVar18 = *(uint *)(lVar3 + 8 + uVar13);" (assignment_expression "uVar18 = *(uint *)(lVar3 + 8 + uVar13)" identifier = (pointer_expression "*(uint *)(lVar3 + 8 + uVar13)" * (cast_expression "(uint *)(lVar3 + 8 + uVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 8 + uVar13)" ( (binary_expression "lVar3 + 8 + uVar13" (binary_expression "lVar3 + 8" identifier + number_literal) + identifier) ))))) ;) (expression_statement "iVar19 = *(int *)(lVar3 + 0xc + uVar13);" (assignment_expression "iVar19 = *(int *)(lVar3 + 0xc + uVar13)" identifier = (pointer_expression "*(int *)(lVar3 + 0xc + uVar13)" * (cast_expression "(int *)(lVar3 + 0xc + uVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xc + uVar13)" ( (binary_expression "lVar3 + 0xc + uVar13" (binary_expression "lVar3 + 0xc" identifier + number_literal) + identifier) ))))) ;) (expression_statement "lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);" (assignment_expression "lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" identifier = (pointer_expression "*(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" * (cast_expression "(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" ( (binary_expression "*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8" (pointer_expression "*(long *)(param_1 + 0x90)" * (cast_expression "(long *)(param_1 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) + (binary_expression "(ulong)*(uint *)(lVar3 + 4 + uVar13) * 8" (binary_expression "(ulong)*(uint *)(lVar3 + 4 + uVar13)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar3 + 4 + uVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 4 + uVar13)" ( (binary_expression "lVar3 + 4 + uVar13" (binary_expression "lVar3 + 4" identifier + number_literal) + identifier) )))) * number_literal)) ))))) ;) (if_statement "if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;" if (parenthesized_expression "((*(byte *)(lVar14 + 0x20) & 1) == 0)" ( (binary_expression "(*(byte *)(lVar14 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x20) & 1)" ( (binary_expression "*(byte *)(lVar14 + 0x20) & 1" (pointer_expression "*(byte *)(lVar14 + 0x20)" * (cast_expression "(byte *)(lVar14 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x20)" ( (binary_expression "lVar14 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001f9685;" goto statement_identifier ;)) })) })) (expression_statement "uVar15 = *(uint *)(lVar12 + 8);" (assignment_expression "uVar15 = *(uint *)(lVar12 + 8)" identifier = (pointer_expression "*(uint *)(lVar12 + 8)" * (cast_expression "(uint *)(lVar12 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 8)" ( (binary_expression "lVar12 + 8" identifier + number_literal) ))))) ;) })) })) (expression_statement "bVar20 = local_90 != iVar11 - 1;" (assignment_expression "bVar20 = local_90 != iVar11 - 1" identifier = (binary_expression "local_90 != iVar11 - 1" identifier != (binary_expression "iVar11 - 1" identifier - number_literal))) ;) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) 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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) )) (argument_list ( )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (string_literal " string_content ") , (pointer_expression * IDENT) , (binary_expression IDENT & LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (binary_expression IDENT + IDENT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (string_literal " string_content ") , (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , IDENT , IDENT , IDENT , (binary_expression IDENT + IDENT) , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) })) })) (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 IDENT != (binary_expression IDENT - LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_001f9380(long param_1,undefined8 param_2,undefined8 param_3,long param_4)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long *plVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char cVar10;\n  int iVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  uint uVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  int iVar19;\n  bool bVar20;\n  ulong local_90;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_48;\n  undefined8 local_40;\n  \n  lVar2 = *(long *)(param_1 + 0x120);\n  lVar3 = *(long *)(param_1 + 0x130);\n  lVar12 = *(long *)(param_1 + 0x128);\n  lVar14 = lVar12 + 3;\n  if (-1 < lVar12) {\n    lVar14 = lVar12;\n  }\n  plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_78 = param_2;\n  local_70 = param_3;\n  if (plVar4 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }\n  iVar11 = (int)(lVar14 >> 2);\n  if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001f9380(long param_1,undefined8 param_2,undefined8 param_3,long param_4)" (identifier "FUN_001f9380") (parameter_list "(long param_1,undefined8 param_2,undefined8 param_3,long param_4)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) () ")"))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long *plVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char cVar10;\n  int iVar11;\n  long lVar12;\n  ulong uVar13;\n  long lVar14;\n  uint uVar15;\n  int iVar16;\n  undefined4 uVar17;\n  uint uVar18;\n  int iVar19;\n  bool bVar20;\n  ulong local_90;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined4 local_60;\n  undefined8 local_58;\n  undefined4 local_48;\n  undefined8 local_40;\n  \n  lVar2 = *(long *)(param_1 + 0x120);\n  lVar3 = *(long *)(param_1 + 0x130);\n  lVar12 = *(long *)(param_1 + 0x128);\n  lVar14 = lVar12 + 3;\n  if (-1 < lVar12) {\n    lVar14 = lVar12;\n  }\n  plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);\n  local_68 = 0;\n  local_60 = 0;\n  local_58 = 0;\n  local_48 = 0;\n  local_40 = 0;\n  local_78 = param_2;\n  local_70 = param_3;\n  if (plVar4 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }\n  iVar11 = (int)(lVar14 >> 2);\n  if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "long *plVar4;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar4" (* "*") (identifier "plVar4")) (; ";")) (declaration "undefined8 *puVar5;" (type_identifier "undefined8") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "char cVar10;" (primitive_type "char") (identifier "cVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "long lVar14;" (sized_type_specifier "long" (long "long")) (identifier "lVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "undefined4 uVar17;" (type_identifier "undefined4") (identifier "uVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "bool bVar20;" (primitive_type "bool") (identifier "bVar20") (; ";")) (declaration "ulong local_90;" (type_identifier "ulong") (identifier "local_90") (; ";")) (declaration "undefined8 local_78;" (type_identifier "undefined8") (identifier "local_78") (; ";")) (declaration "undefined8 local_70;" (type_identifier "undefined8") (identifier "local_70") (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined8 local_40;" (type_identifier "undefined8") (identifier "local_40") (; ";")) (expression_statement "lVar2 = *(long *)(param_1 + 0x120);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x120)" (identifier "lVar2") (= "=") (pointer_expression "*(long *)(param_1 + 0x120)" (* "*") (cast_expression "(long *)(param_1 + 0x120)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x120)" (( "(") (binary_expression "param_1 + 0x120" (identifier "param_1") (+ "+") (number_literal "0x120")) () ")"))))) (; ";")) (expression_statement "lVar3 = *(long *)(param_1 + 0x130);" (assignment_expression "lVar3 = *(long *)(param_1 + 0x130)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x130)" (* "*") (cast_expression "(long *)(param_1 + 0x130)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x130)" (( "(") (binary_expression "param_1 + 0x130" (identifier "param_1") (+ "+") (number_literal "0x130")) () ")"))))) (; ";")) (expression_statement "lVar12 = *(long *)(param_1 + 0x128);" (assignment_expression "lVar12 = *(long *)(param_1 + 0x128)" (identifier "lVar12") (= "=") (pointer_expression "*(long *)(param_1 + 0x128)" (* "*") (cast_expression "(long *)(param_1 + 0x128)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) (; ";")) (expression_statement "lVar14 = lVar12 + 3;" (assignment_expression "lVar14 = lVar12 + 3" (identifier "lVar14") (= "=") (binary_expression "lVar12 + 3" (identifier "lVar12") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (-1 < lVar12) {\n    lVar14 = lVar12;\n  }" (if "if") (parenthesized_expression "(-1 < lVar12)" (( "(") (binary_expression "-1 < lVar12" (number_literal "-1") (< "<") (identifier "lVar12")) () ")")) (compound_statement "{\n    lVar14 = lVar12;\n  }" ({ "{") (expression_statement "lVar14 = lVar12;" (assignment_expression "lVar14 = lVar12" (identifier "lVar14") (= "=") (identifier "lVar12")) (; ";")) (} "}"))) (expression_statement "plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);" (assignment_expression "plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18)" (identifier "plVar4") (= "=") (pointer_expression "*(long **)(PTR_DAT_004ba7c8 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_004ba7c8 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x18)" (( "(") (binary_expression "PTR_DAT_004ba7c8 + 0x18" (identifier "PTR_DAT_004ba7c8") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = param_2;" (assignment_expression "local_78 = param_2" (identifier "local_78") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_70 = param_3;" (assignment_expression "local_70 = param_3" (identifier "local_70") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (plVar4 == (long *)0x0) {\n                    \n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }" (if "if") (parenthesized_expression "(plVar4 == (long *)0x0)" (( "(") (binary_expression "plVar4 == (long *)0x0" (identifier "plVar4") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");\n  }" ({ "{") (expression_statement "FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_001e9890("../../gold/parameters.h",0x73,"sized_target")" (identifier "FUN_001e9890") (argument_list "("../../gold/parameters.h",0x73,"sized_target")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x73") (, ",") (string_literal ""sized_target"" (" """) (string_content "sized_target") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar11 = (int)(lVar14 >> 2);" (assignment_expression "iVar11 = (int)(lVar14 >> 2)" (identifier "iVar11") (= "=") (cast_expression "(int)(lVar14 >> 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar14 >> 2)" (( "(") (binary_expression "lVar14 >> 2" (identifier "lVar14") (>> ">>") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (iVar11 != 0) {\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_90 = 0;\n    do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);\n  }" ({ "{") (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    } while (bVar20);" (do "do") (compound_statement "{\n      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);\n      if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }\n      bVar20 = local_90 != iVar11 - 1;\n      local_90 = local_90 + 1;\n    }" ({ "{") (expression_statement "puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);" (assignment_expression "puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8)" (* "*") (cast_expression "(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0xa8) + local_90 * 8)" (( "(") (binary_expression "*(long *)(param_1 + 0xa8) + local_90 * 8" (pointer_expression "*(long *)(param_1 + 0xa8)" (* "*") (cast_expression "(long *)(param_1 + 0xa8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa8)" (( "(") (binary_expression "param_1 + 0xa8" (identifier "param_1") (+ "+") (number_literal "0xa8")) () ")")))) (+ "+") (binary_expression "local_90 * 8" (identifier "local_90") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if ((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }" (if "if") (parenthesized_expression "((puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0'))))" (( "(") (binary_expression "(puVar5 != (undefined8 *)0x0) &&\n         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))" (parenthesized_expression "(puVar5 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar5 != (undefined8 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))" (( "(") (parenthesized_expression "((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0'))" (( "(") (binary_expression "(*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||\n          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')" (binary_expression "(*(byte *)((long)puVar5 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)((long)puVar5 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)((long)puVar5 + 0x3a) & 7" (pointer_expression "*(byte *)((long)puVar5 + 0x3a)" (* "*") (cast_expression "(byte *)((long)puVar5 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar5 + 0x3a)" (( "(") (binary_expression "(long)puVar5 + 0x3a" (cast_expression "(long)puVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar5")) (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')" (( "(") (comma_expression "cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0'" (assignment_expression "cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))()" (identifier "cVar10") (= "=") (call_expression "(**(code **)(*(long *)puVar5[2] + 0x30))()" (parenthesized_expression "(**(code **)(*(long *)puVar5[2] + 0x30))" (( "(") (pointer_expression "**(code **)(*(long *)puVar5[2] + 0x30)" (* "*") (pointer_expression "*(code **)(*(long *)puVar5[2] + 0x30)" (* "*") (cast_expression "(code **)(*(long *)puVar5[2] + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)puVar5[2] + 0x30)" (( "(") (binary_expression "*(long *)puVar5[2] + 0x30" (pointer_expression "*(long *)puVar5[2]" (* "*") (cast_expression "(long *)puVar5[2]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "cVar10 == '\0'" (identifier "cVar10") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }\n        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));\n        while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }\n      }" ({ "{") (if_statement "if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }" (if "if") (parenthesized_expression "((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0))" (( "(") (binary_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" (( "(") (binary_expression "PTR_DAT_004ba7c8 + 0x10" (identifier "PTR_DAT_004ba7c8") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)" (( "(") (binary_expression "(PTR_DAT_004ba7c8[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_004ba7c8[0x24] & 0x10)" (( "(") (binary_expression "PTR_DAT_004ba7c8[0x24] & 0x10" (subscript_expression "PTR_DAT_004ba7c8[0x24]" (identifier "PTR_DAT_004ba7c8") ([ "[") (number_literal "0x24") (] "]")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);\n        }" ({ "{") (expression_statement "FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff);" (call_expression "FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff)" (identifier "FUN_001e12d0") (argument_list "(*(undefined8 *)PTR_DAT_004ba7c8,\n                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,\n                       local_90 & 0xffffffff)" (( "(") (pointer_expression "*(undefined8 *)PTR_DAT_004ba7c8" (* "*") (cast_expression "(undefined8 *)PTR_DAT_004ba7c8" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_004ba7c8"))) (, ",") (string_literal ""Applying incremental relocations for global symbol %s [%d]"" (" """) (string_content "Applying incremental relocations for global symbol %s [%d]") (" """)) (, ",") (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (, ",") (binary_expression "local_90 & 0xffffffff" (identifier "local_90") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));" (assignment_expression "uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4))" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4))" (* "*") (cast_expression "(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + (ulong)(uint)((int)local_90 * 4))" (( "(") (binary_expression "lVar2 + (ulong)(uint)((int)local_90 * 4)" (identifier "lVar2") (+ "+") (call_expression "(ulong)(uint)((int)local_90 * 4)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "((int)local_90 * 4)" (( "(") (binary_expression "(int)local_90 * 4" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (* "*") (number_literal "4")) () ")")))) () ")"))))) (; ";")) (while_statement "while (uVar15 != 0) {\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }" (while "while") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);\n          uVar15 = *(uint *)(lVar12 + 0x10);\n          iVar1 = *(int *)(lVar12 + 0xc);\n          if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }\n          uVar15 = *(uint *)(lVar12 + 8);\n        }" ({ "{") (expression_statement "lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);" (assignment_expression "lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100)" (identifier "lVar12") (= "=") (binary_expression "(ulong)uVar15 + *(long *)(param_1 + 0x100)" (cast_expression "(ulong)uVar15" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar15")) (+ "+") (pointer_expression "*(long *)(param_1 + 0x100)" (* "*") (cast_expression "(long *)(param_1 + 0x100)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))))) (; ";")) (expression_statement "uVar15 = *(uint *)(lVar12 + 0x10);" (assignment_expression "uVar15 = *(uint *)(lVar12 + 0x10)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(lVar12 + 0x10)" (* "*") (cast_expression "(uint *)(lVar12 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x10)" (( "(") (binary_expression "lVar12 + 0x10" (identifier "lVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar1 = *(int *)(lVar12 + 0xc);" (assignment_expression "iVar1 = *(int *)(lVar12 + 0xc)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(lVar12 + 0xc)" (* "*") (cast_expression "(int *)(lVar12 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0xc)" (( "(") (binary_expression "lVar12 + 0xc" (identifier "lVar12") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar1 != 0) {\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar13 = (ulong)uVar15;\n            uVar17 = *(undefined4 *)(lVar3 + uVar13);\n            uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n            iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;\n            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }\n            iVar16 = 0;\n            while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }\n          }" ({ "{") (expression_statement "uVar13 = (ulong)uVar15;" (assignment_expression "uVar13 = (ulong)uVar15" (identifier "uVar13") (= "=") (cast_expression "(ulong)uVar15" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar15"))) (; ";")) (expression_statement "uVar17 = *(undefined4 *)(lVar3 + uVar13);" (assignment_expression "uVar17 = *(undefined4 *)(lVar3 + uVar13)" (identifier "uVar17") (= "=") (pointer_expression "*(undefined4 *)(lVar3 + uVar13)" (* "*") (cast_expression "(undefined4 *)(lVar3 + uVar13)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + uVar13)" (( "(") (binary_expression "lVar3 + uVar13" (identifier "lVar3") (+ "+") (identifier "uVar13")) () ")"))))) (; ";")) (expression_statement "uVar18 = *(uint *)(lVar3 + 8 + uVar13);" (assignment_expression "uVar18 = *(uint *)(lVar3 + 8 + uVar13)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(lVar3 + 8 + uVar13)" (* "*") (cast_expression "(uint *)(lVar3 + 8 + uVar13)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8 + uVar13)" (( "(") (binary_expression "lVar3 + 8 + uVar13" (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) (+ "+") (identifier "uVar13")) () ")"))))) (; ";")) (expression_statement "iVar19 = *(int *)(lVar3 + 0xc + uVar13);" (assignment_expression "iVar19 = *(int *)(lVar3 + 0xc + uVar13)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(lVar3 + 0xc + uVar13)" (* "*") (cast_expression "(int *)(lVar3 + 0xc + uVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0xc + uVar13)" (( "(") (binary_expression "lVar3 + 0xc + uVar13" (binary_expression "lVar3 + 0xc" (identifier "lVar3") (+ "+") (number_literal "0xc")) (+ "+") (identifier "uVar13")) () ")"))))) (; ";")) (expression_statement "lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)\n            ;" (assignment_expression "lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" (identifier "lVar14") (= "=") (pointer_expression "*(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" (* "*") (cast_expression "(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" (( "(") (binary_expression "*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8" (pointer_expression "*(long *)(param_1 + 0x90)" (* "*") (cast_expression "(long *)(param_1 + 0x90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (+ "+") (binary_expression "(ulong)*(uint *)(lVar3 + 4 + uVar13) * 8" (binary_expression "(ulong)*(uint *)(lVar3 + 4 + uVar13)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(lVar3 + 4 + uVar13)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 4 + uVar13)" (( "(") (binary_expression "lVar3 + 4 + uVar13" (binary_expression "lVar3 + 4" (identifier "lVar3") (+ "+") (number_literal "4")) (+ "+") (identifier "uVar13")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }" (if "if") (parenthesized_expression "((*(byte *)(lVar14 + 0x20) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(lVar14 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x20) & 1)" (( "(") (binary_expression "*(byte *)(lVar14 + 0x20) & 1" (pointer_expression "*(byte *)(lVar14 + 0x20)" (* "*") (cast_expression "(byte *)(lVar14 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x20)" (( "(") (binary_expression "lVar14 + 0x20" (identifier "lVar14") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");\n            }" ({ "{") (labeled_statement "LAB_001f9685:\n                    \n              FUN_001e9890("../../gold/output.h",0xc5,"address");" (statement_identifier "LAB_001f9685") (: ":") (expression_statement "FUN_001e9890("../../gold/output.h",0xc5,"address");" (call_expression "FUN_001e9890("../../gold/output.h",0xc5,"address")" (identifier "FUN_001e9890") (argument_list "("../../gold/output.h",0xc5,"address")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xc5") (, ",") (string_literal ""address"" (" """) (string_content "address") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              uVar6 = *(undefined8 *)(lVar14 + 8);\n              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }\n              lVar7 = *(long *)(lVar14 + 0x18);\n              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }\n              lVar8 = *(long *)(lVar14 + 0x10);\n              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }\n              lVar9 = *(long *)(param_4 + 0x18);\n              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }\n              iVar16 = iVar16 + 1;\n              uVar15 = uVar15 + 0x10;\n              uVar13 = (ulong)uVar15;\n              (**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);\n              if (iVar16 == iVar1) break;\n              uVar17 = *(undefined4 *)(lVar3 + uVar13);\n              uVar18 = *(uint *)(lVar3 + 8 + uVar13);\n              iVar19 = *(int *)(lVar3 + 0xc + uVar13);\n              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);\n              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;\n            }" ({ "{") (expression_statement "uVar6 = *(undefined8 *)(lVar14 + 8);" (assignment_expression "uVar6 = *(undefined8 *)(lVar14 + 8)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined8 *)(lVar14 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar14 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 8)" (( "(") (binary_expression "lVar14 + 8" (identifier "lVar14") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }" (if "if") (parenthesized_expression "((*(byte *)(lVar14 + 0x20) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(lVar14 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x20) & 4)" (( "(") (binary_expression "*(byte *)(lVar14 + 0x20) & 4" (pointer_expression "*(byte *)(lVar14 + 0x20)" (* "*") (cast_expression "(byte *)(lVar14 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x20)" (( "(") (binary_expression "lVar14 + 0x20" (identifier "lVar14") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                FUN_001e9890("../../gold/output.h",0xe3,"offset");\n              }" ({ "{") (expression_statement "FUN_001e9890("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_001e9890("../../gold/output.h",0xe3,"offset")" (identifier "FUN_001e9890") (argument_list "("../../gold/output.h",0xe3,"offset")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xe3") (, ",") (string_literal ""offset"" (" """) (string_content "offset") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar7 = *(long *)(lVar14 + 0x18);" (assignment_expression "lVar7 = *(long *)(lVar14 + 0x18)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(lVar14 + 0x18)" (* "*") (cast_expression "(long *)(lVar14 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x18)" (( "(") (binary_expression "lVar14 + 0x18" (identifier "lVar14") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }" (if "if") (parenthesized_expression "((*(byte *)(lVar14 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(lVar14 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(lVar14 + 0x20) & 2" (pointer_expression "*(byte *)(lVar14 + 0x20)" (* "*") (cast_expression "(byte *)(lVar14 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x20)" (( "(") (binary_expression "lVar14 + 0x20" (identifier "lVar14") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                FUN_001e9890("../../gold/output.h",0xcf,"data_size");\n              }" ({ "{") (expression_statement "FUN_001e9890("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_001e9890("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_001e9890") (argument_list "("../../gold/output.h",0xcf,"data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xcf") (, ",") (string_literal ""data_size"" (" """) (string_content "data_size") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar8 = *(long *)(lVar14 + 0x10);" (assignment_expression "lVar8 = *(long *)(lVar14 + 0x10)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar14 + 0x10)" (* "*") (cast_expression "(long *)(lVar14 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x10)" (( "(") (binary_expression "lVar14 + 0x10" (identifier "lVar14") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }" (if "if") (parenthesized_expression "((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8))" (( "(") (binary_expression "(lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)" (parenthesized_expression "(lVar7 < 0)" (( "(") (binary_expression "lVar7 < 0" (identifier "lVar7") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(long *)(param_4 + 0x10) < lVar7 + lVar8)" (( "(") (binary_expression "*(long *)(param_4 + 0x10) < lVar7 + lVar8" (pointer_expression "*(long *)(param_4 + 0x10)" (* "*") (cast_expression "(long *)(param_4 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))) (< "<") (binary_expression "lVar7 + lVar8" (identifier "lVar7") (+ "+") (identifier "lVar8"))) () ")"))) () ")")) (compound_statement "{\n                    \n                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");\n              }" ({ "{") (expression_statement "FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");" (call_expression "FUN_001e9890("../../gold/output.h",0x6f,"get_output_view")" (identifier "FUN_001e9890") (argument_list "("../../gold/output.h",0x6f,"get_output_view")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x6f") (, ",") (string_literal ""get_output_view"" (" """) (string_content "get_output_view") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar9 = *(long *)(param_4 + 0x18);" (assignment_expression "lVar9 = *(long *)(param_4 + 0x18)" (identifier "lVar9") (= "=") (pointer_expression "*(long *)(param_4 + 0x18)" (* "*") (cast_expression "(long *)(param_4 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }" (if "if") (parenthesized_expression "((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0))" (( "(") (binary_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&\n                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)" (parenthesized_expression "(*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0" (pointer_expression "*(long *)(PTR_DAT_004ba7c8 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_004ba7c8 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_004ba7c8 + 0x10)" (( "(") (binary_expression "PTR_DAT_004ba7c8 + 0x10" (identifier "PTR_DAT_004ba7c8") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)" (( "(") (binary_expression "(PTR_DAT_004ba7c8[0x24] & 0x10) != 0" (parenthesized_expression "(PTR_DAT_004ba7c8[0x24] & 0x10)" (( "(") (binary_expression "PTR_DAT_004ba7c8[0x24] & 0x10" (subscript_expression "PTR_DAT_004ba7c8[0x24]" (identifier "PTR_DAT_004ba7c8") ([ "[") (number_literal "0x24") (] "]")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);\n              }" ({ "{") (expression_statement "FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19);" (call_expression "FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19)" (identifier "FUN_001e12d0") (argument_list "(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",\n                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,\n                             (long)iVar19)" (( "(") (pointer_expression "*(undefined8 *)PTR_DAT_004ba7c8" (* "*") (cast_expression "(undefined8 *)PTR_DAT_004ba7c8" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_004ba7c8"))) (, ",") (string_literal ""  %08lx: %s + %d: type %d addend %ld"" (" """) (string_content "  %08lx: %s + %d: type %d addend %ld") (" """)) (, ",") (binary_expression "lVar7 + (ulong)uVar18" (identifier "lVar7") (+ "+") (cast_expression "(ulong)uVar18" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar18"))) (, ",") (pointer_expression "*(undefined8 *)(lVar14 + 0x28)" (* "*") (cast_expression "(undefined8 *)(lVar14 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x28)" (( "(") (binary_expression "lVar14 + 0x28" (identifier "lVar14") (+ "+") (number_literal "0x28")) () ")")))) (, ",") (identifier "uVar18") (, ",") (identifier "uVar17") (, ",") (cast_expression "(long)iVar19" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar19")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar15 = uVar15 + 0x10;" (assignment_expression "uVar15 = uVar15 + 0x10" (identifier "uVar15") (= "=") (binary_expression "uVar15 + 0x10" (identifier "uVar15") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "uVar13 = (ulong)uVar15;" (assignment_expression "uVar13 = (ulong)uVar15" (identifier "uVar13") (= "=") (cast_expression "(ulong)uVar15" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar15"))) (; ";")) (expression_statement "(**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);" (call_expression "(**(code **)(*plVar4 + 0x1e8))\n                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8)" (parenthesized_expression "(**(code **)(*plVar4 + 0x1e8))" (( "(") (pointer_expression "**(code **)(*plVar4 + 0x1e8)" (* "*") (pointer_expression "*(code **)(*plVar4 + 0x1e8)" (* "*") (cast_expression "(code **)(*plVar4 + 0x1e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar4 + 0x1e8)" (( "(") (binary_expression "*plVar4 + 0x1e8" (pointer_expression "*plVar4" (* "*") (identifier "plVar4")) (+ "+") (number_literal "0x1e8")) () ")"))))) () ")")) (argument_list "(plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8)" (( "(") (identifier "plVar4") (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (identifier "uVar18") (, ",") (identifier "uVar17") (, ",") (identifier "iVar19") (, ",") (identifier "puVar5") (, ",") (binary_expression "lVar9 + lVar7" (identifier "lVar9") (+ "+") (identifier "lVar7")) (, ",") (identifier "uVar6") (, ",") (identifier "lVar8") () ")"))) (; ";")) (if_statement "if (iVar16 == iVar1) break;" (if "if") (parenthesized_expression "(iVar16 == iVar1)" (( "(") (binary_expression "iVar16 == iVar1" (identifier "iVar16") (== "==") (identifier "iVar1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar17 = *(undefined4 *)(lVar3 + uVar13);" (assignment_expression "uVar17 = *(undefined4 *)(lVar3 + uVar13)" (identifier "uVar17") (= "=") (pointer_expression "*(undefined4 *)(lVar3 + uVar13)" (* "*") (cast_expression "(undefined4 *)(lVar3 + uVar13)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + uVar13)" (( "(") (binary_expression "lVar3 + uVar13" (identifier "lVar3") (+ "+") (identifier "uVar13")) () ")"))))) (; ";")) (expression_statement "uVar18 = *(uint *)(lVar3 + 8 + uVar13);" (assignment_expression "uVar18 = *(uint *)(lVar3 + 8 + uVar13)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(lVar3 + 8 + uVar13)" (* "*") (cast_expression "(uint *)(lVar3 + 8 + uVar13)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 8 + uVar13)" (( "(") (binary_expression "lVar3 + 8 + uVar13" (binary_expression "lVar3 + 8" (identifier "lVar3") (+ "+") (number_literal "8")) (+ "+") (identifier "uVar13")) () ")"))))) (; ";")) (expression_statement "iVar19 = *(int *)(lVar3 + 0xc + uVar13);" (assignment_expression "iVar19 = *(int *)(lVar3 + 0xc + uVar13)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(lVar3 + 0xc + uVar13)" (* "*") (cast_expression "(int *)(lVar3 + 0xc + uVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0xc + uVar13)" (( "(") (binary_expression "lVar3 + 0xc + uVar13" (binary_expression "lVar3 + 0xc" (identifier "lVar3") (+ "+") (number_literal "0xc")) (+ "+") (identifier "uVar13")) () ")"))))) (; ";")) (expression_statement "lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);" (assignment_expression "lVar14 = *(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" (identifier "lVar14") (= "=") (pointer_expression "*(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" (* "*") (cast_expression "(long *)(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)" (( "(") (binary_expression "*(long *)(param_1 + 0x90) +\n                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8" (pointer_expression "*(long *)(param_1 + 0x90)" (* "*") (cast_expression "(long *)(param_1 + 0x90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (+ "+") (binary_expression "(ulong)*(uint *)(lVar3 + 4 + uVar13) * 8" (binary_expression "(ulong)*(uint *)(lVar3 + 4 + uVar13)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(lVar3 + 4 + uVar13)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 4 + uVar13)" (( "(") (binary_expression "lVar3 + 4 + uVar13" (binary_expression "lVar3 + 4" (identifier "lVar3") (+ "+") (number_literal "4")) (+ "+") (identifier "uVar13")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;" (if "if") (parenthesized_expression "((*(byte *)(lVar14 + 0x20) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(lVar14 + 0x20) & 1) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x20) & 1)" (( "(") (binary_expression "*(byte *)(lVar14 + 0x20) & 1" (pointer_expression "*(byte *)(lVar14 + 0x20)" (* "*") (cast_expression "(byte *)(lVar14 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x20)" (( "(") (binary_expression "lVar14 + 0x20" (identifier "lVar14") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001f9685;" (goto "goto") (statement_identifier "LAB_001f9685") (; ";"))) (} "}"))) (} "}"))) (expression_statement "uVar15 = *(uint *)(lVar12 + 8);" (assignment_expression "uVar15 = *(uint *)(lVar12 + 8)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(lVar12 + 8)" (* "*") (cast_expression "(uint *)(lVar12 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 8)" (( "(") (binary_expression "lVar12 + 8" (identifier "lVar12") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar20 = local_90 != iVar11 - 1;" (assignment_expression "bVar20 = local_90 != iVar11 - 1" (identifier "bVar20") (= "=") (binary_expression "local_90 != iVar11 - 1" (identifier "local_90") (!= "!=") (binary_expression "iVar11 - 1" (identifier "iVar11") (- "-") (number_literal "1")))) (; ";")) (expression_statement "local_90 = local_90 + 1;" (assignment_expression "local_90 = local_90 + 1" (identifier "local_90") (= "=") (binary_expression "local_90 + 1" (identifier "local_90") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void do_apply_incremental_relocs(Sized_incremental_binary<32,_false> *
   this, Symbol_table * symtab, Layout * layout, Output_file * of) */

void __thiscall
var_10::Sized_incremental_binary<32,var_5>::do_apply_incremental_relocs
          (Sized_incremental_binary<32,var_5> *this,Symbol_table *symtab,Layout *layout,
          Output_file *of)

{
  byte var_22;
  type_1 var_17;
  type_2 *var_16;
  type_2 *var_20;
  long var_3;
  type_3 *var_6;
  type_4 *var_13;
  type_2 *var_18;
  uint64_t uVar9;
  type_2 *var_24;
  int var_9;
  int var_19;
  long var_8;
  type_5 *pOVar14;
  type_1 var_21;
  int var_23;
  type_1 uVar17;
  type_1 uVar18;
  type_1 uVar19;
  bool bVar20;
  type_6 var_15;
  var_1<32,var_5> var_2;
  
  var_16 = (this->symtab_reader_).p_;
  var_20 = (this->relocs_reader_).p_;
  var_3 = (this->symtab_reader_).len_;
  var_8 = var_3 + 3;
  if (-1 < var_3) {
    var_8 = var_3;
  }
  var_6 = parameters->target_;
  var_2.object = (var_4<32,var_5> *)0x0;
  var_2.reloc_shndx = 0;
  var_2.reloc_shdr = (type_2 *)0x0;
  var_2.data_shndx = 0;
  var_2.data_shdr = (type_2 *)0x0;
  var_2.symtab = symtab;
  var_2.layout = layout;
  if (var_6 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_7("../../gold/parameters.h",0x73,"sized_target");
  }
  var_9 = (int)(var_8 >> 2);
  if (var_9 != 0) {
    var_15 = 0;
    do {
      var_13 = (this->symbol_map_).super__Vector_base<var_10::type_4*,var_11::allocator<var_10::type_4*>var_12>
               ._M_impl._M_start[var_15];
      if ((var_13 != (type_4 *)0x0) &&
         (((var_13->field_0x3a & 7) != 0 ||
          (var_19 = (*((var_13->u1_).object)->_vptr_Object[6])(), (char)var_19 == '\0')))) {
        if ((parameters->options_ != (type_7 *)0x0) && ((parameters->debug_ & 0x10) != 0))
        {
          Errors::var_14(parameters->errors_,
                        "Applying incremental relocations for global symbol %s [%d]",var_13->name_,
                        var_15 & 0xffffffff);
        }
        for (var_17 = *(type_1 *)(var_16 + (type_1)((int)var_15 * 4)); var_17 != 0;
            var_17 = *(type_1 *)(var_18 + (type_6)var_17 + 8)) {
          var_18 = (this->inputs_reader_).p_;
          var_21 = *(type_1 *)(var_18 + (type_6)var_17 + 0x10);
          var_19 = *(int *)(var_18 + (type_6)var_17 + 0xc);
          if (var_19 != 0) {
            uVar17 = *(type_1 *)(var_20 + var_21);
            uVar18 = *(type_1 *)(var_20 + (type_6)var_21 + 8);
            uVar19 = *(type_1 *)(var_20 + (type_6)var_21 + 0xc);
            pOVar14 = (this->section_map_).
                      super__Vector_base<var_10::type_5*,var_11::allocator<var_10::type_5*>var_12>
                      ._M_impl._M_start[*(type_1 *)(var_20 + (type_6)var_21 + 4)];
            if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) {
LAB_001f9685:
                    /* WARNING: Subroutine does not return */
              var_7("../../gold/output.h",0xc5,"address");
            }
            var_23 = 0;
            while( true ) {
              var_22 = (pOVar14->super_Output_data).field_0x20;
              uVar9 = (pOVar14->super_Output_data).address_;
              if ((var_22 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
                var_7("../../gold/output.h",0xe3,"offset");
              }
              var_3 = (pOVar14->super_Output_data).offset_;
              if ((var_22 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
                var_7("../../gold/output.h",0xcf,"data_size");
              }
              var_8 = (pOVar14->super_Output_data).data_size_;
              if ((var_3 < 0) || (of->file_size_ < var_3 + var_8)) {
                    /* WARNING: Subroutine does not return */
                var_7("../../gold/output.h",0x6f,"get_output_view");
              }
              var_24 = of->base_;
              if ((parameters->options_ != (type_7 *)0x0) &&
                 ((parameters->debug_ & 0x10) != 0)) {
                Errors::var_14(parameters->errors_,"  %08lx: %s + %d: type %d addend %ld",
                              var_3 + (type_6)uVar18,pOVar14->name_,(type_6)uVar18,(type_6)uVar17,
                              (long)(int)uVar19);
              }
              var_23 = var_23 + 1;
              var_21 = var_21 + 0x10;
              (*var_6->_vptr_Target[0x3d])
                        (var_6,&var_2,(type_6)uVar18,(type_6)uVar17,(type_6)uVar19,var_13,
                         var_24 + var_3,uVar9,var_8);
              if (var_23 == var_19) break;
              uVar17 = *(type_1 *)(var_20 + var_21);
              uVar18 = *(type_1 *)(var_20 + (type_6)var_21 + 8);
              uVar19 = *(type_1 *)(var_20 + (type_6)var_21 + 0xc);
              pOVar14 = (this->section_map_).
                        super__Vector_base<var_10::type_5*,var_11::allocator<var_10::type_5*>var_12>
                        ._M_impl._M_start[*(type_1 *)(var_20 + (type_6)var_21 + 4)];
              if (((pOVar14->super_Output_data).field_0x20 & 1) == 0) goto LAB_001f9685;
            }
          }
        }
      }
      bVar20 = var_15 != var_9 - 1;
      var_15 = var_15 + 1;
    } while (bVar20);
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (sized_type_specifier) 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: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) 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))) (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) 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))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))))) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (string_literal (string_content)) (pointer_expression argument: (identifier)) (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: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) 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: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (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: (identifier))))))) (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (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))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (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))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (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))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (string_literal (string_content)) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) (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))))) (identifier) (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (identifier)) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (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: (identifier))))))) (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (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))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) (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: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))))) (return_statement))))

void MASKED(long param_1,undefined8 param_2,undefined8 param_3,long param_4)

{
  int iVar1;
  long lVar2;
  long lVar3;
  long *plVar4;
  undefined8 *puVar5;
  undefined8 uVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  char cVar10;
  int iVar11;
  long lVar12;
  ulong uVar13;
  long lVar14;
  uint uVar15;
  int iVar16;
  undefined4 uVar17;
  uint uVar18;
  int iVar19;
  bool bVar20;
  ulong local_90;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  undefined4 local_60;
  undefined8 local_58;
  undefined4 local_48;
  undefined8 local_40;
  
  lVar2 = *(long *)(param_1 + 0x120);
  lVar3 = *(long *)(param_1 + 0x130);
  lVar12 = *(long *)(param_1 + 0x128);
  lVar14 = lVar12 + 3;
  if (-1 < lVar12) {
    lVar14 = lVar12;
  }
  plVar4 = *(long **)(PTR_DAT_004ba7c8 + 0x18);
  local_68 = 0;
  local_60 = 0;
  local_58 = 0;
  local_48 = 0;
  local_40 = 0;
  local_78 = param_2;
  local_70 = param_3;
  if (plVar4 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_001e9890("../../gold/parameters.h",0x73,"sized_target");
  }
  iVar11 = (int)(lVar14 >> 2);
  if (iVar11 != 0) {
    local_90 = 0;
    do {
      puVar5 = *(undefined8 **)(*(long *)(param_1 + 0xa8) + local_90 * 8);
      if ((puVar5 != (undefined8 *)0x0) &&
         (((*(byte *)((long)puVar5 + 0x3a) & 7) != 0 ||
          (cVar10 = (**(code **)(*(long *)puVar5[2] + 0x30))(), cVar10 == '\0')))) {
        if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) && ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {
          FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,
                       "Applying incremental relocations for global symbol %s [%d]",*puVar5,
                       local_90 & 0xffffffff);
        }
        uVar15 = *(uint *)(lVar2 + (ulong)(uint)((int)local_90 * 4));
        while (uVar15 != 0) {
          lVar12 = (ulong)uVar15 + *(long *)(param_1 + 0x100);
          uVar15 = *(uint *)(lVar12 + 0x10);
          iVar1 = *(int *)(lVar12 + 0xc);
          if (iVar1 != 0) {
            uVar13 = (ulong)uVar15;
            uVar17 = *(undefined4 *)(lVar3 + uVar13);
            uVar18 = *(uint *)(lVar3 + 8 + uVar13);
            iVar19 = *(int *)(lVar3 + 0xc + uVar13);
            lVar14 = *(long *)(*(long *)(param_1 + 0x90) + (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8)
            ;
            if ((*(byte *)(lVar14 + 0x20) & 1) == 0) {
LAB_001f9685:
                    /* WARNING: Subroutine does not return */
              FUN_001e9890("../../gold/output.h",0xc5,"address");
            }
            iVar16 = 0;
            while( true ) {
              uVar6 = *(undefined8 *)(lVar14 + 8);
              if ((*(byte *)(lVar14 + 0x20) & 4) == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_001e9890("../../gold/output.h",0xe3,"offset");
              }
              lVar7 = *(long *)(lVar14 + 0x18);
              if ((*(byte *)(lVar14 + 0x20) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_001e9890("../../gold/output.h",0xcf,"data_size");
              }
              lVar8 = *(long *)(lVar14 + 0x10);
              if ((lVar7 < 0) || (*(long *)(param_4 + 0x10) < lVar7 + lVar8)) {
                    /* WARNING: Subroutine does not return */
                FUN_001e9890("../../gold/output.h",0x6f,"get_output_view");
              }
              lVar9 = *(long *)(param_4 + 0x18);
              if ((*(long *)(PTR_DAT_004ba7c8 + 0x10) != 0) &&
                 ((PTR_DAT_004ba7c8[0x24] & 0x10) != 0)) {
                FUN_001e12d0(*(undefined8 *)PTR_DAT_004ba7c8,"  %08lx: %s + %d: type %d addend %ld",
                             lVar7 + (ulong)uVar18,*(undefined8 *)(lVar14 + 0x28),uVar18,uVar17,
                             (long)iVar19);
              }
              iVar16 = iVar16 + 1;
              uVar15 = uVar15 + 0x10;
              uVar13 = (ulong)uVar15;
              (**(code **)(*plVar4 + 0x1e8))
                        (plVar4,&local_78,uVar18,uVar17,iVar19,puVar5,lVar9 + lVar7,uVar6,lVar8);
              if (iVar16 == iVar1) break;
              uVar17 = *(undefined4 *)(lVar3 + uVar13);
              uVar18 = *(uint *)(lVar3 + 8 + uVar13);
              iVar19 = *(int *)(lVar3 + 0xc + uVar13);
              lVar14 = *(long *)(*(long *)(param_1 + 0x90) +
                                (ulong)*(uint *)(lVar3 + 4 + uVar13) * 8);
              if ((*(byte *)(lVar14 + 0x20) & 1) == 0) goto LAB_001f9685;
            }
          }
          uVar15 = *(uint *)(lVar12 + 8);
        }
      }
      bVar20 = local_90 != iVar11 - 1;
      local_90 = local_90 + 1;
    } while (bVar20);
  }
  return;
}

