
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void set_final_data_size(Output_section_incremental_inputs<32,_false> *
   this) */

void __thiscall
gold::Output_section_incremental_inputs<32,_false>::set_final_data_size
          (Output_section_incremental_inputs<32,_false> *this)

{
  byte bVar1;
  Incremental_inputs *pIVar2;
  pointer ppIVar3;
  Incremental_input_entry *pIVar4;
  Target *pTVar5;
  long lVar6;
  int iVar7;
  int iVar8;
  long lVar9;
  undefined4 extraout_var_00;
  long *plVar10;
  Symbol *from;
  undefined4 extraout_var_01;
  undefined4 extraout_var_02;
  long lVar11;
  uint uVar12;
  uint uVar13;
  pointer ppIVar14;
  uint uVar15;
  ulong uVar16;
  undefined4 extraout_var;
  
  pIVar2 = this->inputs_;
  ppIVar3 = (pIVar2->inputs_).
            super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>
            ._M_impl._M_finish;
  ppIVar14 = (pIVar2->inputs_).
             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>
             ._M_impl._M_start;
  uVar16 = (ulong)((int)((long)ppIVar3 - (long)ppIVar14 >> 3) * 0x18 + 0x10);
  if (ppIVar3 != ppIVar14) {
    uVar13 = 0;
    uVar12 = 0x10;
    do {
      pIVar4 = *ppIVar14;
      pIVar4->file_index_ = uVar13;
      uVar13 = uVar13 + 1;
      pIVar4->offset_ = uVar12;
      uVar12 = uVar12 + 0x18;
      iVar7 = (*pIVar4->_vptr_Incremental_input_entry[2])();
      uVar15 = (uint)uVar16;
      switch(iVar7) {
      default:
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/incremental.cc",0x553,"set_final_data_size");
      case 1:
      case 2:
        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[4])();
        lVar9 = CONCAT44(extraout_var_01,iVar7);
        if (lVar9 == 0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size");
        }
        plVar10 = *(long **)(lVar9 + 0x38);
        (*ppIVar14)->info_offset_ = uVar15;
        lVar11 = *(long *)(lVar9 + 0x50);
        lVar6 = *(long *)(lVar9 + 0x48);
        plVar10 = (long *)(**(code **)(*plVar10 + 0xe8))();
        uVar15 = uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +
                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4 +
                 (int)(plVar10[1] - *plVar10 >> 3) * 0x14;
        break;
      case 3:
        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[6])();
        lVar9 = CONCAT44(extraout_var_02,iVar7);
        if (lVar9 == 0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size");
        }
        lVar11 = *(long *)(lVar9 + 0x40);
        lVar6 = *(long *)(lVar9 + 0x38);
        (*ppIVar14)->info_offset_ = uVar15;
        uVar15 = uVar15 + 8 +
                 ((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +
                 (int)(lVar11 - lVar6 >> 3)) * 4;
        break;
      case 4:
        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[5])();
        if (CONCAT44(extraout_var_00,iVar7) == 0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size");
        }
        lVar9 = **(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40);
        (*ppIVar14)->info_offset_ = uVar15;
        uVar15 = uVar15 + 8;
        plVar10 = (long *)(**(code **)(lVar9 + 0xe8))();
        if (plVar10 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size");
        }
        lVar9 = *plVar10;
        iVar7 = (int)(plVar10[1] - lVar9 >> 3);
        if (iVar7 != 0) {
          iVar8 = 0;
          lVar11 = 0;
          while( true ) {
            from = *(Symbol **)(lVar9 + lVar11);
            if (from != (Symbol *)0x0) {
              if ((from->field_0x3a & 0x10) != 0) {
                from = Symbol_table::resolve_forwards(this->symtab_,from);
              }
              if (from->symtab_index_ == 0) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");
              }
              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);
            }
            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;
            lVar9 = *plVar10;
            lVar11 = lVar11 + 8;
          }
          uVar15 = uVar15 + iVar8 * 4;
        }
        break;
      case 5:
        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[3])();
        lVar9 = CONCAT44(extraout_var,iVar7);
        if (lVar9 == 0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size");
        }
        (*ppIVar14)->info_offset_ = uVar15;
        uVar15 = uVar15 + 4 + (int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4;
      }
      if ((uVar15 & 4) != 0) {
        uVar15 = uVar15 + 4;
      }
      uVar16 = (ulong)uVar15;
      ppIVar14 = ppIVar14 + 1;
    } while ((pIVar2->inputs_).
             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>
             ._M_impl._M_finish != ppIVar14);
  }
  bVar1 = (this->super_Output_section_data).super_Output_data.field_0x20;
  if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0x218,"set_data_size");
  }
  (this->super_Output_section_data).super_Output_data.data_size_ = uVar16;
  (this->super_Output_section_data).super_Output_data.field_0x20 = bVar1 | 2;
  if (((pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.
       super_Output_data.field_0x20 & 2) == 0) {
    (pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.
    super_Output_data.data_size_ = (ulong)this->symtab_->output_count_ << 2;
    if (((pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.
         super_Output_data.field_0x20 & 2) == 0) {
      (pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.
      super_Output_data.data_size_ = (ulong)(pIVar2->reloc_count_ << 4);
      pTVar5 = parameters->target_;
      if (pTVar5 == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");
      }
      iVar7 = (**(code **)(*(long *)pTVar5 + 0x188))(pTVar5);
      iVar8 = (**(code **)(*(long *)pTVar5 + 400))(pTVar5);
      if (((pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.
           super_Output_data.field_0x20 & 2) == 0) {
        (pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.
        super_Output_data.data_size_ =
             (ulong)((iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4);
        return;
      }
    }
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");
}



void FUN_001786b0(long param_1)

{
  byte bVar1;
  long *plVar2;
  long lVar3;
  undefined4 uVar4;
  long lVar5;
  long *plVar6;
  int iVar7;
  long lVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  long *plVar12;
  uint uVar13;
  ulong uVar14;
  
  plVar2 = *(long **)(param_1 + 0x38);
  plVar12 = (long *)*plVar2;
  uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);
  if ((long *)plVar2[1] != plVar12) {
    iVar10 = 0;
    iVar9 = 0x10;
    do {
      plVar6 = (long *)*plVar12;
      *(int *)(plVar6 + 2) = iVar10;
      iVar10 = iVar10 + 1;
      *(int *)((long)plVar6 + 0x14) = iVar9;
      iVar9 = iVar9 + 0x18;
      uVar4 = (**(code **)(*plVar6 + 0x10))();
      iVar7 = (int)uVar14;
      switch(uVar4) {
      default:
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");
      case 1:
      case 2:
        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();
        if (lVar5 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");
        }
        plVar6 = *(long **)(lVar5 + 0x38);
        *(int *)(*plVar12 + 0x18) = iVar7;
        lVar8 = *(long *)(lVar5 + 0x50);
        lVar3 = *(long *)(lVar5 + 0x48);
        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();
        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +
                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +
                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;
        break;
      case 3:
        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();
        if (lVar5 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");
        }
        lVar8 = *(long *)(lVar5 + 0x40);
        lVar3 = *(long *)(lVar5 + 0x38);
        *(int *)(*plVar12 + 0x18) = iVar7;
        uVar13 = iVar7 + 8 +
                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +
                 (int)(lVar8 - lVar3 >> 3)) * 4;
        break;
      case 4:
        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();
        if (lVar5 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");
        }
        lVar5 = **(long **)(lVar5 + 0x40);
        *(int *)(*plVar12 + 0x18) = iVar7;
        uVar13 = iVar7 + 8;
        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();
        if (plVar6 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");
        }
        lVar5 = *plVar6;
        iVar7 = (int)(plVar6[1] - lVar5 >> 3);
        if (iVar7 != 0) {
          iVar11 = 0;
          lVar8 = 0;
          while( true ) {
            lVar5 = *(long *)(lVar5 + lVar8);
            if (lVar5 != 0) {
              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {
                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);
              }
              if (*(int *)(lVar5 + 0x1c) == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");
              }
              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);
            }
            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;
            lVar5 = *plVar6;
            lVar8 = lVar8 + 8;
          }
          uVar13 = uVar13 + iVar11 * 4;
        }
        break;
      case 5:
        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();
        if (lVar5 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");
        }
        *(int *)(*plVar12 + 0x18) = iVar7;
        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;
      }
      if ((uVar13 & 4) != 0) {
        uVar13 = uVar13 + 4;
      }
      uVar14 = (ulong)uVar13;
      plVar12 = plVar12 + 1;
    } while ((long *)plVar2[1] != plVar12);
  }
  bVar1 = *(byte *)(param_1 + 0x20);
  if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");
  }
  *(ulong *)(param_1 + 0x10) = uVar14;
  *(byte *)(param_1 + 0x20) = bVar1 | 2;
  if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {
    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;
    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {
      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);
      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);
      if (plVar12 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");
      }
      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);
      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);
      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {
        *(ulong *)(plVar2[0xe] + 0x10) =
             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);
        return;
      }
    }
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");
}


PUSH R15
PUSH R14
PUSH R13
MOV R13,RDI
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x28
MOV RAX,qword ptr [RDI + 0x38]
MOV RDX,qword ptr [RAX + 0x8]
MOV R9,qword ptr [RAX]
MOV qword ptr [RSP + 0x18],RAX
MOV RAX,RDX
SUB RAX,R9
SAR RAX,0x3
LEA EAX,[RAX + RAX*0x2]
LEA R15D,[0x10 + RAX*0x8]
CMP RDX,R9
JZ 0x00178775
MOV R14,R9
XOR EBP,EBP
MOV EBX,0x10
NOP dword ptr [RAX]
MOV RDI,qword ptr [R14]
MOV RAX,qword ptr [RDI]
MOV dword ptr [RDI + 0x10],EBP
ADD EBP,0x1
MOV dword ptr [RDI + 0x14],EBX
ADD EBX,0x18
CALL qword ptr [RAX + 0x10]
CMP EAX,0x5
JA 0x001789e9
LEA RCX,[0x30eafc]
MOV EAX,EAX
MOVSXD RAX,dword ptr [RCX + RAX*0x4]
ADD RAX,RCX
JMP RAX
MOV RDI,qword ptr [R14]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x18]
TEST RAX,RAX
JZ 0x00178a01
MOV RDX,qword ptr [R14]
MOV dword ptr [RDX + 0x18],R15D
MOV RDX,qword ptr [RAX + 0x40]
SUB RDX,qword ptr [RAX + 0x38]
SAR RDX,0x3
LEA R15D,[R15 + RDX*0x4 + 0x4]
LEA EAX,[R15 + 0x4]
TEST R15B,0x4
CMOVNZ R15D,EAX
MOV RAX,qword ptr [RSP + 0x18]
ADD R14,0x8
CMP qword ptr [RAX + 0x8],R14
JNZ 0x00178700
MOVZX EAX,byte ptr [R13 + 0x20]
MOV ECX,R15D
TEST AL,0x2
JNZ 0x00178a31
TEST AL,0x8
JNZ 0x00178a31
OR EAX,0x2
MOV qword ptr [R13 + 0x10],RCX
MOV byte ptr [R13 + 0x20],AL
MOV RAX,qword ptr [RSP + 0x18]
MOV RDX,qword ptr [RAX + 0x60]
MOV RAX,qword ptr [R13 + 0x40]
MOV EAX,dword ptr [RAX + 0x18]
SHL RAX,0x2
TEST byte ptr [RDX + 0x20],0x2
JNZ 0x00178a19
MOV qword ptr [RDX + 0x10],RAX
MOV RAX,qword ptr [RSP + 0x18]
MOV RDX,qword ptr [RAX + 0x68]
MOV EAX,dword ptr [RAX + 0x78]
MOV dword ptr [RSP],EAX
SHL EAX,0x4
TEST byte ptr [RDX + 0x20],0x2
JNZ 0x00178a19
MOV qword ptr [RDX + 0x10],RAX
MOV RAX,qword ptr [0x003be6b0]
MOV RBX,qword ptr [RAX + 0x18]
TEST RBX,RBX
JZ 0x00178a91
MOV RAX,qword ptr [RBX]
MOV RDI,RBX
CALL qword ptr [RAX + 0x188]
MOV RDI,RBX
MOV EBP,EAX
MOV RAX,qword ptr [RBX]
CALL qword ptr [RAX + 0x190]
MOV RBX,qword ptr [RSP + 0x18]
LEA EDX,[RBP + 0xb]
AND EDX,0xfffffffc
LEA EAX,[RAX + RBP*0x2]
MOV RCX,qword ptr [RBX + 0x70]
LEA EAX,[RDX + RAX*0x4]
TEST byte ptr [RCX + 0x20],0x2
JNZ 0x00178a19
MOV qword ptr [RCX + 0x10],RAX
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,qword ptr [R14]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x28]
TEST RAX,RAX
JZ 0x00178a79
MOV RDI,qword ptr [RAX + 0x40]
MOV RDX,qword ptr [R14]
MOV RAX,qword ptr [RDI]
MOV dword ptr [RDX + 0x18],R15D
ADD R15D,0x8
CALL qword ptr [RAX + 0xe8]
MOV R10,RAX
TEST RAX,RAX
JZ 0x00178a61
MOV RAX,qword ptr [RAX]
MOV RDX,qword ptr [R10 + 0x8]
SUB RDX,RAX
SAR RDX,0x3
TEST EDX,EDX
JZ 0x0017875a
LEA R11D,[RDX + -0x1]
XOR R12D,R12D
XOR EDX,EDX
SHL R11,0x3
JMP 0x001788c7
MOV EAX,dword ptr [RAX + 0x1c]
TEST EAX,EAX
JZ 0x001789d1
CMP EAX,-0x1
SETNZ AL
MOVZX EAX,AL
ADD R12D,EAX
CMP R11,RDX
JZ 0x001789c8
MOV RAX,qword ptr [R10]
ADD RDX,0x8
MOV RAX,qword ptr [RAX + RDX*0x1]
TEST RAX,RAX
JZ 0x001788b7
TEST byte ptr [RAX + 0x3a],0x10
JZ 0x001788a0
MOV RDI,qword ptr [R13 + 0x40]
MOV RSI,RAX
MOV qword ptr [RSP + 0x10],RDX
MOV qword ptr [RSP + 0x8],R10
MOV qword ptr [RSP],R11
CALL 0x0021ec60
MOV RDX,qword ptr [RSP + 0x10]
MOV R10,qword ptr [RSP + 0x8]
MOV R11,qword ptr [RSP]
JMP 0x001788a0
MOV RDI,qword ptr [R14]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x20]
MOV RDX,RAX
TEST RAX,RAX
JZ 0x00178ab0
MOV RAX,qword ptr [R14]
MOV RDI,qword ptr [RDX + 0x38]
MOV qword ptr [RSP],RDX
MOV RSI,-0x5555555555555555
MOV dword ptr [RAX + 0x18],R15D
MOV RAX,qword ptr [RDX + 0x50]
SUB RAX,qword ptr [RDX + 0x48]
SAR RAX,0x3
IMUL RAX,RSI
SHL EAX,0x4
LEA R12D,[R15 + RAX*0x1 + 0x20]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0xe8]
MOV RDX,qword ptr [RSP]
MOV RCX,qword ptr [RDX + 0x68]
SUB RCX,qword ptr [RDX + 0x60]
MOV RDX,RCX
SAR RDX,0x3
LEA ECX,[R12 + RDX*0x4]
MOV RDX,qword ptr [RAX + 0x8]
SUB RDX,qword ptr [RAX]
MOV RAX,RDX
SAR RAX,0x3
LEA RAX,[RAX + RAX*0x4]
LEA R15D,[RCX + RAX*0x4]
JMP 0x0017875a
MOV RDI,qword ptr [R14]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x30]
TEST RAX,RAX
JZ 0x00178a49
MOV RDX,qword ptr [R14]
MOV RSI,qword ptr [RAX + 0x40]
SUB RSI,qword ptr [RAX + 0x38]
MOV dword ptr [RDX + 0x18],R15D
MOV RDX,qword ptr [RAX + 0x58]
SAR RSI,0x3
SUB RDX,qword ptr [RAX + 0x50]
SAR RDX,0x3
ADD EDX,ESI
LEA R15D,[R15 + RDX*0x4 + 0x8]
JMP 0x0017875a
LEA R15D,[R15 + R12*0x4]
JMP 0x0017875a
LEA RDX,[0x30fe80]
MOV ESI,0x180
LEA RDI,[0x30dc8d]
CALL 0x0016cdf0
LEA RDX,[0x30fe90]
MOV ESI,0x553
LEA RDI,[0x30ea08]
CALL 0x0016cdf0
LEA RDX,[0x30fe90]
MOV ESI,0x510
LEA RDI,[0x30ea08]
CALL 0x0016cdf0
LEA RDX,[0x30fe40]
MOV ESI,0x231
LEA RDI,[0x30e9f4]
CALL 0x0016cdf0
LEA RDX,[0x30fe70]
MOV ESI,0x218
LEA RDI,[0x30e9f4]
CALL 0x0016cdf0
LEA RDX,[0x30fe90]
MOV ESI,0x548
LEA RDI,[0x30ea08]
CALL 0x0016cdf0
LEA RDX,[0x30fe90]
MOV ESI,0x535
LEA RDI,[0x30ea08]
CALL 0x0016cdf0
LEA RDX,[0x30fe90]
MOV ESI,0x52f
LEA RDI,[0x30ea08]
CALL 0x0016cdf0
LEA RDX,[0x30fe60]
MOV ESI,0x73
LEA RDI,[0x30dc70]
CALL 0x0016cdf0
LEA RDX,[0x30fe90]
MOV ESI,0x51c
LEA RDI,[0x30ea08]
CALL 0x0016cdf0
(translation_unit "void FUN_001786b0(long param_1)\n\n{\n  byte bVar1;\n  long *plVar2;\n  long lVar3;\n  undefined4 uVar4;\n  long lVar5;\n  long *plVar6;\n  int iVar7;\n  long lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  long *plVar12;\n  uint uVar13;\n  ulong uVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  plVar12 = (long *)*plVar2;\n  uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);\n  if ((long *)plVar2[1] != plVar12) {\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }\n  bVar1 = *(byte *)(param_1 + 0x20);\n  if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }\n  *(ulong *)(param_1 + 0x10) = uVar14;\n  *(byte *)(param_1 + 0x20) = bVar1 | 2;\n  if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n}\n\n" (function_definition "void FUN_001786b0(long param_1)\n\n{\n  byte bVar1;\n  long *plVar2;\n  long lVar3;\n  undefined4 uVar4;\n  long lVar5;\n  long *plVar6;\n  int iVar7;\n  long lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  long *plVar12;\n  uint uVar13;\n  ulong uVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  plVar12 = (long *)*plVar2;\n  uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);\n  if ((long *)plVar2[1] != plVar12) {\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }\n  bVar1 = *(byte *)(param_1 + 0x20);\n  if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }\n  *(ulong *)(param_1 + 0x10) = uVar14;\n  *(byte *)(param_1 + 0x20) = bVar1 | 2;\n  if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n}" primitive_type (function_declarator "FUN_001786b0(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  long *plVar2;\n  long lVar3;\n  undefined4 uVar4;\n  long lVar5;\n  long *plVar6;\n  int iVar7;\n  long lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  long *plVar12;\n  uint uVar13;\n  ulong uVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  plVar12 = (long *)*plVar2;\n  uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);\n  if ((long *)plVar2[1] != plVar12) {\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }\n  bVar1 = *(byte *)(param_1 + 0x20);\n  if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }\n  *(ulong *)(param_1 + 0x10) = uVar14;\n  *(byte *)(param_1 + 0x20) = bVar1 | 2;\n  if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "long *plVar12;" (sized_type_specifier "long" long) (pointer_declarator "*plVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (expression_statement "plVar2 = *(long **)(param_1 + 0x38);" (assignment_expression "plVar2 = *(long **)(param_1 + 0x38)" identifier = (pointer_expression "*(long **)(param_1 + 0x38)" * (cast_expression "(long **)(param_1 + 0x38)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "plVar12 = (long *)*plVar2;" (assignment_expression "plVar12 = (long *)*plVar2" identifier = (cast_expression "(long *)*plVar2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar2" * identifier))) ;) (expression_statement "uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);" (assignment_expression "uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10)" identifier = (call_expression "(ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10)" ( (binary_expression "(int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10" (binary_expression "(int)(plVar2[1] - (long)plVar12 >> 3) * 0x18" (cast_expression "(int)(plVar2[1] - (long)plVar12 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(plVar2[1] - (long)plVar12 >> 3)" ( (binary_expression "plVar2[1] - (long)plVar12 >> 3" (binary_expression "plVar2[1] - (long)plVar12" (subscript_expression "plVar2[1]" identifier [ number_literal ]) - (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) * number_literal) + number_literal) )))) ;) (if_statement "if ((long *)plVar2[1] != plVar12) {\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }" if (parenthesized_expression "((long *)plVar2[1] != plVar12)" ( (binary_expression "(long *)plVar2[1] != plVar12" (cast_expression "(long *)plVar2[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0x10;" (assignment_expression "iVar9 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);" do (compound_statement "{\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    }" { (expression_statement "plVar6 = (long *)*plVar12;" (assignment_expression "plVar6 = (long *)*plVar12" identifier = (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier))) ;) (expression_statement "*(int *)(plVar6 + 2) = iVar10;" (assignment_expression "*(int *)(plVar6 + 2) = iVar10" (pointer_expression "*(int *)(plVar6 + 2)" * (cast_expression "(int *)(plVar6 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 2)" ( (binary_expression "plVar6 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)((long)plVar6 + 0x14) = iVar9;" (assignment_expression "*(int *)((long)plVar6 + 0x14) = iVar9" (pointer_expression "*(int *)((long)plVar6 + 0x14)" * (cast_expression "(int *)((long)plVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar6 + 0x14)" ( (binary_expression "(long)plVar6 + 0x14" (cast_expression "(long)plVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = iVar9 + 0x18;" (assignment_expression "iVar9 = iVar9 + 0x18" identifier = (binary_expression "iVar9 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar4 = (**(code **)(*plVar6 + 0x10))();" (assignment_expression "uVar4 = (**(code **)(*plVar6 + 0x10))()" identifier = (call_expression "(**(code **)(*plVar6 + 0x10))()" (parenthesized_expression "(**(code **)(*plVar6 + 0x10))" ( (pointer_expression "**(code **)(*plVar6 + 0x10)" * (pointer_expression "*(code **)(*plVar6 + 0x10)" * (cast_expression "(code **)(*plVar6 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x10)" ( (binary_expression "*plVar6 + 0x10" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar7 = (int)uVar14;" (assignment_expression "iVar7 = (int)uVar14" identifier = (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (switch_statement "switch(uVar4) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }" switch (parenthesized_expression "(uVar4)" ( identifier )) (compound_statement "{\n      default:\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }" { (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");" default : comment (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x553,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;)) (case_statement "case 1:" case number_literal :) (case_statement "case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;" case number_literal : (expression_statement "lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();" (assignment_expression "lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))()" identifier = (call_expression "(**(code **)(*(long *)*plVar12 + 0x20))()" (parenthesized_expression "(**(code **)(*(long *)*plVar12 + 0x20))" ( (pointer_expression "**(code **)(*(long *)*plVar12 + 0x20)" * (pointer_expression "*(code **)(*(long *)*plVar12 + 0x20)" * (cast_expression "(code **)(*(long *)*plVar12 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar12 + 0x20)" ( (binary_expression "*(long *)*plVar12 + 0x20" (pointer_expression "*(long *)*plVar12" * (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }" { comment (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x51c,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "plVar6 = *(long **)(lVar5 + 0x38);" (assignment_expression "plVar6 = *(long **)(lVar5 + 0x38)" identifier = (pointer_expression "*(long **)(lVar5 + 0x38)" * (cast_expression "(long **)(lVar5 + 0x38)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(*plVar12 + 0x18) = iVar7;" (assignment_expression "*(int *)(*plVar12 + 0x18) = iVar7" (pointer_expression "*(int *)(*plVar12 + 0x18)" * (cast_expression "(int *)(*plVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar12 + 0x18)" ( (binary_expression "*plVar12 + 0x18" (pointer_expression "*plVar12" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "lVar8 = *(long *)(lVar5 + 0x50);" (assignment_expression "lVar8 = *(long *)(lVar5 + 0x50)" identifier = (pointer_expression "*(long *)(lVar5 + 0x50)" * (cast_expression "(long *)(lVar5 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x50)" ( (binary_expression "lVar5 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(lVar5 + 0x48);" (assignment_expression "lVar3 = *(long *)(lVar5 + 0x48)" identifier = (pointer_expression "*(long *)(lVar5 + 0x48)" * (cast_expression "(long *)(lVar5 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x48)" ( (binary_expression "lVar5 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();" (assignment_expression "plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))()" identifier = (cast_expression "(long *)(**(code **)(*plVar6 + 0xe8))()" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar6 + 0xe8))()" (parenthesized_expression "(**(code **)(*plVar6 + 0xe8))" ( (pointer_expression "**(code **)(*plVar6 + 0xe8)" * (pointer_expression "*(code **)(*plVar6 + 0xe8)" * (cast_expression "(code **)(*plVar6 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0xe8)" ( (binary_expression "*plVar6 + 0xe8" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;" (assignment_expression "uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14" identifier = (binary_expression "iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14" (binary_expression "iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4" (binary_expression "iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550" (binary_expression "iVar7 + 0x20" identifier + number_literal) + (binary_expression "(int)(lVar8 - lVar3 >> 3) * -0x55555550" (cast_expression "(int)(lVar8 - lVar3 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar8 - lVar3 >> 3)" ( (binary_expression "lVar8 - lVar3 >> 3" (binary_expression "lVar8 - lVar3" identifier - identifier) >> number_literal) ))) * number_literal)) + (binary_expression "(int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4" (cast_expression "(int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3)" ( (binary_expression "*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3" (binary_expression "*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60)" (pointer_expression "*(long *)(lVar5 + 0x68)" * (cast_expression "(long *)(lVar5 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x68)" ( (binary_expression "lVar5 + 0x68" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar5 + 0x60)" * (cast_expression "(long *)(lVar5 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x60)" ( (binary_expression "lVar5 + 0x60" identifier + number_literal) ))))) >> number_literal) ))) * number_literal)) + (binary_expression "(int)(plVar6[1] - *plVar6 >> 3) * 0x14" (cast_expression "(int)(plVar6[1] - *plVar6 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(plVar6[1] - *plVar6 >> 3)" ( (binary_expression "plVar6[1] - *plVar6 >> 3" (binary_expression "plVar6[1] - *plVar6" (subscript_expression "plVar6[1]" identifier [ number_literal ]) - (pointer_expression "*plVar6" * identifier)) >> number_literal) ))) * number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;" case number_literal : (expression_statement "lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();" (assignment_expression "lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))()" identifier = (call_expression "(**(code **)(*(long *)*plVar12 + 0x30))()" (parenthesized_expression "(**(code **)(*(long *)*plVar12 + 0x30))" ( (pointer_expression "**(code **)(*(long *)*plVar12 + 0x30)" * (pointer_expression "*(code **)(*(long *)*plVar12 + 0x30)" * (cast_expression "(code **)(*(long *)*plVar12 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar12 + 0x30)" ( (binary_expression "*(long *)*plVar12 + 0x30" (pointer_expression "*(long *)*plVar12" * (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }" { comment (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x548,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "lVar8 = *(long *)(lVar5 + 0x40);" (assignment_expression "lVar8 = *(long *)(lVar5 + 0x40)" identifier = (pointer_expression "*(long *)(lVar5 + 0x40)" * (cast_expression "(long *)(lVar5 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x40)" ( (binary_expression "lVar5 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(lVar5 + 0x38);" (assignment_expression "lVar3 = *(long *)(lVar5 + 0x38)" identifier = (pointer_expression "*(long *)(lVar5 + 0x38)" * (cast_expression "(long *)(lVar5 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(*plVar12 + 0x18) = iVar7;" (assignment_expression "*(int *)(*plVar12 + 0x18) = iVar7" (pointer_expression "*(int *)(*plVar12 + 0x18)" * (cast_expression "(int *)(*plVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar12 + 0x18)" ( (binary_expression "*plVar12 + 0x18" (pointer_expression "*plVar12" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;" (assignment_expression "uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4" identifier = (binary_expression "iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4" (binary_expression "iVar7 + 8" identifier + number_literal) + (binary_expression "((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4" (parenthesized_expression "((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3))" ( (binary_expression "(int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)" (cast_expression "(int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3)" ( (binary_expression "*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3" (binary_expression "*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50)" (pointer_expression "*(long *)(lVar5 + 0x58)" * (cast_expression "(long *)(lVar5 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x58)" ( (binary_expression "lVar5 + 0x58" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar5 + 0x50)" * (cast_expression "(long *)(lVar5 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x50)" ( (binary_expression "lVar5 + 0x50" identifier + number_literal) ))))) >> number_literal) ))) + (cast_expression "(int)(lVar8 - lVar3 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar8 - lVar3 >> 3)" ( (binary_expression "lVar8 - lVar3 >> 3" (binary_expression "lVar8 - lVar3" identifier - identifier) >> number_literal) )))) )) * number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;" case number_literal : (expression_statement "lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();" (assignment_expression "lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))()" identifier = (call_expression "(**(code **)(*(long *)*plVar12 + 0x28))()" (parenthesized_expression "(**(code **)(*(long *)*plVar12 + 0x28))" ( (pointer_expression "**(code **)(*(long *)*plVar12 + 0x28)" * (pointer_expression "*(code **)(*(long *)*plVar12 + 0x28)" * (cast_expression "(code **)(*(long *)*plVar12 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar12 + 0x28)" ( (binary_expression "*(long *)*plVar12 + 0x28" (pointer_expression "*(long *)*plVar12" * (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }" { comment (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x52f,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "lVar5 = **(long **)(lVar5 + 0x40);" (assignment_expression "lVar5 = **(long **)(lVar5 + 0x40)" identifier = (pointer_expression "**(long **)(lVar5 + 0x40)" * (pointer_expression "*(long **)(lVar5 + 0x40)" * (cast_expression "(long **)(lVar5 + 0x40)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x40)" ( (binary_expression "lVar5 + 0x40" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(*plVar12 + 0x18) = iVar7;" (assignment_expression "*(int *)(*plVar12 + 0x18) = iVar7" (pointer_expression "*(int *)(*plVar12 + 0x18)" * (cast_expression "(int *)(*plVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar12 + 0x18)" ( (binary_expression "*plVar12 + 0x18" (pointer_expression "*plVar12" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = iVar7 + 8;" (assignment_expression "uVar13 = iVar7 + 8" identifier = (binary_expression "iVar7 + 8" identifier + number_literal)) ;) (expression_statement "plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();" (assignment_expression "plVar6 = (long *)(**(code **)(lVar5 + 0xe8))()" identifier = (cast_expression "(long *)(**(code **)(lVar5 + 0xe8))()" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(lVar5 + 0xe8))()" (parenthesized_expression "(**(code **)(lVar5 + 0xe8))" ( (pointer_expression "**(code **)(lVar5 + 0xe8)" * (pointer_expression "*(code **)(lVar5 + 0xe8)" * (cast_expression "(code **)(lVar5 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0xe8)" ( (binary_expression "lVar5 + 0xe8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }" if (parenthesized_expression "(plVar6 == (long *)0x0)" ( (binary_expression "plVar6 == (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_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }" { comment (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x535,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "lVar5 = *plVar6;" (assignment_expression "lVar5 = *plVar6" identifier = (pointer_expression "*plVar6" * identifier)) ;) (expression_statement "iVar7 = (int)(plVar6[1] - lVar5 >> 3);" (assignment_expression "iVar7 = (int)(plVar6[1] - lVar5 >> 3)" identifier = (cast_expression "(int)(plVar6[1] - lVar5 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(plVar6[1] - lVar5 >> 3)" ( (binary_expression "plVar6[1] - lVar5 >> 3" (binary_expression "plVar6[1] - lVar5" (subscript_expression "plVar6[1]" identifier [ number_literal ]) - identifier) >> number_literal) )))) ;) (if_statement "if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }" { (expression_statement "lVar5 = *(long *)(lVar5 + lVar8);" (assignment_expression "lVar5 = *(long *)(lVar5 + lVar8)" identifier = (pointer_expression "*(long *)(lVar5 + lVar8)" * (cast_expression "(long *)(lVar5 + lVar8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + lVar8)" ( (binary_expression "lVar5 + lVar8" identifier + identifier) ))))) ;) (if_statement "if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }" if (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }" { (if_statement "if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }" if (parenthesized_expression "((*(byte *)(lVar5 + 0x3a) & 0x10) != 0)" ( (binary_expression "(*(byte *)(lVar5 + 0x3a) & 0x10) != 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x3a) & 0x10)" ( (binary_expression "*(byte *)(lVar5 + 0x3a) & 0x10" (pointer_expression "*(byte *)(lVar5 + 0x3a)" * (cast_expression "(byte *)(lVar5 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x3a)" ( (binary_expression "lVar5 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }" { (expression_statement "lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);" (assignment_expression "lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5)" identifier = (call_expression "FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x40),lVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) , identifier )))) ;) })) (if_statement "if (*(int *)(lVar5 + 0x1c) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }" if (parenthesized_expression "(*(int *)(lVar5 + 0x1c) == 0)" ( (binary_expression "*(int *)(lVar5 + 0x1c) == 0" (pointer_expression "*(int *)(lVar5 + 0x1c)" * (cast_expression "(int *)(lVar5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x1c)" ( (binary_expression "lVar5 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }" { comment (expression_statement "FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");" (call_expression "FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index")" identifier (argument_list "("../../gold/symtab.h",0x180,"symtab_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""symtab_index"" " string_content ") ))) ;) })) (expression_statement "iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);" (assignment_expression "iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1)" identifier = (binary_expression "iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1)" identifier + (call_expression "(uint)(*(int *)(lVar5 + 0x1c) != -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(lVar5 + 0x1c) != -1)" ( (binary_expression "*(int *)(lVar5 + 0x1c) != -1" (pointer_expression "*(int *)(lVar5 + 0x1c)" * (cast_expression "(int *)(lVar5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x1c)" ( (binary_expression "lVar5 + 0x1c" identifier + number_literal) )))) != number_literal) ))))) ;) })) (if_statement "if ((ulong)(iVar7 - 1) << 3 == lVar8) break;" if (parenthesized_expression "((ulong)(iVar7 - 1) << 3 == lVar8)" ( (binary_expression "(ulong)(iVar7 - 1) << 3 == lVar8" (binary_expression "(ulong)(iVar7 - 1) << 3" (call_expression "(ulong)(iVar7 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar7 - 1)" ( (binary_expression "iVar7 - 1" identifier - number_literal) ))) << number_literal) == identifier) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = *plVar6;" (assignment_expression "lVar5 = *plVar6" identifier = (pointer_expression "*plVar6" * identifier)) ;) (expression_statement "lVar8 = lVar8 + 8;" (assignment_expression "lVar8 = lVar8 + 8" identifier = (binary_expression "lVar8 + 8" identifier + number_literal)) ;) })) (expression_statement "uVar13 = uVar13 + iVar11 * 4;" (assignment_expression "uVar13 = uVar13 + iVar11 * 4" identifier = (binary_expression "uVar13 + iVar11 * 4" identifier + (binary_expression "iVar11 * 4" identifier * number_literal))) ;) })) (break_statement "break;" break ;)) (case_statement "case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;" case number_literal : (expression_statement "lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();" (assignment_expression "lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))()" identifier = (call_expression "(**(code **)(*(long *)*plVar12 + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)*plVar12 + 0x18))" ( (pointer_expression "**(code **)(*(long *)*plVar12 + 0x18)" * (pointer_expression "*(code **)(*(long *)*plVar12 + 0x18)" * (cast_expression "(code **)(*(long *)*plVar12 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar12 + 0x18)" ( (binary_expression "*(long *)*plVar12 + 0x18" (pointer_expression "*(long *)*plVar12" * (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (lVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }" { comment (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x510,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "*(int *)(*plVar12 + 0x18) = iVar7;" (assignment_expression "*(int *)(*plVar12 + 0x18) = iVar7" (pointer_expression "*(int *)(*plVar12 + 0x18)" * (cast_expression "(int *)(*plVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar12 + 0x18)" ( (binary_expression "*plVar12 + 0x18" (pointer_expression "*plVar12" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;" (assignment_expression "uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4" identifier = (binary_expression "iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4" (binary_expression "iVar7 + 4" identifier + number_literal) + (binary_expression "(int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4" (cast_expression "(int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3)" ( (binary_expression "*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3" (binary_expression "*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38)" (pointer_expression "*(long *)(lVar5 + 0x40)" * (cast_expression "(long *)(lVar5 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x40)" ( (binary_expression "lVar5 + 0x40" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar5 + 0x38)" * (cast_expression "(long *)(lVar5 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) ))))) >> number_literal) ))) * number_literal))) ;)) })) (if_statement "if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }" if (parenthesized_expression "((uVar13 & 4) != 0)" ( (binary_expression "(uVar13 & 4) != 0" (parenthesized_expression "(uVar13 & 4)" ( (binary_expression "uVar13 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar13 = uVar13 + 4;\n      }" { (expression_statement "uVar13 = uVar13 + 4;" (assignment_expression "uVar13 = uVar13 + 4" identifier = (binary_expression "uVar13 + 4" identifier + number_literal)) ;) })) (expression_statement "uVar14 = (ulong)uVar13;" (assignment_expression "uVar14 = (ulong)uVar13" identifier = (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "plVar12 = plVar12 + 1;" (assignment_expression "plVar12 = plVar12 + 1" identifier = (binary_expression "plVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)plVar2[1] != plVar12)" ( (binary_expression "(long *)plVar2[1] != plVar12" (cast_expression "(long *)plVar2[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "bVar1 = *(byte *)(param_1 + 0x20);" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x20)" identifier = (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }" if (parenthesized_expression "(((bVar1 & 2) != 0) || ((bVar1 & 8) != 0))" ( (binary_expression "((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)" (parenthesized_expression "((bVar1 & 2) != 0)" ( (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((bVar1 & 8) != 0)" ( (binary_expression "(bVar1 & 8) != 0" (parenthesized_expression "(bVar1 & 8)" ( (binary_expression "bVar1 & 8" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }" { comment (expression_statement "FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");" (call_expression "FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size")" identifier (argument_list "("../../gold/output.h",0x218,"set_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_data_size"" " string_content ") ))) ;) })) (expression_statement "*(ulong *)(param_1 + 0x10) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x10) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x10)" * (cast_expression "(ulong *)(param_1 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(param_1 + 0x20) = bVar1 | 2;" (assignment_expression "*(byte *)(param_1 + 0x20) = bVar1 | 2" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "bVar1 | 2" identifier | number_literal)) ;) (if_statement "if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }" if (parenthesized_expression "((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar2[0xc] + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar2[0xc] + 0x20) & 2)" ( (binary_expression "*(byte *)(plVar2[0xc] + 0x20) & 2" (pointer_expression "*(byte *)(plVar2[0xc] + 0x20)" * (cast_expression "(byte *)(plVar2[0xc] + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[0xc] + 0x20)" ( (binary_expression "plVar2[0xc] + 0x20" (subscript_expression "plVar2[0xc]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }" { (expression_statement "*(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;" (assignment_expression "*(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2" (pointer_expression "*(ulong *)(plVar2[0xc] + 0x10)" * (cast_expression "(ulong *)(plVar2[0xc] + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[0xc] + 0x10)" ( (binary_expression "plVar2[0xc] + 0x10" (subscript_expression "plVar2[0xc]" identifier [ number_literal ]) + number_literal) )))) = (binary_expression "(ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2" (binary_expression "(ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(*(long *)(param_1 + 0x40) + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x40) + 0x18)" ( (binary_expression "*(long *)(param_1 + 0x40) + 0x18" (pointer_expression "*(long *)(param_1 + 0x40)" * (cast_expression "(long *)(param_1 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) + number_literal) )))) << number_literal)) ;) (if_statement "if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }" if (parenthesized_expression "((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar2[0xd] + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar2[0xd] + 0x20) & 2)" ( (binary_expression "*(byte *)(plVar2[0xd] + 0x20) & 2" (pointer_expression "*(byte *)(plVar2[0xd] + 0x20)" * (cast_expression "(byte *)(plVar2[0xd] + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[0xd] + 0x20)" ( (binary_expression "plVar2[0xd] + 0x20" (subscript_expression "plVar2[0xd]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }" { (expression_statement "*(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);" (assignment_expression "*(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4)" (pointer_expression "*(ulong *)(plVar2[0xd] + 0x10)" * (cast_expression "(ulong *)(plVar2[0xd] + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[0xd] + 0x10)" ( (binary_expression "plVar2[0xd] + 0x10" (subscript_expression "plVar2[0xd]" identifier [ number_literal ]) + number_literal) )))) = (call_expression "(ulong)(uint)((int)plVar2[0xf] << 4)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "((int)plVar2[0xf] << 4)" ( (binary_expression "(int)plVar2[0xf] << 4" (cast_expression "(int)plVar2[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar2[0xf]" identifier [ number_literal ])) << number_literal) )))) ;) (expression_statement "plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);" (assignment_expression "plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar12 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }" if (parenthesized_expression "(plVar12 == (long *)0x0)" ( (binary_expression "plVar12 == (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_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }" { comment (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_0016cdf0("../../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 "iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);" (assignment_expression "iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12)" identifier = (call_expression "(**(code **)(*plVar12 + 0x188))(plVar12)" (parenthesized_expression "(**(code **)(*plVar12 + 0x188))" ( (pointer_expression "**(code **)(*plVar12 + 0x188)" * (pointer_expression "*(code **)(*plVar12 + 0x188)" * (cast_expression "(code **)(*plVar12 + 0x188)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar12 + 0x188)" ( (binary_expression "*plVar12 + 0x188" (pointer_expression "*plVar12" * identifier) + number_literal) ))))) )) (argument_list "(plVar12)" ( identifier )))) ;) (expression_statement "iVar10 = (**(code **)(*plVar12 + 400))(plVar12);" (assignment_expression "iVar10 = (**(code **)(*plVar12 + 400))(plVar12)" identifier = (call_expression "(**(code **)(*plVar12 + 400))(plVar12)" (parenthesized_expression "(**(code **)(*plVar12 + 400))" ( (pointer_expression "**(code **)(*plVar12 + 400)" * (pointer_expression "*(code **)(*plVar12 + 400)" * (cast_expression "(code **)(*plVar12 + 400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar12 + 400)" ( (binary_expression "*plVar12 + 400" (pointer_expression "*plVar12" * identifier) + number_literal) ))))) )) (argument_list "(plVar12)" ( identifier )))) ;) (if_statement "if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }" if (parenthesized_expression "((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar2[0xe] + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar2[0xe] + 0x20) & 2)" ( (binary_expression "*(byte *)(plVar2[0xe] + 0x20) & 2" (pointer_expression "*(byte *)(plVar2[0xe] + 0x20)" * (cast_expression "(byte *)(plVar2[0xe] + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[0xe] + 0x20)" ( (binary_expression "plVar2[0xe] + 0x20" (subscript_expression "plVar2[0xe]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }" { (expression_statement "*(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);" (assignment_expression "*(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4)" (pointer_expression "*(ulong *)(plVar2[0xe] + 0x10)" * (cast_expression "(ulong *)(plVar2[0xe] + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[0xe] + 0x10)" ( (binary_expression "plVar2[0xe] + 0x10" (subscript_expression "plVar2[0xe]" identifier [ number_literal ]) + number_literal) )))) = (call_expression "(ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4)" ( (binary_expression "(iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4" (parenthesized_expression "(iVar9 + 0xbU & 0xfffffffc)" ( (binary_expression "iVar9 + 0xbU & 0xfffffffc" (binary_expression "iVar9 + 0xbU" identifier + number_literal) & number_literal) )) + (binary_expression "(iVar10 + iVar9 * 2) * 4" (parenthesized_expression "(iVar10 + iVar9 * 2)" ( (binary_expression "iVar10 + iVar9 * 2" identifier + (binary_expression "iVar9 * 2" identifier * number_literal)) )) * number_literal)) )))) ;) (return_statement "return;" return ;) })) })) })) comment (expression_statement "FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void set_final_data_size(Output_section_incremental_inputs<32,_false> *\n   this) */\n\nvoid __thiscall\ngold::Output_section_incremental_inputs<32,_false>::set_final_data_size\n          (Output_section_incremental_inputs<32,_false> *this)\n\n{\n  byte bVar1;\n  Incremental_inputs *pIVar2;\n  pointer ppIVar3;\n  Incremental_input_entry *pIVar4;\n  Target *pTVar5;\n  long lVar6;\n  int iVar7;\n  int iVar8;\n  long lVar9;\n  undefined4 extraout_var_00;\n  long *plVar10;\n  Symbol *from;\n  undefined4 extraout_var_01;\n  undefined4 extraout_var_02;\n  long lVar11;\n  uint uVar12;\n  uint uVar13;\n  pointer ppIVar14;\n  uint uVar15;\n  ulong uVar16;\n  undefined4 extraout_var;\n  \n  pIVar2 = this->inputs_;\n  ppIVar3 = (pIVar2->inputs_).\n            super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n            ._M_impl._M_finish;\n  ppIVar14 = (pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n             ._M_impl._M_start;\n  uVar16 = (ulong)((int)((long)ppIVar3 - (long)ppIVar14 >> 3) * 0x18 + 0x10);\n  if (ppIVar3 != ppIVar14) {\n    uVar13 = 0;\n    uVar12 = 0x10;\n    do {\n      pIVar4 = *ppIVar14;\n      pIVar4->file_index_ = uVar13;\n      uVar13 = uVar13 + 1;\n      pIVar4->offset_ = uVar12;\n      uVar12 = uVar12 + 0x18;\n      iVar7 = (*pIVar4->_vptr_Incremental_input_entry[2])();\n      uVar15 = (uint)uVar16;\n      switch(iVar7) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[4])();\n        lVar9 = CONCAT44(extraout_var_01,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar10 = *(long **)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        lVar11 = *(long *)(lVar9 + 0x50);\n        lVar6 = *(long *)(lVar9 + 0x48);\n        plVar10 = (long *)(**(code **)(*plVar10 + 0xe8))();\n        uVar15 = uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4 +\n                 (int)(plVar10[1] - *plVar10 >> 3) * 0x14;\n        break;\n      case 3:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[6])();\n        lVar9 = CONCAT44(extraout_var_02,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar11 = *(long *)(lVar9 + 0x40);\n        lVar6 = *(long *)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8 +\n                 ((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)) * 4;\n        break;\n      case 4:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[5])();\n        if (CONCAT44(extraout_var_00,iVar7) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar9 = **(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8;\n        plVar10 = (long *)(**(code **)(lVar9 + 0xe8))();\n        if (plVar10 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar9 = *plVar10;\n        iVar7 = (int)(plVar10[1] - lVar9 >> 3);\n        if (iVar7 != 0) {\n          iVar8 = 0;\n          lVar11 = 0;\n          while( true ) {\n            from = *(Symbol **)(lVar9 + lVar11);\n            if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;\n            lVar9 = *plVar10;\n            lVar11 = lVar11 + 8;\n          }\n          uVar15 = uVar15 + iVar8 * 4;\n        }\n        break;\n      case 5:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[3])();\n        lVar9 = CONCAT44(extraout_var,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 4 + (int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4;\n      }\n      if ((uVar15 & 4) != 0) {\n        uVar15 = uVar15 + 4;\n      }\n      uVar16 = (ulong)uVar15;\n      ppIVar14 = ppIVar14 + 1;\n    } while ((pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n             ._M_impl._M_finish != ppIVar14);\n  }\n  bVar1 = (this->super_Output_section_data).super_Output_data.field_0x20;\n  if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x218,"set_data_size");\n  }\n  (this->super_Output_section_data).super_Output_data.data_size_ = uVar16;\n  (this->super_Output_section_data).super_Output_data.field_0x20 = bVar1 | 2;\n  if (((pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n       super_Output_data.field_0x20 & 2) == 0) {\n    (pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n    super_Output_data.data_size_ = (ulong)this->symtab_->output_count_ << 2;\n    if (((pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n         super_Output_data.field_0x20 & 2) == 0) {\n      (pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n      super_Output_data.data_size_ = (ulong)(pIVar2->reloc_count_ << 4);\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar7 = (**(code **)(*(long *)pTVar5 + 0x188))(pTVar5);\n      iVar8 = (**(code **)(*(long *)pTVar5 + 400))(pTVar5);\n      if (((pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n           super_Output_data.field_0x20 & 2) == 0) {\n        (pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n        super_Output_data.data_size_ =\n             (ulong)((iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4);\n        return;\n      }\n    }\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n}\n\n" comment comment (declaration "void __thiscall\ngold::Output_section_incremental_inputs<32,_false>::set_final_data_size\n          (Output_section_incremental_inputs<32,_false> *this)\n\n{\n  byte bVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>::set_final_data_size\n          (Output_section_incremental_inputs<32,_false> *this)\n\n{\n  byte" identifier > : : (function_declarator "set_final_data_size\n          (Output_section_incremental_inputs<32,_false> *this)" identifier (parameter_list "(Output_section_incremental_inputs<32,_false> *this)" ( (parameter_declaration "Output_section_incremental_inputs" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) ))) { identifier) identifier ;) (declaration "Incremental_inputs *pIVar2;" type_identifier (pointer_declarator "*pIVar2" * identifier) ;) (declaration "pointer ppIVar3;" type_identifier identifier ;) (declaration "Incremental_input_entry *pIVar4;" type_identifier (pointer_declarator "*pIVar4" * identifier) ;) (declaration "Target *pTVar5;" type_identifier (pointer_declarator "*pTVar5" * identifier) ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 extraout_var_00;" type_identifier identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "Symbol *from;" type_identifier (pointer_declarator "*from" * identifier) ;) (declaration "undefined4 extraout_var_01;" type_identifier identifier ;) (declaration "undefined4 extraout_var_02;" type_identifier identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "pointer ppIVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (expression_statement "pIVar2 = this->inputs_;" (assignment_expression "pIVar2 = this->inputs_" identifier = (field_expression "this->inputs_" identifier -> field_identifier)) ;) (expression_statement "ppIVar3 = (pIVar2->inputs_).\n            super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n            ._M_impl._M_finish;" (field_expression "ppIVar3 = (pIVar2->inputs_).\n            super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n            ._M_impl._M_finish" (field_expression "ppIVar3 = (pIVar2->inputs_).\n            super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n            ._M_impl" (binary_expression "ppIVar3 = (pIVar2->inputs_).\n            super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_" (binary_expression "ppIVar3 = (pIVar2->inputs_).\n            super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold" (binary_expression "ppIVar3 = (pIVar2->inputs_).\n            super__Vector_base<gold::Incremental_input_entry*,_std" (assignment_expression "ppIVar3 = (pIVar2->inputs_).\n            super__Vector_base<gold" identifier = (binary_expression "(pIVar2->inputs_).\n            super__Vector_base<gold" (field_expression "(pIVar2->inputs_).\n            super__Vector_base" (parenthesized_expression "(pIVar2->inputs_)" ( (field_expression "pIVar2->inputs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Incremental_input_entry" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Incremental_input_entry" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppIVar14 = (pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n             ._M_impl._M_start;" (field_expression "ppIVar14 = (pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n             ._M_impl._M_start" (field_expression "ppIVar14 = (pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n             ._M_impl" (binary_expression "ppIVar14 = (pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_" (binary_expression "ppIVar14 = (pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold" (binary_expression "ppIVar14 = (pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std" (assignment_expression "ppIVar14 = (pIVar2->inputs_).\n             super__Vector_base<gold" identifier = (binary_expression "(pIVar2->inputs_).\n             super__Vector_base<gold" (field_expression "(pIVar2->inputs_).\n             super__Vector_base" (parenthesized_expression "(pIVar2->inputs_)" ( (field_expression "pIVar2->inputs_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Incremental_input_entry" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Incremental_input_entry" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "uVar16 = (ulong)((int)((long)ppIVar3 - (long)ppIVar14 >> 3) * 0x18 + 0x10);" (assignment_expression "uVar16 = (ulong)((int)((long)ppIVar3 - (long)ppIVar14 >> 3) * 0x18 + 0x10)" identifier = (call_expression "(ulong)((int)((long)ppIVar3 - (long)ppIVar14 >> 3) * 0x18 + 0x10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)((long)ppIVar3 - (long)ppIVar14 >> 3) * 0x18 + 0x10)" ( (binary_expression "(int)((long)ppIVar3 - (long)ppIVar14 >> 3) * 0x18 + 0x10" (binary_expression "(int)((long)ppIVar3 - (long)ppIVar14 >> 3) * 0x18" (cast_expression "(int)((long)ppIVar3 - (long)ppIVar14 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((long)ppIVar3 - (long)ppIVar14 >> 3)" ( (binary_expression "(long)ppIVar3 - (long)ppIVar14 >> 3" (binary_expression "(long)ppIVar3 - (long)ppIVar14" (cast_expression "(long)ppIVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)ppIVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) * number_literal) + number_literal) )))) ;) (if_statement "if (ppIVar3 != ppIVar14) {\n    uVar13 = 0;\n    uVar12 = 0x10;\n    do {\n      pIVar4 = *ppIVar14;\n      pIVar4->file_index_ = uVar13;\n      uVar13 = uVar13 + 1;\n      pIVar4->offset_ = uVar12;\n      uVar12 = uVar12 + 0x18;\n      iVar7 = (*pIVar4->_vptr_Incremental_input_entry[2])();\n      uVar15 = (uint)uVar16;\n      switch(iVar7) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[4])();\n        lVar9 = CONCAT44(extraout_var_01,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar10 = *(long **)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        lVar11 = *(long *)(lVar9 + 0x50);\n        lVar6 = *(long *)(lVar9 + 0x48);\n        plVar10 = (long *)(**(code **)(*plVar10 + 0xe8))();\n        uVar15 = uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4 +\n                 (int)(plVar10[1] - *plVar10 >> 3) * 0x14;\n        break;\n      case 3:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[6])();\n        lVar9 = CONCAT44(extraout_var_02,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar11 = *(long *)(lVar9 + 0x40);\n        lVar6 = *(long *)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8 +\n                 ((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)) * 4;\n        break;\n      case 4:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[5])();\n        if (CONCAT44(extraout_var_00,iVar7) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar9 = **(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8;\n        plVar10 = (long *)(**(code **)(lVar9 + 0xe8))();\n        if (plVar10 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar9 = *plVar10;\n        iVar7 = (int)(plVar10[1] - lVar9 >> 3);\n        if (iVar7 != 0) {\n          iVar8 = 0;\n          lVar11 = 0;\n          while( true ) {\n            from = *(Symbol **)(lVar9 + lVar11);\n            if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;\n            lVar9 = *plVar10;\n            lVar11 = lVar11 + 8;\n          }\n          uVar15 = uVar15 + iVar8 * 4;\n        }\n        break;\n      case 5:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[3])();\n        lVar9 = CONCAT44(extraout_var,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 4 + (int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4;\n      }\n      if ((uVar15 & 4) != 0) {\n        uVar15 = uVar15 + 4;\n      }\n      uVar16 = (ulong)uVar15;\n      ppIVar14 = ppIVar14 + 1;\n    } while ((pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n             ._M_impl._M_finish != ppIVar14);\n  }" if (parenthesized_expression "(ppIVar3 != ppIVar14)" ( (binary_expression "ppIVar3 != ppIVar14" identifier != identifier) )) (compound_statement "{\n    uVar13 = 0;\n    uVar12 = 0x10;\n    do {\n      pIVar4 = *ppIVar14;\n      pIVar4->file_index_ = uVar13;\n      uVar13 = uVar13 + 1;\n      pIVar4->offset_ = uVar12;\n      uVar12 = uVar12 + 0x18;\n      iVar7 = (*pIVar4->_vptr_Incremental_input_entry[2])();\n      uVar15 = (uint)uVar16;\n      switch(iVar7) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[4])();\n        lVar9 = CONCAT44(extraout_var_01,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar10 = *(long **)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        lVar11 = *(long *)(lVar9 + 0x50);\n        lVar6 = *(long *)(lVar9 + 0x48);\n        plVar10 = (long *)(**(code **)(*plVar10 + 0xe8))();\n        uVar15 = uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4 +\n                 (int)(plVar10[1] - *plVar10 >> 3) * 0x14;\n        break;\n      case 3:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[6])();\n        lVar9 = CONCAT44(extraout_var_02,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar11 = *(long *)(lVar9 + 0x40);\n        lVar6 = *(long *)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8 +\n                 ((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)) * 4;\n        break;\n      case 4:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[5])();\n        if (CONCAT44(extraout_var_00,iVar7) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar9 = **(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8;\n        plVar10 = (long *)(**(code **)(lVar9 + 0xe8))();\n        if (plVar10 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar9 = *plVar10;\n        iVar7 = (int)(plVar10[1] - lVar9 >> 3);\n        if (iVar7 != 0) {\n          iVar8 = 0;\n          lVar11 = 0;\n          while( true ) {\n            from = *(Symbol **)(lVar9 + lVar11);\n            if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;\n            lVar9 = *plVar10;\n            lVar11 = lVar11 + 8;\n          }\n          uVar15 = uVar15 + iVar8 * 4;\n        }\n        break;\n      case 5:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[3])();\n        lVar9 = CONCAT44(extraout_var,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 4 + (int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4;\n      }\n      if ((uVar15 & 4) != 0) {\n        uVar15 = uVar15 + 4;\n      }\n      uVar16 = (ulong)uVar15;\n      ppIVar14 = ppIVar14 + 1;\n    } while ((pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n             ._M_impl._M_finish != ppIVar14);\n  }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = 0x10;" (assignment_expression "uVar12 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      pIVar4 = *ppIVar14;\n      pIVar4->file_index_ = uVar13;\n      uVar13 = uVar13 + 1;\n      pIVar4->offset_ = uVar12;\n      uVar12 = uVar12 + 0x18;\n      iVar7 = (*pIVar4->_vptr_Incremental_input_entry[2])();\n      uVar15 = (uint)uVar16;\n      switch(iVar7) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[4])();\n        lVar9 = CONCAT44(extraout_var_01,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar10 = *(long **)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        lVar11 = *(long *)(lVar9 + 0x50);\n        lVar6 = *(long *)(lVar9 + 0x48);\n        plVar10 = (long *)(**(code **)(*plVar10 + 0xe8))();\n        uVar15 = uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4 +\n                 (int)(plVar10[1] - *plVar10 >> 3) * 0x14;\n        break;\n      case 3:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[6])();\n        lVar9 = CONCAT44(extraout_var_02,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar11 = *(long *)(lVar9 + 0x40);\n        lVar6 = *(long *)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8 +\n                 ((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)) * 4;\n        break;\n      case 4:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[5])();\n        if (CONCAT44(extraout_var_00,iVar7) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar9 = **(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8;\n        plVar10 = (long *)(**(code **)(lVar9 + 0xe8))();\n        if (plVar10 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar9 = *plVar10;\n        iVar7 = (int)(plVar10[1] - lVar9 >> 3);\n        if (iVar7 != 0) {\n          iVar8 = 0;\n          lVar11 = 0;\n          while( true ) {\n            from = *(Symbol **)(lVar9 + lVar11);\n            if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;\n            lVar9 = *plVar10;\n            lVar11 = lVar11 + 8;\n          }\n          uVar15 = uVar15 + iVar8 * 4;\n        }\n        break;\n      case 5:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[3])();\n        lVar9 = CONCAT44(extraout_var,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 4 + (int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4;\n      }\n      if ((uVar15 & 4) != 0) {\n        uVar15 = uVar15 + 4;\n      }\n      uVar16 = (ulong)uVar15;\n      ppIVar14 = ppIVar14 + 1;\n    } while ((pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n             ._M_impl._M_finish != ppIVar14);" do (compound_statement "{\n      pIVar4 = *ppIVar14;\n      pIVar4->file_index_ = uVar13;\n      uVar13 = uVar13 + 1;\n      pIVar4->offset_ = uVar12;\n      uVar12 = uVar12 + 0x18;\n      iVar7 = (*pIVar4->_vptr_Incremental_input_entry[2])();\n      uVar15 = (uint)uVar16;\n      switch(iVar7) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[4])();\n        lVar9 = CONCAT44(extraout_var_01,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar10 = *(long **)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        lVar11 = *(long *)(lVar9 + 0x50);\n        lVar6 = *(long *)(lVar9 + 0x48);\n        plVar10 = (long *)(**(code **)(*plVar10 + 0xe8))();\n        uVar15 = uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4 +\n                 (int)(plVar10[1] - *plVar10 >> 3) * 0x14;\n        break;\n      case 3:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[6])();\n        lVar9 = CONCAT44(extraout_var_02,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar11 = *(long *)(lVar9 + 0x40);\n        lVar6 = *(long *)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8 +\n                 ((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)) * 4;\n        break;\n      case 4:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[5])();\n        if (CONCAT44(extraout_var_00,iVar7) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar9 = **(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8;\n        plVar10 = (long *)(**(code **)(lVar9 + 0xe8))();\n        if (plVar10 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar9 = *plVar10;\n        iVar7 = (int)(plVar10[1] - lVar9 >> 3);\n        if (iVar7 != 0) {\n          iVar8 = 0;\n          lVar11 = 0;\n          while( true ) {\n            from = *(Symbol **)(lVar9 + lVar11);\n            if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;\n            lVar9 = *plVar10;\n            lVar11 = lVar11 + 8;\n          }\n          uVar15 = uVar15 + iVar8 * 4;\n        }\n        break;\n      case 5:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[3])();\n        lVar9 = CONCAT44(extraout_var,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 4 + (int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4;\n      }\n      if ((uVar15 & 4) != 0) {\n        uVar15 = uVar15 + 4;\n      }\n      uVar16 = (ulong)uVar15;\n      ppIVar14 = ppIVar14 + 1;\n    }" { (expression_statement "pIVar4 = *ppIVar14;" (assignment_expression "pIVar4 = *ppIVar14" identifier = (pointer_expression "*ppIVar14" * identifier)) ;) (expression_statement "pIVar4->file_index_ = uVar13;" (assignment_expression "pIVar4->file_index_ = uVar13" (field_expression "pIVar4->file_index_" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "pIVar4->offset_ = uVar12;" (assignment_expression "pIVar4->offset_ = uVar12" (field_expression "pIVar4->offset_" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar12 = uVar12 + 0x18;" (assignment_expression "uVar12 = uVar12 + 0x18" identifier = (binary_expression "uVar12 + 0x18" identifier + number_literal)) ;) (expression_statement "iVar7 = (*pIVar4->_vptr_Incremental_input_entry[2])();" (assignment_expression "iVar7 = (*pIVar4->_vptr_Incremental_input_entry[2])()" identifier = (call_expression "(*pIVar4->_vptr_Incremental_input_entry[2])()" (parenthesized_expression "(*pIVar4->_vptr_Incremental_input_entry[2])" ( (pointer_expression "*pIVar4->_vptr_Incremental_input_entry[2]" * (subscript_expression "pIVar4->_vptr_Incremental_input_entry[2]" (field_expression "pIVar4->_vptr_Incremental_input_entry" identifier -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "uVar15 = (uint)uVar16;" (assignment_expression "uVar15 = (uint)uVar16" identifier = (cast_expression "(uint)uVar16" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (switch_statement "switch(iVar7) {\n      default:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[4])();\n        lVar9 = CONCAT44(extraout_var_01,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar10 = *(long **)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        lVar11 = *(long *)(lVar9 + 0x50);\n        lVar6 = *(long *)(lVar9 + 0x48);\n        plVar10 = (long *)(**(code **)(*plVar10 + 0xe8))();\n        uVar15 = uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4 +\n                 (int)(plVar10[1] - *plVar10 >> 3) * 0x14;\n        break;\n      case 3:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[6])();\n        lVar9 = CONCAT44(extraout_var_02,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar11 = *(long *)(lVar9 + 0x40);\n        lVar6 = *(long *)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8 +\n                 ((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)) * 4;\n        break;\n      case 4:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[5])();\n        if (CONCAT44(extraout_var_00,iVar7) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar9 = **(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8;\n        plVar10 = (long *)(**(code **)(lVar9 + 0xe8))();\n        if (plVar10 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar9 = *plVar10;\n        iVar7 = (int)(plVar10[1] - lVar9 >> 3);\n        if (iVar7 != 0) {\n          iVar8 = 0;\n          lVar11 = 0;\n          while( true ) {\n            from = *(Symbol **)(lVar9 + lVar11);\n            if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;\n            lVar9 = *plVar10;\n            lVar11 = lVar11 + 8;\n          }\n          uVar15 = uVar15 + iVar8 * 4;\n        }\n        break;\n      case 5:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[3])();\n        lVar9 = CONCAT44(extraout_var,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 4 + (int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4;\n      }" switch (parenthesized_expression "(iVar7)" ( identifier )) (compound_statement "{\n      default:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[4])();\n        lVar9 = CONCAT44(extraout_var_01,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar10 = *(long **)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        lVar11 = *(long *)(lVar9 + 0x50);\n        lVar6 = *(long *)(lVar9 + 0x48);\n        plVar10 = (long *)(**(code **)(*plVar10 + 0xe8))();\n        uVar15 = uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4 +\n                 (int)(plVar10[1] - *plVar10 >> 3) * 0x14;\n        break;\n      case 3:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[6])();\n        lVar9 = CONCAT44(extraout_var_02,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar11 = *(long *)(lVar9 + 0x40);\n        lVar6 = *(long *)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8 +\n                 ((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)) * 4;\n        break;\n      case 4:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[5])();\n        if (CONCAT44(extraout_var_00,iVar7) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar9 = **(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8;\n        plVar10 = (long *)(**(code **)(lVar9 + 0xe8))();\n        if (plVar10 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar9 = *plVar10;\n        iVar7 = (int)(plVar10[1] - lVar9 >> 3);\n        if (iVar7 != 0) {\n          iVar8 = 0;\n          lVar11 = 0;\n          while( true ) {\n            from = *(Symbol **)(lVar9 + lVar11);\n            if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;\n            lVar9 = *plVar10;\n            lVar11 = lVar11 + 8;\n          }\n          uVar15 = uVar15 + iVar8 * 4;\n        }\n        break;\n      case 5:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[3])();\n        lVar9 = CONCAT44(extraout_var,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 4 + (int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4;\n      }" { (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0x553,"set_final_data_size");" default : comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0x553,"set_final_data_size");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0x553,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x553,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;)) (case_statement "case 1:" case number_literal :) (case_statement "case 2:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[4])();\n        lVar9 = CONCAT44(extraout_var_01,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar10 = *(long **)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        lVar11 = *(long *)(lVar9 + 0x50);\n        lVar6 = *(long *)(lVar9 + 0x48);\n        plVar10 = (long *)(**(code **)(*plVar10 + 0xe8))();\n        uVar15 = uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4 +\n                 (int)(plVar10[1] - *plVar10 >> 3) * 0x14;\n        break;" case number_literal : (expression_statement "iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[4])();" (assignment_expression "iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[4])()" identifier = (call_expression "(*(*ppIVar14)->_vptr_Incremental_input_entry[4])()" (parenthesized_expression "(*(*ppIVar14)->_vptr_Incremental_input_entry[4])" ( (pointer_expression "*(*ppIVar14)->_vptr_Incremental_input_entry[4]" * (subscript_expression "(*ppIVar14)->_vptr_Incremental_input_entry[4]" (field_expression "(*ppIVar14)->_vptr_Incremental_input_entry" (parenthesized_expression "(*ppIVar14)" ( (pointer_expression "*ppIVar14" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "lVar9 = CONCAT44(extraout_var_01,iVar7);" (assignment_expression "lVar9 = CONCAT44(extraout_var_01,iVar7)" identifier = (call_expression "CONCAT44(extraout_var_01,iVar7)" identifier (argument_list "(extraout_var_01,iVar7)" ( identifier , identifier )))) ;) (if_statement "if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0x51c,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x51c,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "plVar10 = *(long **)(lVar9 + 0x38);" (assignment_expression "plVar10 = *(long **)(lVar9 + 0x38)" identifier = (pointer_expression "*(long **)(lVar9 + 0x38)" * (cast_expression "(long **)(lVar9 + 0x38)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "(*ppIVar14)->info_offset_ = uVar15;" (assignment_expression "(*ppIVar14)->info_offset_ = uVar15" (field_expression "(*ppIVar14)->info_offset_" (parenthesized_expression "(*ppIVar14)" ( (pointer_expression "*ppIVar14" * identifier) )) -> field_identifier) = identifier) ;) (expression_statement "lVar11 = *(long *)(lVar9 + 0x50);" (assignment_expression "lVar11 = *(long *)(lVar9 + 0x50)" identifier = (pointer_expression "*(long *)(lVar9 + 0x50)" * (cast_expression "(long *)(lVar9 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x50)" ( (binary_expression "lVar9 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "lVar6 = *(long *)(lVar9 + 0x48);" (assignment_expression "lVar6 = *(long *)(lVar9 + 0x48)" identifier = (pointer_expression "*(long *)(lVar9 + 0x48)" * (cast_expression "(long *)(lVar9 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x48)" ( (binary_expression "lVar9 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "plVar10 = (long *)(**(code **)(*plVar10 + 0xe8))();" (assignment_expression "plVar10 = (long *)(**(code **)(*plVar10 + 0xe8))()" identifier = (cast_expression "(long *)(**(code **)(*plVar10 + 0xe8))()" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar10 + 0xe8))()" (parenthesized_expression "(**(code **)(*plVar10 + 0xe8))" ( (pointer_expression "**(code **)(*plVar10 + 0xe8)" * (pointer_expression "*(code **)(*plVar10 + 0xe8)" * (cast_expression "(code **)(*plVar10 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar10 + 0xe8)" ( (binary_expression "*plVar10 + 0xe8" (pointer_expression "*plVar10" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar15 = uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4 +\n                 (int)(plVar10[1] - *plVar10 >> 3) * 0x14;" (assignment_expression "uVar15 = uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4 +\n                 (int)(plVar10[1] - *plVar10 >> 3) * 0x14" identifier = (binary_expression "uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4 +\n                 (int)(plVar10[1] - *plVar10 >> 3) * 0x14" (binary_expression "uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4" (binary_expression "uVar15 + 0x20 + (int)(lVar11 - lVar6 >> 3) * -0x55555550" (binary_expression "uVar15 + 0x20" identifier + number_literal) + (binary_expression "(int)(lVar11 - lVar6 >> 3) * -0x55555550" (cast_expression "(int)(lVar11 - lVar6 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar11 - lVar6 >> 3)" ( (binary_expression "lVar11 - lVar6 >> 3" (binary_expression "lVar11 - lVar6" identifier - identifier) >> number_literal) ))) * number_literal)) + (binary_expression "(int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3) * 4" (cast_expression "(int)(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3)" ( (binary_expression "*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60) >> 3" (binary_expression "*(long *)(lVar9 + 0x68) - *(long *)(lVar9 + 0x60)" (pointer_expression "*(long *)(lVar9 + 0x68)" * (cast_expression "(long *)(lVar9 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x68)" ( (binary_expression "lVar9 + 0x68" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar9 + 0x60)" * (cast_expression "(long *)(lVar9 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x60)" ( (binary_expression "lVar9 + 0x60" identifier + number_literal) ))))) >> number_literal) ))) * number_literal)) + (binary_expression "(int)(plVar10[1] - *plVar10 >> 3) * 0x14" (cast_expression "(int)(plVar10[1] - *plVar10 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(plVar10[1] - *plVar10 >> 3)" ( (binary_expression "plVar10[1] - *plVar10 >> 3" (binary_expression "plVar10[1] - *plVar10" (subscript_expression "plVar10[1]" identifier [ number_literal ]) - (pointer_expression "*plVar10" * identifier)) >> number_literal) ))) * number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[6])();\n        lVar9 = CONCAT44(extraout_var_02,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar11 = *(long *)(lVar9 + 0x40);\n        lVar6 = *(long *)(lVar9 + 0x38);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8 +\n                 ((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)) * 4;\n        break;" case number_literal : (expression_statement "iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[6])();" (assignment_expression "iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[6])()" identifier = (call_expression "(*(*ppIVar14)->_vptr_Incremental_input_entry[6])()" (parenthesized_expression "(*(*ppIVar14)->_vptr_Incremental_input_entry[6])" ( (pointer_expression "*(*ppIVar14)->_vptr_Incremental_input_entry[6]" * (subscript_expression "(*ppIVar14)->_vptr_Incremental_input_entry[6]" (field_expression "(*ppIVar14)->_vptr_Incremental_input_entry" (parenthesized_expression "(*ppIVar14)" ( (pointer_expression "*ppIVar14" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "lVar9 = CONCAT44(extraout_var_02,iVar7);" (assignment_expression "lVar9 = CONCAT44(extraout_var_02,iVar7)" identifier = (call_expression "CONCAT44(extraout_var_02,iVar7)" identifier (argument_list "(extraout_var_02,iVar7)" ( identifier , identifier )))) ;) (if_statement "if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0x548,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x548,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "lVar11 = *(long *)(lVar9 + 0x40);" (assignment_expression "lVar11 = *(long *)(lVar9 + 0x40)" identifier = (pointer_expression "*(long *)(lVar9 + 0x40)" * (cast_expression "(long *)(lVar9 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x40)" ( (binary_expression "lVar9 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "lVar6 = *(long *)(lVar9 + 0x38);" (assignment_expression "lVar6 = *(long *)(lVar9 + 0x38)" identifier = (pointer_expression "*(long *)(lVar9 + 0x38)" * (cast_expression "(long *)(lVar9 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "(*ppIVar14)->info_offset_ = uVar15;" (assignment_expression "(*ppIVar14)->info_offset_ = uVar15" (field_expression "(*ppIVar14)->info_offset_" (parenthesized_expression "(*ppIVar14)" ( (pointer_expression "*ppIVar14" * identifier) )) -> field_identifier) = identifier) ;) (expression_statement "uVar15 = uVar15 + 8 +\n                 ((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)) * 4;" (assignment_expression "uVar15 = uVar15 + 8 +\n                 ((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)) * 4" identifier = (binary_expression "uVar15 + 8 +\n                 ((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)) * 4" (binary_expression "uVar15 + 8" identifier + number_literal) + (binary_expression "((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)) * 4" (parenthesized_expression "((int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3))" ( (binary_expression "(int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3) +\n                 (int)(lVar11 - lVar6 >> 3)" (cast_expression "(int)(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3)" ( (binary_expression "*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50) >> 3" (binary_expression "*(long *)(lVar9 + 0x58) - *(long *)(lVar9 + 0x50)" (pointer_expression "*(long *)(lVar9 + 0x58)" * (cast_expression "(long *)(lVar9 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x58)" ( (binary_expression "lVar9 + 0x58" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar9 + 0x50)" * (cast_expression "(long *)(lVar9 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x50)" ( (binary_expression "lVar9 + 0x50" identifier + number_literal) ))))) >> number_literal) ))) + (cast_expression "(int)(lVar11 - lVar6 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar11 - lVar6 >> 3)" ( (binary_expression "lVar11 - lVar6 >> 3" (binary_expression "lVar11 - lVar6" identifier - identifier) >> number_literal) )))) )) * number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[5])();\n        if (CONCAT44(extraout_var_00,iVar7) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar9 = **(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40);\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 8;\n        plVar10 = (long *)(**(code **)(lVar9 + 0xe8))();\n        if (plVar10 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar9 = *plVar10;\n        iVar7 = (int)(plVar10[1] - lVar9 >> 3);\n        if (iVar7 != 0) {\n          iVar8 = 0;\n          lVar11 = 0;\n          while( true ) {\n            from = *(Symbol **)(lVar9 + lVar11);\n            if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;\n            lVar9 = *plVar10;\n            lVar11 = lVar11 + 8;\n          }\n          uVar15 = uVar15 + iVar8 * 4;\n        }\n        break;" case number_literal : (expression_statement "iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[5])();" (assignment_expression "iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[5])()" identifier = (call_expression "(*(*ppIVar14)->_vptr_Incremental_input_entry[5])()" (parenthesized_expression "(*(*ppIVar14)->_vptr_Incremental_input_entry[5])" ( (pointer_expression "*(*ppIVar14)->_vptr_Incremental_input_entry[5]" * (subscript_expression "(*ppIVar14)->_vptr_Incremental_input_entry[5]" (field_expression "(*ppIVar14)->_vptr_Incremental_input_entry" (parenthesized_expression "(*ppIVar14)" ( (pointer_expression "*ppIVar14" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (if_statement "if (CONCAT44(extraout_var_00,iVar7) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }" if (parenthesized_expression "(CONCAT44(extraout_var_00,iVar7) == 0)" ( (binary_expression "CONCAT44(extraout_var_00,iVar7) == 0" (call_expression "CONCAT44(extraout_var_00,iVar7)" identifier (argument_list "(extraout_var_00,iVar7)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0x52f,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x52f,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "lVar9 = **(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40);" (assignment_expression "lVar9 = **(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40)" identifier = (pointer_expression "**(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40)" * (pointer_expression "*(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40)" * (cast_expression "(long **)(CONCAT44(extraout_var_00,iVar7) + 0x40)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(CONCAT44(extraout_var_00,iVar7) + 0x40)" ( (binary_expression "CONCAT44(extraout_var_00,iVar7) + 0x40" (call_expression "CONCAT44(extraout_var_00,iVar7)" identifier (argument_list "(extraout_var_00,iVar7)" ( identifier , identifier ))) + number_literal) )))))) ;) (expression_statement "(*ppIVar14)->info_offset_ = uVar15;" (assignment_expression "(*ppIVar14)->info_offset_ = uVar15" (field_expression "(*ppIVar14)->info_offset_" (parenthesized_expression "(*ppIVar14)" ( (pointer_expression "*ppIVar14" * identifier) )) -> field_identifier) = identifier) ;) (expression_statement "uVar15 = uVar15 + 8;" (assignment_expression "uVar15 = uVar15 + 8" identifier = (binary_expression "uVar15 + 8" identifier + number_literal)) ;) (expression_statement "plVar10 = (long *)(**(code **)(lVar9 + 0xe8))();" (assignment_expression "plVar10 = (long *)(**(code **)(lVar9 + 0xe8))()" identifier = (cast_expression "(long *)(**(code **)(lVar9 + 0xe8))()" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(lVar9 + 0xe8))()" (parenthesized_expression "(**(code **)(lVar9 + 0xe8))" ( (pointer_expression "**(code **)(lVar9 + 0xe8)" * (pointer_expression "*(code **)(lVar9 + 0xe8)" * (cast_expression "(code **)(lVar9 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0xe8)" ( (binary_expression "lVar9 + 0xe8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (plVar10 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }" if (parenthesized_expression "(plVar10 == (long *)0x0)" ( (binary_expression "plVar10 == (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          do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0x535,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x535,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "lVar9 = *plVar10;" (assignment_expression "lVar9 = *plVar10" identifier = (pointer_expression "*plVar10" * identifier)) ;) (expression_statement "iVar7 = (int)(plVar10[1] - lVar9 >> 3);" (assignment_expression "iVar7 = (int)(plVar10[1] - lVar9 >> 3)" identifier = (cast_expression "(int)(plVar10[1] - lVar9 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(plVar10[1] - lVar9 >> 3)" ( (binary_expression "plVar10[1] - lVar9 >> 3" (binary_expression "plVar10[1] - lVar9" (subscript_expression "plVar10[1]" identifier [ number_literal ]) - identifier) >> number_literal) )))) ;) (if_statement "if (iVar7 != 0) {\n          iVar8 = 0;\n          lVar11 = 0;\n          while( true ) {\n            from = *(Symbol **)(lVar9 + lVar11);\n            if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;\n            lVar9 = *plVar10;\n            lVar11 = lVar11 + 8;\n          }\n          uVar15 = uVar15 + iVar8 * 4;\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar8 = 0;\n          lVar11 = 0;\n          while( true ) {\n            from = *(Symbol **)(lVar9 + lVar11);\n            if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;\n            lVar9 = *plVar10;\n            lVar11 = lVar11 + 8;\n          }\n          uVar15 = uVar15 + iVar8 * 4;\n        }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n            from = *(Symbol **)(lVar9 + lVar11);\n            if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;\n            lVar9 = *plVar10;\n            lVar11 = lVar11 + 8;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            from = *(Symbol **)(lVar9 + lVar11);\n            if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar11) break;\n            lVar9 = *plVar10;\n            lVar11 = lVar11 + 8;\n          }" { (expression_statement "from = *(Symbol **)(lVar9 + lVar11);" (assignment_expression "from = *(Symbol **)(lVar9 + lVar11)" identifier = (pointer_expression "*(Symbol **)(lVar9 + lVar11)" * (cast_expression "(Symbol **)(lVar9 + lVar11)" ( (type_descriptor "Symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + lVar11)" ( (binary_expression "lVar9 + lVar11" identifier + identifier) ))))) ;) (if_statement "if (from != (Symbol *)0x0) {\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }" if (parenthesized_expression "(from != (Symbol *)0x0)" ( (binary_expression "from != (Symbol *)0x0" identifier != (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }\n              if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);\n            }" { (if_statement "if ((from->field_0x3a & 0x10) != 0) {\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }" if (parenthesized_expression "((from->field_0x3a & 0x10) != 0)" ( (binary_expression "(from->field_0x3a & 0x10) != 0" (parenthesized_expression "(from->field_0x3a & 0x10)" ( (binary_expression "from->field_0x3a & 0x10" (field_expression "from->field_0x3a" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                from = Symbol_table::resolve_forwards(this->symtab_,from);\n              }" { (ERROR "from = Symbol_table::" (assignment_expression "from = Symbol_table" identifier = identifier) : :) (expression_statement "resolve_forwards(this->symtab_,from);" (call_expression "resolve_forwards(this->symtab_,from)" identifier (argument_list "(this->symtab_,from)" ( (field_expression "this->symtab_" identifier -> field_identifier) , identifier ))) ;) })) (if_statement "if (from->symtab_index_ == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }" if (parenthesized_expression "(from->symtab_index_ == 0)" ( (binary_expression "from->symtab_index_ == 0" (field_expression "from->symtab_index_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");\n              }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0x180,"symtab_index")" identifier (argument_list "("../../gold/symtab.h",0x180,"symtab_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""symtab_index"" " string_content ") ))) ;) })) (expression_statement "iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff);" (assignment_expression "iVar8 = iVar8 + (uint)(from->symtab_index_ != 0xffffffff)" identifier = (binary_expression "iVar8 + (uint)(from->symtab_index_ != 0xffffffff)" identifier + (call_expression "(uint)(from->symtab_index_ != 0xffffffff)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(from->symtab_index_ != 0xffffffff)" ( (binary_expression "from->symtab_index_ != 0xffffffff" (field_expression "from->symtab_index_" identifier -> field_identifier) != number_literal) ))))) ;) })) (if_statement "if ((ulong)(iVar7 - 1) << 3 == lVar11) break;" if (parenthesized_expression "((ulong)(iVar7 - 1) << 3 == lVar11)" ( (binary_expression "(ulong)(iVar7 - 1) << 3 == lVar11" (binary_expression "(ulong)(iVar7 - 1) << 3" (call_expression "(ulong)(iVar7 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar7 - 1)" ( (binary_expression "iVar7 - 1" identifier - number_literal) ))) << number_literal) == identifier) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = *plVar10;" (assignment_expression "lVar9 = *plVar10" identifier = (pointer_expression "*plVar10" * identifier)) ;) (expression_statement "lVar11 = lVar11 + 8;" (assignment_expression "lVar11 = lVar11 + 8" identifier = (binary_expression "lVar11 + 8" identifier + number_literal)) ;) })) (expression_statement "uVar15 = uVar15 + iVar8 * 4;" (assignment_expression "uVar15 = uVar15 + iVar8 * 4" identifier = (binary_expression "uVar15 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal))) ;) })) (break_statement "break;" break ;)) (case_statement "case 5:\n        iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[3])();\n        lVar9 = CONCAT44(extraout_var,iVar7);\n        if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        (*ppIVar14)->info_offset_ = uVar15;\n        uVar15 = uVar15 + 4 + (int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4;" case number_literal : (expression_statement "iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[3])();" (assignment_expression "iVar7 = (*(*ppIVar14)->_vptr_Incremental_input_entry[3])()" identifier = (call_expression "(*(*ppIVar14)->_vptr_Incremental_input_entry[3])()" (parenthesized_expression "(*(*ppIVar14)->_vptr_Incremental_input_entry[3])" ( (pointer_expression "*(*ppIVar14)->_vptr_Incremental_input_entry[3]" * (subscript_expression "(*ppIVar14)->_vptr_Incremental_input_entry[3]" (field_expression "(*ppIVar14)->_vptr_Incremental_input_entry" (parenthesized_expression "(*ppIVar14)" ( (pointer_expression "*ppIVar14" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "lVar9 = CONCAT44(extraout_var,iVar7);" (assignment_expression "lVar9 = CONCAT44(extraout_var,iVar7)" identifier = (call_expression "CONCAT44(extraout_var,iVar7)" identifier (argument_list "(extraout_var,iVar7)" ( identifier , identifier )))) ;) (if_statement "if (lVar9 == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0x510,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x510,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "(*ppIVar14)->info_offset_ = uVar15;" (assignment_expression "(*ppIVar14)->info_offset_ = uVar15" (field_expression "(*ppIVar14)->info_offset_" (parenthesized_expression "(*ppIVar14)" ( (pointer_expression "*ppIVar14" * identifier) )) -> field_identifier) = identifier) ;) (expression_statement "uVar15 = uVar15 + 4 + (int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4;" (assignment_expression "uVar15 = uVar15 + 4 + (int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4" identifier = (binary_expression "uVar15 + 4 + (int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4" (binary_expression "uVar15 + 4" identifier + number_literal) + (binary_expression "(int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3) * 4" (cast_expression "(int)(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3)" ( (binary_expression "*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38) >> 3" (binary_expression "*(long *)(lVar9 + 0x40) - *(long *)(lVar9 + 0x38)" (pointer_expression "*(long *)(lVar9 + 0x40)" * (cast_expression "(long *)(lVar9 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x40)" ( (binary_expression "lVar9 + 0x40" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar9 + 0x38)" * (cast_expression "(long *)(lVar9 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) ))))) >> number_literal) ))) * number_literal))) ;)) })) (if_statement "if ((uVar15 & 4) != 0) {\n        uVar15 = uVar15 + 4;\n      }" if (parenthesized_expression "((uVar15 & 4) != 0)" ( (binary_expression "(uVar15 & 4) != 0" (parenthesized_expression "(uVar15 & 4)" ( (binary_expression "uVar15 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar15 = uVar15 + 4;\n      }" { (expression_statement "uVar15 = uVar15 + 4;" (assignment_expression "uVar15 = uVar15 + 4" identifier = (binary_expression "uVar15 + 4" identifier + number_literal)) ;) })) (expression_statement "uVar16 = (ulong)uVar15;" (assignment_expression "uVar16 = (ulong)uVar15" identifier = (cast_expression "(ulong)uVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "ppIVar14 = ppIVar14 + 1;" (assignment_expression "ppIVar14 = ppIVar14 + 1" identifier = (binary_expression "ppIVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n             ._M_impl._M_finish != ppIVar14)" ( (binary_expression "(pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n             ._M_impl._M_finish != ppIVar14" (field_expression "(pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n             ._M_impl._M_finish" (field_expression "(pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_>\n             ._M_impl" (binary_expression "(pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold::Incremental_input_entry*>_" (binary_expression "(pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std::allocator<gold" (binary_expression "(pIVar2->inputs_).\n             super__Vector_base<gold::Incremental_input_entry*,_std" (binary_expression "(pIVar2->inputs_).\n             super__Vector_base<gold" (field_expression "(pIVar2->inputs_).\n             super__Vector_base" (parenthesized_expression "(pIVar2->inputs_)" ( (field_expression "pIVar2->inputs_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Incremental_input_entry" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Incremental_input_entry" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (expression_statement "bVar1 = (this->super_Output_section_data).super_Output_data.field_0x20;" (assignment_expression "bVar1 = (this->super_Output_section_data).super_Output_data.field_0x20" identifier = (field_expression "(this->super_Output_section_data).super_Output_data.field_0x20" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x218,"set_data_size");\n  }" if (parenthesized_expression "(((bVar1 & 2) != 0) || ((bVar1 & 8) != 0))" ( (binary_expression "((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)" (parenthesized_expression "((bVar1 & 2) != 0)" ( (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((bVar1 & 8) != 0)" ( (binary_expression "(bVar1 & 8) != 0" (parenthesized_expression "(bVar1 & 8)" ( (binary_expression "bVar1 & 8" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x218,"set_data_size");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x218,"set_data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0x218,"set_data_size")" identifier (argument_list "("../../gold/output.h",0x218,"set_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_data_size"" " string_content ") ))) ;) })) (expression_statement "(this->super_Output_section_data).super_Output_data.data_size_ = uVar16;" (assignment_expression "(this->super_Output_section_data).super_Output_data.data_size_ = uVar16" (field_expression "(this->super_Output_section_data).super_Output_data.data_size_" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "(this->super_Output_section_data).super_Output_data.field_0x20 = bVar1 | 2;" (assignment_expression "(this->super_Output_section_data).super_Output_data.field_0x20 = bVar1 | 2" (field_expression "(this->super_Output_section_data).super_Output_data.field_0x20" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "bVar1 | 2" identifier | number_literal)) ;) (if_statement "if (((pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n       super_Output_data.field_0x20 & 2) == 0) {\n    (pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n    super_Output_data.data_size_ = (ulong)this->symtab_->output_count_ << 2;\n    if (((pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n         super_Output_data.field_0x20 & 2) == 0) {\n      (pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n      super_Output_data.data_size_ = (ulong)(pIVar2->reloc_count_ << 4);\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar7 = (**(code **)(*(long *)pTVar5 + 0x188))(pTVar5);\n      iVar8 = (**(code **)(*(long *)pTVar5 + 400))(pTVar5);\n      if (((pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n           super_Output_data.field_0x20 & 2) == 0) {\n        (pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n        super_Output_data.data_size_ =\n             (ulong)((iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4);\n        return;\n      }\n    }\n  }" if (parenthesized_expression "(((pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n       super_Output_data.field_0x20 & 2) == 0)" ( (binary_expression "((pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n       super_Output_data.field_0x20 & 2) == 0" (parenthesized_expression "((pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n       super_Output_data.field_0x20 & 2)" ( (binary_expression "(pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n       super_Output_data.field_0x20 & 2" (field_expression "(pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n       super_Output_data.field_0x20" (field_expression "(pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n       super_Output_data" (field_expression "(pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pIVar2->symtab_section_->super_Output_section_data_build)" ( (field_expression "pIVar2->symtab_section_->super_Output_section_data_build" (field_expression "pIVar2->symtab_section_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    (pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n    super_Output_data.data_size_ = (ulong)this->symtab_->output_count_ << 2;\n    if (((pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n         super_Output_data.field_0x20 & 2) == 0) {\n      (pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n      super_Output_data.data_size_ = (ulong)(pIVar2->reloc_count_ << 4);\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar7 = (**(code **)(*(long *)pTVar5 + 0x188))(pTVar5);\n      iVar8 = (**(code **)(*(long *)pTVar5 + 400))(pTVar5);\n      if (((pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n           super_Output_data.field_0x20 & 2) == 0) {\n        (pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n        super_Output_data.data_size_ =\n             (ulong)((iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4);\n        return;\n      }\n    }\n  }" { (expression_statement "(pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n    super_Output_data.data_size_ = (ulong)this->symtab_->output_count_ << 2;" (assignment_expression "(pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n    super_Output_data.data_size_ = (ulong)this->symtab_->output_count_ << 2" (field_expression "(pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n    super_Output_data.data_size_" (field_expression "(pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.\n    super_Output_data" (field_expression "(pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pIVar2->symtab_section_->super_Output_section_data_build)" ( (field_expression "pIVar2->symtab_section_->super_Output_section_data_build" (field_expression "pIVar2->symtab_section_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (binary_expression "(ulong)this->symtab_->output_count_ << 2" (cast_expression "(ulong)this->symtab_->output_count_" ( (type_descriptor "ulong" type_identifier) ) (field_expression "this->symtab_->output_count_" (field_expression "this->symtab_" identifier -> field_identifier) -> field_identifier)) << number_literal)) ;) (if_statement "if (((pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n         super_Output_data.field_0x20 & 2) == 0) {\n      (pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n      super_Output_data.data_size_ = (ulong)(pIVar2->reloc_count_ << 4);\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar7 = (**(code **)(*(long *)pTVar5 + 0x188))(pTVar5);\n      iVar8 = (**(code **)(*(long *)pTVar5 + 400))(pTVar5);\n      if (((pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n           super_Output_data.field_0x20 & 2) == 0) {\n        (pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n        super_Output_data.data_size_ =\n             (ulong)((iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4);\n        return;\n      }\n    }" if (parenthesized_expression "(((pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n         super_Output_data.field_0x20 & 2) == 0)" ( (binary_expression "((pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n         super_Output_data.field_0x20 & 2) == 0" (parenthesized_expression "((pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n         super_Output_data.field_0x20 & 2)" ( (binary_expression "(pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n         super_Output_data.field_0x20 & 2" (field_expression "(pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n         super_Output_data.field_0x20" (field_expression "(pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n         super_Output_data" (field_expression "(pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pIVar2->relocs_section_->super_Output_section_data_build)" ( (field_expression "pIVar2->relocs_section_->super_Output_section_data_build" (field_expression "pIVar2->relocs_section_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      (pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n      super_Output_data.data_size_ = (ulong)(pIVar2->reloc_count_ << 4);\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar7 = (**(code **)(*(long *)pTVar5 + 0x188))(pTVar5);\n      iVar8 = (**(code **)(*(long *)pTVar5 + 400))(pTVar5);\n      if (((pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n           super_Output_data.field_0x20 & 2) == 0) {\n        (pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n        super_Output_data.data_size_ =\n             (ulong)((iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4);\n        return;\n      }\n    }" { (expression_statement "(pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n      super_Output_data.data_size_ = (ulong)(pIVar2->reloc_count_ << 4);" (assignment_expression "(pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n      super_Output_data.data_size_ = (ulong)(pIVar2->reloc_count_ << 4)" (field_expression "(pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n      super_Output_data.data_size_" (field_expression "(pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.\n      super_Output_data" (field_expression "(pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pIVar2->relocs_section_->super_Output_section_data_build)" ( (field_expression "pIVar2->relocs_section_->super_Output_section_data_build" (field_expression "pIVar2->relocs_section_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (call_expression "(ulong)(pIVar2->reloc_count_ << 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pIVar2->reloc_count_ << 4)" ( (binary_expression "pIVar2->reloc_count_ << 4" (field_expression "pIVar2->reloc_count_" identifier -> field_identifier) << number_literal) )))) ;) (expression_statement "pTVar5 = parameters->target_;" (assignment_expression "pTVar5 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar5 == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/parameters.h",0x73,"sized_target");\n      }" if (parenthesized_expression "(pTVar5 == (Target *)0x0)" ( (binary_expression "pTVar5 == (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 "iVar7 = (**(code **)(*(long *)pTVar5 + 0x188))(pTVar5);" (assignment_expression "iVar7 = (**(code **)(*(long *)pTVar5 + 0x188))(pTVar5)" identifier = (call_expression "(**(code **)(*(long *)pTVar5 + 0x188))(pTVar5)" (parenthesized_expression "(**(code **)(*(long *)pTVar5 + 0x188))" ( (pointer_expression "**(code **)(*(long *)pTVar5 + 0x188)" * (pointer_expression "*(code **)(*(long *)pTVar5 + 0x188)" * (cast_expression "(code **)(*(long *)pTVar5 + 0x188)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar5 + 0x188)" ( (binary_expression "*(long *)pTVar5 + 0x188" (pointer_expression "*(long *)pTVar5" * (cast_expression "(long *)pTVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pTVar5)" ( identifier )))) ;) (expression_statement "iVar8 = (**(code **)(*(long *)pTVar5 + 400))(pTVar5);" (assignment_expression "iVar8 = (**(code **)(*(long *)pTVar5 + 400))(pTVar5)" identifier = (call_expression "(**(code **)(*(long *)pTVar5 + 400))(pTVar5)" (parenthesized_expression "(**(code **)(*(long *)pTVar5 + 400))" ( (pointer_expression "**(code **)(*(long *)pTVar5 + 400)" * (pointer_expression "*(code **)(*(long *)pTVar5 + 400)" * (cast_expression "(code **)(*(long *)pTVar5 + 400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar5 + 400)" ( (binary_expression "*(long *)pTVar5 + 400" (pointer_expression "*(long *)pTVar5" * (cast_expression "(long *)pTVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pTVar5)" ( identifier )))) ;) (if_statement "if (((pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n           super_Output_data.field_0x20 & 2) == 0) {\n        (pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n        super_Output_data.data_size_ =\n             (ulong)((iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4);\n        return;\n      }" if (parenthesized_expression "(((pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n           super_Output_data.field_0x20 & 2) == 0)" ( (binary_expression "((pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n           super_Output_data.field_0x20 & 2) == 0" (parenthesized_expression "((pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n           super_Output_data.field_0x20 & 2)" ( (binary_expression "(pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n           super_Output_data.field_0x20 & 2" (field_expression "(pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n           super_Output_data.field_0x20" (field_expression "(pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n           super_Output_data" (field_expression "(pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pIVar2->got_plt_section_->super_Output_section_data_build)" ( (field_expression "pIVar2->got_plt_section_->super_Output_section_data_build" (field_expression "pIVar2->got_plt_section_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        (pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n        super_Output_data.data_size_ =\n             (ulong)((iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4);\n        return;\n      }" { (expression_statement "(pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n        super_Output_data.data_size_ =\n             (ulong)((iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4);" (assignment_expression "(pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n        super_Output_data.data_size_ =\n             (ulong)((iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4)" (field_expression "(pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n        super_Output_data.data_size_" (field_expression "(pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.\n        super_Output_data" (field_expression "(pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pIVar2->got_plt_section_->super_Output_section_data_build)" ( (field_expression "pIVar2->got_plt_section_->super_Output_section_data_build" (field_expression "pIVar2->got_plt_section_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (call_expression "(ulong)((iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4)" ( (binary_expression "(iVar7 + 0xbU & 0xfffffffc) + (iVar8 + iVar7 * 2) * 4" (parenthesized_expression "(iVar7 + 0xbU & 0xfffffffc)" ( (binary_expression "iVar7 + 0xbU & 0xfffffffc" (binary_expression "iVar7 + 0xbU" identifier + number_literal) & number_literal) )) + (binary_expression "(iVar8 + iVar7 * 2) * 4" (parenthesized_expression "(iVar8 + iVar7 * 2)" ( (binary_expression "iVar8 + iVar7 * 2" identifier + (binary_expression "iVar7 * 2" identifier * number_literal)) )) * number_literal)) )))) ;) (return_statement "return;" return ;) })) })) })) comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "void FUN_001786b0(long param_1)\n\n{\n  byte bVar1;\n  long *plVar2;\n  long lVar3;\n  undefined4 uVar4;\n  long lVar5;\n  long *plVar6;\n  int iVar7;\n  long lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  long *plVar12;\n  uint uVar13;\n  ulong uVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  plVar12 = (long *)*plVar2;\n  uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);\n  if ((long *)plVar2[1] != plVar12) {\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }\n  bVar1 = *(byte *)(param_1 + 0x20);\n  if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }\n  *(ulong *)(param_1 + 0x10) = uVar14;\n  *(byte *)(param_1 + 0x20) = bVar1 | 2;\n  if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n}\n\n" (function_definition "void FUN_001786b0(long param_1)\n\n{\n  byte bVar1;\n  long *plVar2;\n  long lVar3;\n  undefined4 uVar4;\n  long lVar5;\n  long *plVar6;\n  int iVar7;\n  long lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  long *plVar12;\n  uint uVar13;\n  ulong uVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  plVar12 = (long *)*plVar2;\n  uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);\n  if ((long *)plVar2[1] != plVar12) {\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }\n  bVar1 = *(byte *)(param_1 + 0x20);\n  if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }\n  *(ulong *)(param_1 + 0x10) = uVar14;\n  *(byte *)(param_1 + 0x20) = bVar1 | 2;\n  if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n}" primitive_type (function_declarator "FUN_001786b0(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  long *plVar2;\n  long lVar3;\n  undefined4 uVar4;\n  long lVar5;\n  long *plVar6;\n  int iVar7;\n  long lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  long *plVar12;\n  uint uVar13;\n  ulong uVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  plVar12 = (long *)*plVar2;\n  uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);\n  if ((long *)plVar2[1] != plVar12) {\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }\n  bVar1 = *(byte *)(param_1 + 0x20);\n  if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }\n  *(ulong *)(param_1 + 0x10) = uVar14;\n  *(byte *)(param_1 + 0x20) = bVar1 | 2;\n  if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "long *plVar2;" (sized_type_specifier "long" long) (pointer_declarator "*plVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "long *plVar12;" (sized_type_specifier "long" long) (pointer_declarator "*plVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (expression_statement "plVar2 = *(long **)(param_1 + 0x38);" (assignment_expression "plVar2 = *(long **)(param_1 + 0x38)" identifier = (pointer_expression "*(long **)(param_1 + 0x38)" * (cast_expression "(long **)(param_1 + 0x38)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "plVar12 = (long *)*plVar2;" (assignment_expression "plVar12 = (long *)*plVar2" identifier = (cast_expression "(long *)*plVar2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar2" * identifier))) ;) (expression_statement "uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);" (assignment_expression "uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10)" identifier = (call_expression "(ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10)" ( (binary_expression "(int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10" (binary_expression "(int)(plVar2[1] - (long)plVar12 >> 3) * 0x18" (cast_expression "(int)(plVar2[1] - (long)plVar12 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(plVar2[1] - (long)plVar12 >> 3)" ( (binary_expression "plVar2[1] - (long)plVar12 >> 3" (binary_expression "plVar2[1] - (long)plVar12" (subscript_expression "plVar2[1]" identifier [ number_literal ]) - (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) * number_literal) + number_literal) )))) ;) (if_statement "if ((long *)plVar2[1] != plVar12) {\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }" if (parenthesized_expression "((long *)plVar2[1] != plVar12)" ( (binary_expression "(long *)plVar2[1] != plVar12" (cast_expression "(long *)plVar2[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0x10;" (assignment_expression "iVar9 = 0x10" identifier = number_literal) ;) (do_statement "do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);" do (compound_statement "{\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    }" { (expression_statement "plVar6 = (long *)*plVar12;" (assignment_expression "plVar6 = (long *)*plVar12" identifier = (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier))) ;) (expression_statement "*(int *)(plVar6 + 2) = iVar10;" (assignment_expression "*(int *)(plVar6 + 2) = iVar10" (pointer_expression "*(int *)(plVar6 + 2)" * (cast_expression "(int *)(plVar6 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 2)" ( (binary_expression "plVar6 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)((long)plVar6 + 0x14) = iVar9;" (assignment_expression "*(int *)((long)plVar6 + 0x14) = iVar9" (pointer_expression "*(int *)((long)plVar6 + 0x14)" * (cast_expression "(int *)((long)plVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar6 + 0x14)" ( (binary_expression "(long)plVar6 + 0x14" (cast_expression "(long)plVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar9 = iVar9 + 0x18;" (assignment_expression "iVar9 = iVar9 + 0x18" identifier = (binary_expression "iVar9 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar4 = (**(code **)(*plVar6 + 0x10))();" (assignment_expression "uVar4 = (**(code **)(*plVar6 + 0x10))()" identifier = (call_expression "(**(code **)(*plVar6 + 0x10))()" (parenthesized_expression "(**(code **)(*plVar6 + 0x10))" ( (pointer_expression "**(code **)(*plVar6 + 0x10)" * (pointer_expression "*(code **)(*plVar6 + 0x10)" * (cast_expression "(code **)(*plVar6 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x10)" ( (binary_expression "*plVar6 + 0x10" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar7 = (int)uVar14;" (assignment_expression "iVar7 = (int)uVar14" identifier = (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (switch_statement "switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }" switch (parenthesized_expression "(uVar4)" ( identifier )) (compound_statement "{\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }" { (case_statement "default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");" default : (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x553,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;)) (case_statement "case 1:" case number_literal :) (case_statement "case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;" case number_literal : (expression_statement "lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();" (assignment_expression "lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))()" identifier = (call_expression "(**(code **)(*(long *)*plVar12 + 0x20))()" (parenthesized_expression "(**(code **)(*(long *)*plVar12 + 0x20))" ( (pointer_expression "**(code **)(*(long *)*plVar12 + 0x20)" * (pointer_expression "*(code **)(*(long *)*plVar12 + 0x20)" * (cast_expression "(code **)(*(long *)*plVar12 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar12 + 0x20)" ( (binary_expression "*(long *)*plVar12 + 0x20" (pointer_expression "*(long *)*plVar12" * (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }" { (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x51c,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "plVar6 = *(long **)(lVar5 + 0x38);" (assignment_expression "plVar6 = *(long **)(lVar5 + 0x38)" identifier = (pointer_expression "*(long **)(lVar5 + 0x38)" * (cast_expression "(long **)(lVar5 + 0x38)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(*plVar12 + 0x18) = iVar7;" (assignment_expression "*(int *)(*plVar12 + 0x18) = iVar7" (pointer_expression "*(int *)(*plVar12 + 0x18)" * (cast_expression "(int *)(*plVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar12 + 0x18)" ( (binary_expression "*plVar12 + 0x18" (pointer_expression "*plVar12" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "lVar8 = *(long *)(lVar5 + 0x50);" (assignment_expression "lVar8 = *(long *)(lVar5 + 0x50)" identifier = (pointer_expression "*(long *)(lVar5 + 0x50)" * (cast_expression "(long *)(lVar5 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x50)" ( (binary_expression "lVar5 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(lVar5 + 0x48);" (assignment_expression "lVar3 = *(long *)(lVar5 + 0x48)" identifier = (pointer_expression "*(long *)(lVar5 + 0x48)" * (cast_expression "(long *)(lVar5 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x48)" ( (binary_expression "lVar5 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();" (assignment_expression "plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))()" identifier = (cast_expression "(long *)(**(code **)(*plVar6 + 0xe8))()" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar6 + 0xe8))()" (parenthesized_expression "(**(code **)(*plVar6 + 0xe8))" ( (pointer_expression "**(code **)(*plVar6 + 0xe8)" * (pointer_expression "*(code **)(*plVar6 + 0xe8)" * (cast_expression "(code **)(*plVar6 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0xe8)" ( (binary_expression "*plVar6 + 0xe8" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;" (assignment_expression "uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14" identifier = (binary_expression "iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14" (binary_expression "iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4" (binary_expression "iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550" (binary_expression "iVar7 + 0x20" identifier + number_literal) + (binary_expression "(int)(lVar8 - lVar3 >> 3) * -0x55555550" (cast_expression "(int)(lVar8 - lVar3 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar8 - lVar3 >> 3)" ( (binary_expression "lVar8 - lVar3 >> 3" (binary_expression "lVar8 - lVar3" identifier - identifier) >> number_literal) ))) * number_literal)) + (binary_expression "(int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4" (cast_expression "(int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3)" ( (binary_expression "*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3" (binary_expression "*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60)" (pointer_expression "*(long *)(lVar5 + 0x68)" * (cast_expression "(long *)(lVar5 + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x68)" ( (binary_expression "lVar5 + 0x68" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar5 + 0x60)" * (cast_expression "(long *)(lVar5 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x60)" ( (binary_expression "lVar5 + 0x60" identifier + number_literal) ))))) >> number_literal) ))) * number_literal)) + (binary_expression "(int)(plVar6[1] - *plVar6 >> 3) * 0x14" (cast_expression "(int)(plVar6[1] - *plVar6 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(plVar6[1] - *plVar6 >> 3)" ( (binary_expression "plVar6[1] - *plVar6 >> 3" (binary_expression "plVar6[1] - *plVar6" (subscript_expression "plVar6[1]" identifier [ number_literal ]) - (pointer_expression "*plVar6" * identifier)) >> number_literal) ))) * number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;" case number_literal : (expression_statement "lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();" (assignment_expression "lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))()" identifier = (call_expression "(**(code **)(*(long *)*plVar12 + 0x30))()" (parenthesized_expression "(**(code **)(*(long *)*plVar12 + 0x30))" ( (pointer_expression "**(code **)(*(long *)*plVar12 + 0x30)" * (pointer_expression "*(code **)(*(long *)*plVar12 + 0x30)" * (cast_expression "(code **)(*(long *)*plVar12 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar12 + 0x30)" ( (binary_expression "*(long *)*plVar12 + 0x30" (pointer_expression "*(long *)*plVar12" * (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }" { (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x548,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "lVar8 = *(long *)(lVar5 + 0x40);" (assignment_expression "lVar8 = *(long *)(lVar5 + 0x40)" identifier = (pointer_expression "*(long *)(lVar5 + 0x40)" * (cast_expression "(long *)(lVar5 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x40)" ( (binary_expression "lVar5 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "lVar3 = *(long *)(lVar5 + 0x38);" (assignment_expression "lVar3 = *(long *)(lVar5 + 0x38)" identifier = (pointer_expression "*(long *)(lVar5 + 0x38)" * (cast_expression "(long *)(lVar5 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(*plVar12 + 0x18) = iVar7;" (assignment_expression "*(int *)(*plVar12 + 0x18) = iVar7" (pointer_expression "*(int *)(*plVar12 + 0x18)" * (cast_expression "(int *)(*plVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar12 + 0x18)" ( (binary_expression "*plVar12 + 0x18" (pointer_expression "*plVar12" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;" (assignment_expression "uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4" identifier = (binary_expression "iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4" (binary_expression "iVar7 + 8" identifier + number_literal) + (binary_expression "((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4" (parenthesized_expression "((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3))" ( (binary_expression "(int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)" (cast_expression "(int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3)" ( (binary_expression "*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3" (binary_expression "*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50)" (pointer_expression "*(long *)(lVar5 + 0x58)" * (cast_expression "(long *)(lVar5 + 0x58)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x58)" ( (binary_expression "lVar5 + 0x58" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar5 + 0x50)" * (cast_expression "(long *)(lVar5 + 0x50)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x50)" ( (binary_expression "lVar5 + 0x50" identifier + number_literal) ))))) >> number_literal) ))) + (cast_expression "(int)(lVar8 - lVar3 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar8 - lVar3 >> 3)" ( (binary_expression "lVar8 - lVar3 >> 3" (binary_expression "lVar8 - lVar3" identifier - identifier) >> number_literal) )))) )) * number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;" case number_literal : (expression_statement "lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();" (assignment_expression "lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))()" identifier = (call_expression "(**(code **)(*(long *)*plVar12 + 0x28))()" (parenthesized_expression "(**(code **)(*(long *)*plVar12 + 0x28))" ( (pointer_expression "**(code **)(*(long *)*plVar12 + 0x28)" * (pointer_expression "*(code **)(*(long *)*plVar12 + 0x28)" * (cast_expression "(code **)(*(long *)*plVar12 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar12 + 0x28)" ( (binary_expression "*(long *)*plVar12 + 0x28" (pointer_expression "*(long *)*plVar12" * (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }" { (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x52f,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "lVar5 = **(long **)(lVar5 + 0x40);" (assignment_expression "lVar5 = **(long **)(lVar5 + 0x40)" identifier = (pointer_expression "**(long **)(lVar5 + 0x40)" * (pointer_expression "*(long **)(lVar5 + 0x40)" * (cast_expression "(long **)(lVar5 + 0x40)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0x40)" ( (binary_expression "lVar5 + 0x40" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(*plVar12 + 0x18) = iVar7;" (assignment_expression "*(int *)(*plVar12 + 0x18) = iVar7" (pointer_expression "*(int *)(*plVar12 + 0x18)" * (cast_expression "(int *)(*plVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar12 + 0x18)" ( (binary_expression "*plVar12 + 0x18" (pointer_expression "*plVar12" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = iVar7 + 8;" (assignment_expression "uVar13 = iVar7 + 8" identifier = (binary_expression "iVar7 + 8" identifier + number_literal)) ;) (expression_statement "plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();" (assignment_expression "plVar6 = (long *)(**(code **)(lVar5 + 0xe8))()" identifier = (cast_expression "(long *)(**(code **)(lVar5 + 0xe8))()" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(lVar5 + 0xe8))()" (parenthesized_expression "(**(code **)(lVar5 + 0xe8))" ( (pointer_expression "**(code **)(lVar5 + 0xe8)" * (pointer_expression "*(code **)(lVar5 + 0xe8)" * (cast_expression "(code **)(lVar5 + 0xe8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 0xe8)" ( (binary_expression "lVar5 + 0xe8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }" if (parenthesized_expression "(plVar6 == (long *)0x0)" ( (binary_expression "plVar6 == (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_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }" { (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x535,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "lVar5 = *plVar6;" (assignment_expression "lVar5 = *plVar6" identifier = (pointer_expression "*plVar6" * identifier)) ;) (expression_statement "iVar7 = (int)(plVar6[1] - lVar5 >> 3);" (assignment_expression "iVar7 = (int)(plVar6[1] - lVar5 >> 3)" identifier = (cast_expression "(int)(plVar6[1] - lVar5 >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(plVar6[1] - lVar5 >> 3)" ( (binary_expression "plVar6[1] - lVar5 >> 3" (binary_expression "plVar6[1] - lVar5" (subscript_expression "plVar6[1]" identifier [ number_literal ]) - identifier) >> number_literal) )))) ;) (if_statement "if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }" { (expression_statement "lVar5 = *(long *)(lVar5 + lVar8);" (assignment_expression "lVar5 = *(long *)(lVar5 + lVar8)" identifier = (pointer_expression "*(long *)(lVar5 + lVar8)" * (cast_expression "(long *)(lVar5 + lVar8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + lVar8)" ( (binary_expression "lVar5 + lVar8" identifier + identifier) ))))) ;) (if_statement "if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }" if (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }" { (if_statement "if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }" if (parenthesized_expression "((*(byte *)(lVar5 + 0x3a) & 0x10) != 0)" ( (binary_expression "(*(byte *)(lVar5 + 0x3a) & 0x10) != 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x3a) & 0x10)" ( (binary_expression "*(byte *)(lVar5 + 0x3a) & 0x10" (pointer_expression "*(byte *)(lVar5 + 0x3a)" * (cast_expression "(byte *)(lVar5 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x3a)" ( (binary_expression "lVar5 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }" { (expression_statement "lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);" (assignment_expression "lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5)" identifier = (call_expression "FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x40),lVar5)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x40)" * (cast_expression "(undefined8 *)(param_1 + 0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) , identifier )))) ;) })) (if_statement "if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }" if (parenthesized_expression "(*(int *)(lVar5 + 0x1c) == 0)" ( (binary_expression "*(int *)(lVar5 + 0x1c) == 0" (pointer_expression "*(int *)(lVar5 + 0x1c)" * (cast_expression "(int *)(lVar5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x1c)" ( (binary_expression "lVar5 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }" { (expression_statement "FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");" (call_expression "FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index")" identifier (argument_list "("../../gold/symtab.h",0x180,"symtab_index")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""symtab_index"" " string_content ") ))) ;) })) (expression_statement "iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);" (assignment_expression "iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1)" identifier = (binary_expression "iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1)" identifier + (call_expression "(uint)(*(int *)(lVar5 + 0x1c) != -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(lVar5 + 0x1c) != -1)" ( (binary_expression "*(int *)(lVar5 + 0x1c) != -1" (pointer_expression "*(int *)(lVar5 + 0x1c)" * (cast_expression "(int *)(lVar5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x1c)" ( (binary_expression "lVar5 + 0x1c" identifier + number_literal) )))) != number_literal) ))))) ;) })) (if_statement "if ((ulong)(iVar7 - 1) << 3 == lVar8) break;" if (parenthesized_expression "((ulong)(iVar7 - 1) << 3 == lVar8)" ( (binary_expression "(ulong)(iVar7 - 1) << 3 == lVar8" (binary_expression "(ulong)(iVar7 - 1) << 3" (call_expression "(ulong)(iVar7 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar7 - 1)" ( (binary_expression "iVar7 - 1" identifier - number_literal) ))) << number_literal) == identifier) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = *plVar6;" (assignment_expression "lVar5 = *plVar6" identifier = (pointer_expression "*plVar6" * identifier)) ;) (expression_statement "lVar8 = lVar8 + 8;" (assignment_expression "lVar8 = lVar8 + 8" identifier = (binary_expression "lVar8 + 8" identifier + number_literal)) ;) })) (expression_statement "uVar13 = uVar13 + iVar11 * 4;" (assignment_expression "uVar13 = uVar13 + iVar11 * 4" identifier = (binary_expression "uVar13 + iVar11 * 4" identifier + (binary_expression "iVar11 * 4" identifier * number_literal))) ;) })) (break_statement "break;" break ;)) (case_statement "case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;" case number_literal : (expression_statement "lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();" (assignment_expression "lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))()" identifier = (call_expression "(**(code **)(*(long *)*plVar12 + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)*plVar12 + 0x18))" ( (pointer_expression "**(code **)(*(long *)*plVar12 + 0x18)" * (pointer_expression "*(code **)(*(long *)*plVar12 + 0x18)" * (cast_expression "(code **)(*(long *)*plVar12 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*plVar12 + 0x18)" ( (binary_expression "*(long *)*plVar12 + 0x18" (pointer_expression "*(long *)*plVar12" * (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }" { (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size")" identifier (argument_list "("../../gold/incremental.cc",0x510,"set_final_data_size")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""set_final_data_size"" " string_content ") ))) ;) })) (expression_statement "*(int *)(*plVar12 + 0x18) = iVar7;" (assignment_expression "*(int *)(*plVar12 + 0x18) = iVar7" (pointer_expression "*(int *)(*plVar12 + 0x18)" * (cast_expression "(int *)(*plVar12 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar12 + 0x18)" ( (binary_expression "*plVar12 + 0x18" (pointer_expression "*plVar12" * identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;" (assignment_expression "uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4" identifier = (binary_expression "iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4" (binary_expression "iVar7 + 4" identifier + number_literal) + (binary_expression "(int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4" (cast_expression "(int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3)" ( (binary_expression "*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3" (binary_expression "*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38)" (pointer_expression "*(long *)(lVar5 + 0x40)" * (cast_expression "(long *)(lVar5 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x40)" ( (binary_expression "lVar5 + 0x40" identifier + number_literal) )))) - (pointer_expression "*(long *)(lVar5 + 0x38)" * (cast_expression "(long *)(lVar5 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x38)" ( (binary_expression "lVar5 + 0x38" identifier + number_literal) ))))) >> number_literal) ))) * number_literal))) ;)) })) (if_statement "if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }" if (parenthesized_expression "((uVar13 & 4) != 0)" ( (binary_expression "(uVar13 & 4) != 0" (parenthesized_expression "(uVar13 & 4)" ( (binary_expression "uVar13 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar13 = uVar13 + 4;\n      }" { (expression_statement "uVar13 = uVar13 + 4;" (assignment_expression "uVar13 = uVar13 + 4" identifier = (binary_expression "uVar13 + 4" identifier + number_literal)) ;) })) (expression_statement "uVar14 = (ulong)uVar13;" (assignment_expression "uVar14 = (ulong)uVar13" identifier = (cast_expression "(ulong)uVar13" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "plVar12 = plVar12 + 1;" (assignment_expression "plVar12 = plVar12 + 1" identifier = (binary_expression "plVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)plVar2[1] != plVar12)" ( (binary_expression "(long *)plVar2[1] != plVar12" (cast_expression "(long *)plVar2[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar2[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "bVar1 = *(byte *)(param_1 + 0x20);" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x20)" identifier = (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }" if (parenthesized_expression "(((bVar1 & 2) != 0) || ((bVar1 & 8) != 0))" ( (binary_expression "((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)" (parenthesized_expression "((bVar1 & 2) != 0)" ( (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((bVar1 & 8) != 0)" ( (binary_expression "(bVar1 & 8) != 0" (parenthesized_expression "(bVar1 & 8)" ( (binary_expression "bVar1 & 8" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }" { (expression_statement "FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");" (call_expression "FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size")" identifier (argument_list "("../../gold/output.h",0x218,"set_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_data_size"" " string_content ") ))) ;) })) (expression_statement "*(ulong *)(param_1 + 0x10) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x10) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x10)" * (cast_expression "(ulong *)(param_1 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(param_1 + 0x20) = bVar1 | 2;" (assignment_expression "*(byte *)(param_1 + 0x20) = bVar1 | 2" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) = (binary_expression "bVar1 | 2" identifier | number_literal)) ;) (if_statement "if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }" if (parenthesized_expression "((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar2[0xc] + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar2[0xc] + 0x20) & 2)" ( (binary_expression "*(byte *)(plVar2[0xc] + 0x20) & 2" (pointer_expression "*(byte *)(plVar2[0xc] + 0x20)" * (cast_expression "(byte *)(plVar2[0xc] + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[0xc] + 0x20)" ( (binary_expression "plVar2[0xc] + 0x20" (subscript_expression "plVar2[0xc]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }" { (expression_statement "*(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;" (assignment_expression "*(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2" (pointer_expression "*(ulong *)(plVar2[0xc] + 0x10)" * (cast_expression "(ulong *)(plVar2[0xc] + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[0xc] + 0x10)" ( (binary_expression "plVar2[0xc] + 0x10" (subscript_expression "plVar2[0xc]" identifier [ number_literal ]) + number_literal) )))) = (binary_expression "(ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2" (binary_expression "(ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(*(long *)(param_1 + 0x40) + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x40) + 0x18)" ( (binary_expression "*(long *)(param_1 + 0x40) + 0x18" (pointer_expression "*(long *)(param_1 + 0x40)" * (cast_expression "(long *)(param_1 + 0x40)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) + number_literal) )))) << number_literal)) ;) (if_statement "if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }" if (parenthesized_expression "((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar2[0xd] + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar2[0xd] + 0x20) & 2)" ( (binary_expression "*(byte *)(plVar2[0xd] + 0x20) & 2" (pointer_expression "*(byte *)(plVar2[0xd] + 0x20)" * (cast_expression "(byte *)(plVar2[0xd] + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[0xd] + 0x20)" ( (binary_expression "plVar2[0xd] + 0x20" (subscript_expression "plVar2[0xd]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }" { (expression_statement "*(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);" (assignment_expression "*(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4)" (pointer_expression "*(ulong *)(plVar2[0xd] + 0x10)" * (cast_expression "(ulong *)(plVar2[0xd] + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[0xd] + 0x10)" ( (binary_expression "plVar2[0xd] + 0x10" (subscript_expression "plVar2[0xd]" identifier [ number_literal ]) + number_literal) )))) = (call_expression "(ulong)(uint)((int)plVar2[0xf] << 4)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "((int)plVar2[0xf] << 4)" ( (binary_expression "(int)plVar2[0xf] << 4" (cast_expression "(int)plVar2[0xf]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar2[0xf]" identifier [ number_literal ])) << number_literal) )))) ;) (expression_statement "plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);" (assignment_expression "plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_003be6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_003be6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" ( (binary_expression "PTR_DAT_003be6b0 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }" if (parenthesized_expression "(plVar12 == (long *)0x0)" ( (binary_expression "plVar12 == (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_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }" { (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_0016cdf0("../../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 "iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);" (assignment_expression "iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12)" identifier = (call_expression "(**(code **)(*plVar12 + 0x188))(plVar12)" (parenthesized_expression "(**(code **)(*plVar12 + 0x188))" ( (pointer_expression "**(code **)(*plVar12 + 0x188)" * (pointer_expression "*(code **)(*plVar12 + 0x188)" * (cast_expression "(code **)(*plVar12 + 0x188)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar12 + 0x188)" ( (binary_expression "*plVar12 + 0x188" (pointer_expression "*plVar12" * identifier) + number_literal) ))))) )) (argument_list "(plVar12)" ( identifier )))) ;) (expression_statement "iVar10 = (**(code **)(*plVar12 + 400))(plVar12);" (assignment_expression "iVar10 = (**(code **)(*plVar12 + 400))(plVar12)" identifier = (call_expression "(**(code **)(*plVar12 + 400))(plVar12)" (parenthesized_expression "(**(code **)(*plVar12 + 400))" ( (pointer_expression "**(code **)(*plVar12 + 400)" * (pointer_expression "*(code **)(*plVar12 + 400)" * (cast_expression "(code **)(*plVar12 + 400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar12 + 400)" ( (binary_expression "*plVar12 + 400" (pointer_expression "*plVar12" * identifier) + number_literal) ))))) )) (argument_list "(plVar12)" ( identifier )))) ;) (if_statement "if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }" if (parenthesized_expression "((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(plVar2[0xe] + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar2[0xe] + 0x20) & 2)" ( (binary_expression "*(byte *)(plVar2[0xe] + 0x20) & 2" (pointer_expression "*(byte *)(plVar2[0xe] + 0x20)" * (cast_expression "(byte *)(plVar2[0xe] + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[0xe] + 0x20)" ( (binary_expression "plVar2[0xe] + 0x20" (subscript_expression "plVar2[0xe]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }" { (expression_statement "*(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);" (assignment_expression "*(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4)" (pointer_expression "*(ulong *)(plVar2[0xe] + 0x10)" * (cast_expression "(ulong *)(plVar2[0xe] + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar2[0xe] + 0x10)" ( (binary_expression "plVar2[0xe] + 0x10" (subscript_expression "plVar2[0xe]" identifier [ number_literal ]) + number_literal) )))) = (call_expression "(ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4)" ( (binary_expression "(iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4" (parenthesized_expression "(iVar9 + 0xbU & 0xfffffffc)" ( (binary_expression "iVar9 + 0xbU & 0xfffffffc" (binary_expression "iVar9 + 0xbU" identifier + number_literal) & number_literal) )) + (binary_expression "(iVar10 + iVar9 * 2) * 4" (parenthesized_expression "(iVar10 + iVar9 * 2)" ( (binary_expression "iVar10 + iVar9 * 2" identifier + (binary_expression "iVar9 * 2" identifier * number_literal)) )) * number_literal)) )))) ;) (return_statement "return;" return ;) })) })) })) (expression_statement "FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) >> LIT) ))) * LIT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (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 * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (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 *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_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 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 = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT + LIT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) >> LIT) ))) * LIT)) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) * LIT)) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT)) >> LIT) ))) * LIT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (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 *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) >> LIT) )))) )) * LIT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (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 *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 = (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) << LIT) == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (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 *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT) ))) * LIT))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (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) )))) + LIT) )))) << 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 (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) )))) ;) (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) ))))) ;) (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 = (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 )))) ;) (expression_statement (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 * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )) * LIT)) )))) ;) (return_statement return ;) })) })) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_001786b0(long param_1)\n\n{\n  byte bVar1;\n  long *plVar2;\n  long lVar3;\n  undefined4 uVar4;\n  long lVar5;\n  long *plVar6;\n  int iVar7;\n  long lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  long *plVar12;\n  uint uVar13;\n  ulong uVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  plVar12 = (long *)*plVar2;\n  uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);\n  if ((long *)plVar2[1] != plVar12) {\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }\n  bVar1 = *(byte *)(param_1 + 0x20);\n  if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }\n  *(ulong *)(param_1 + 0x10) = uVar14;\n  *(byte *)(param_1 + 0x20) = bVar1 | 2;\n  if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n}" (primitive_type "void") (function_declarator "FUN_001786b0(long param_1)" (identifier "FUN_001786b0") (parameter_list "(long param_1)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) () ")"))) (compound_statement "{\n  byte bVar1;\n  long *plVar2;\n  long lVar3;\n  undefined4 uVar4;\n  long lVar5;\n  long *plVar6;\n  int iVar7;\n  long lVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  long *plVar12;\n  uint uVar13;\n  ulong uVar14;\n  \n  plVar2 = *(long **)(param_1 + 0x38);\n  plVar12 = (long *)*plVar2;\n  uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);\n  if ((long *)plVar2[1] != plVar12) {\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }\n  bVar1 = *(byte *)(param_1 + 0x20);\n  if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }\n  *(ulong *)(param_1 + 0x10) = uVar14;\n  *(byte *)(param_1 + 0x20) = bVar1 | 2;\n  if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "long *plVar2;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar2" (* "*") (identifier "plVar2")) (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "long *plVar6;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar6" (* "*") (identifier "plVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "long *plVar12;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar12" (* "*") (identifier "plVar12")) (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "ulong uVar14;" (type_identifier "ulong") (identifier "uVar14") (; ";")) (expression_statement "plVar2 = *(long **)(param_1 + 0x38);" (assignment_expression "plVar2 = *(long **)(param_1 + 0x38)" (identifier "plVar2") (= "=") (pointer_expression "*(long **)(param_1 + 0x38)" (* "*") (cast_expression "(long **)(param_1 + 0x38)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "plVar12 = (long *)*plVar2;" (assignment_expression "plVar12 = (long *)*plVar2" (identifier "plVar12") (= "=") (cast_expression "(long *)*plVar2" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar2" (* "*") (identifier "plVar2")))) (; ";")) (expression_statement "uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);" (assignment_expression "uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10)" (identifier "uVar14") (= "=") (call_expression "(ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10)" (( "(") (binary_expression "(int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10" (binary_expression "(int)(plVar2[1] - (long)plVar12 >> 3) * 0x18" (cast_expression "(int)(plVar2[1] - (long)plVar12 >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(plVar2[1] - (long)plVar12 >> 3)" (( "(") (binary_expression "plVar2[1] - (long)plVar12 >> 3" (binary_expression "plVar2[1] - (long)plVar12" (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]")) (- "-") (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12"))) (>> ">>") (number_literal "3")) () ")"))) (* "*") (number_literal "0x18")) (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if ((long *)plVar2[1] != plVar12) {\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }" (if "if") (parenthesized_expression "((long *)plVar2[1] != plVar12)" (( "(") (binary_expression "(long *)plVar2[1] != plVar12" (cast_expression "(long *)plVar2[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "plVar12")) () ")")) (compound_statement "{\n    iVar10 = 0;\n    iVar9 = 0x10;\n    do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);\n  }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = 0x10;" (assignment_expression "iVar9 = 0x10" (identifier "iVar9") (= "=") (number_literal "0x10")) (; ";")) (do_statement "do {\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    } while ((long *)plVar2[1] != plVar12);" (do "do") (compound_statement "{\n      plVar6 = (long *)*plVar12;\n      *(int *)(plVar6 + 2) = iVar10;\n      iVar10 = iVar10 + 1;\n      *(int *)((long)plVar6 + 0x14) = iVar9;\n      iVar9 = iVar9 + 0x18;\n      uVar4 = (**(code **)(*plVar6 + 0x10))();\n      iVar7 = (int)uVar14;\n      switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }\n      if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }\n      uVar14 = (ulong)uVar13;\n      plVar12 = plVar12 + 1;\n    }" ({ "{") (expression_statement "plVar6 = (long *)*plVar12;" (assignment_expression "plVar6 = (long *)*plVar12" (identifier "plVar6") (= "=") (cast_expression "(long *)*plVar12" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar12" (* "*") (identifier "plVar12")))) (; ";")) (expression_statement "*(int *)(plVar6 + 2) = iVar10;" (assignment_expression "*(int *)(plVar6 + 2) = iVar10" (pointer_expression "*(int *)(plVar6 + 2)" (* "*") (cast_expression "(int *)(plVar6 + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 2)" (( "(") (binary_expression "plVar6 + 2" (identifier "plVar6") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)((long)plVar6 + 0x14) = iVar9;" (assignment_expression "*(int *)((long)plVar6 + 0x14) = iVar9" (pointer_expression "*(int *)((long)plVar6 + 0x14)" (* "*") (cast_expression "(int *)((long)plVar6 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar6 + 0x14)" (( "(") (binary_expression "(long)plVar6 + 0x14" (cast_expression "(long)plVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar6")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iVar9 = iVar9 + 0x18;" (assignment_expression "iVar9 = iVar9 + 0x18" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "uVar4 = (**(code **)(*plVar6 + 0x10))();" (assignment_expression "uVar4 = (**(code **)(*plVar6 + 0x10))()" (identifier "uVar4") (= "=") (call_expression "(**(code **)(*plVar6 + 0x10))()" (parenthesized_expression "(**(code **)(*plVar6 + 0x10))" (( "(") (pointer_expression "**(code **)(*plVar6 + 0x10)" (* "*") (pointer_expression "*(code **)(*plVar6 + 0x10)" (* "*") (cast_expression "(code **)(*plVar6 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + 0x10)" (( "(") (binary_expression "*plVar6 + 0x10" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar7 = (int)uVar14;" (assignment_expression "iVar7 = (int)uVar14" (identifier "iVar7") (= "=") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14"))) (; ";")) (switch_statement "switch(uVar4) {\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }" (switch "switch") (parenthesized_expression "(uVar4)" (( "(") (identifier "uVar4") () ")")) (compound_statement "{\n      default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");\n      case 1:\n      case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;\n      case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;\n      case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;\n      case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;\n      }" ({ "{") (case_statement "default:\n                    \n        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");" (default "default") (: ":") (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/incremental.cc",0x553,"set_final_data_size")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0x553") (, ",") (string_literal ""set_final_data_size"" (" """) (string_content "set_final_data_size") (" """)) () ")"))) (; ";"))) (case_statement "case 1:" (case "case") (number_literal "1") (: ":")) (case_statement "case 2:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }\n        plVar6 = *(long **)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        lVar8 = *(long *)(lVar5 + 0x50);\n        lVar3 = *(long *)(lVar5 + 0x48);\n        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();\n        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;\n        break;" (case "case") (number_literal "2") (: ":") (expression_statement "lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();" (assignment_expression "lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))()" (identifier "lVar5") (= "=") (call_expression "(**(code **)(*(long *)*plVar12 + 0x20))()" (parenthesized_expression "(**(code **)(*(long *)*plVar12 + 0x20))" (( "(") (pointer_expression "**(code **)(*(long *)*plVar12 + 0x20)" (* "*") (pointer_expression "*(code **)(*(long *)*plVar12 + 0x20)" (* "*") (cast_expression "(code **)(*(long *)*plVar12 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*plVar12 + 0x20)" (( "(") (binary_expression "*(long *)*plVar12 + 0x20" (pointer_expression "*(long *)*plVar12" (* "*") (cast_expression "(long *)*plVar12" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar12" (* "*") (identifier "plVar12")))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");\n        }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/incremental.cc",0x51c,"set_final_data_size")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0x51c") (, ",") (string_literal ""set_final_data_size"" (" """) (string_content "set_final_data_size") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "plVar6 = *(long **)(lVar5 + 0x38);" (assignment_expression "plVar6 = *(long **)(lVar5 + 0x38)" (identifier "plVar6") (= "=") (pointer_expression "*(long **)(lVar5 + 0x38)" (* "*") (cast_expression "(long **)(lVar5 + 0x38)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x38)" (( "(") (binary_expression "lVar5 + 0x38" (identifier "lVar5") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(int *)(*plVar12 + 0x18) = iVar7;" (assignment_expression "*(int *)(*plVar12 + 0x18) = iVar7" (pointer_expression "*(int *)(*plVar12 + 0x18)" (* "*") (cast_expression "(int *)(*plVar12 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar12 + 0x18)" (( "(") (binary_expression "*plVar12 + 0x18" (pointer_expression "*plVar12" (* "*") (identifier "plVar12")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "lVar8 = *(long *)(lVar5 + 0x50);" (assignment_expression "lVar8 = *(long *)(lVar5 + 0x50)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar5 + 0x50)" (* "*") (cast_expression "(long *)(lVar5 + 0x50)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x50)" (( "(") (binary_expression "lVar5 + 0x50" (identifier "lVar5") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "lVar3 = *(long *)(lVar5 + 0x48);" (assignment_expression "lVar3 = *(long *)(lVar5 + 0x48)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(lVar5 + 0x48)" (* "*") (cast_expression "(long *)(lVar5 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x48)" (( "(") (binary_expression "lVar5 + 0x48" (identifier "lVar5") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();" (assignment_expression "plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))()" (identifier "plVar6") (= "=") (cast_expression "(long *)(**(code **)(*plVar6 + 0xe8))()" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*plVar6 + 0xe8))()" (parenthesized_expression "(**(code **)(*plVar6 + 0xe8))" (( "(") (pointer_expression "**(code **)(*plVar6 + 0xe8)" (* "*") (pointer_expression "*(code **)(*plVar6 + 0xe8)" (* "*") (cast_expression "(code **)(*plVar6 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + 0xe8)" (( "(") (binary_expression "*plVar6 + 0xe8" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;" (assignment_expression "uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14" (identifier "uVar13") (= "=") (binary_expression "iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +\n                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14" (binary_expression "iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +\n                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4" (binary_expression "iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550" (binary_expression "iVar7 + 0x20" (identifier "iVar7") (+ "+") (number_literal "0x20")) (+ "+") (binary_expression "(int)(lVar8 - lVar3 >> 3) * -0x55555550" (cast_expression "(int)(lVar8 - lVar3 >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar8 - lVar3 >> 3)" (( "(") (binary_expression "lVar8 - lVar3 >> 3" (binary_expression "lVar8 - lVar3" (identifier "lVar8") (- "-") (identifier "lVar3")) (>> ">>") (number_literal "3")) () ")"))) (* "*") (number_literal "-0x55555550"))) (+ "+") (binary_expression "(int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4" (cast_expression "(int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3)" (( "(") (binary_expression "*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3" (binary_expression "*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60)" (pointer_expression "*(long *)(lVar5 + 0x68)" (* "*") (cast_expression "(long *)(lVar5 + 0x68)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x68)" (( "(") (binary_expression "lVar5 + 0x68" (identifier "lVar5") (+ "+") (number_literal "0x68")) () ")")))) (- "-") (pointer_expression "*(long *)(lVar5 + 0x60)" (* "*") (cast_expression "(long *)(lVar5 + 0x60)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x60)" (( "(") (binary_expression "lVar5 + 0x60" (identifier "lVar5") (+ "+") (number_literal "0x60")) () ")"))))) (>> ">>") (number_literal "3")) () ")"))) (* "*") (number_literal "4"))) (+ "+") (binary_expression "(int)(plVar6[1] - *plVar6 >> 3) * 0x14" (cast_expression "(int)(plVar6[1] - *plVar6 >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(plVar6[1] - *plVar6 >> 3)" (( "(") (binary_expression "plVar6[1] - *plVar6 >> 3" (binary_expression "plVar6[1] - *plVar6" (subscript_expression "plVar6[1]" (identifier "plVar6") ([ "[") (number_literal "1") (] "]")) (- "-") (pointer_expression "*plVar6" (* "*") (identifier "plVar6"))) (>> ">>") (number_literal "3")) () ")"))) (* "*") (number_literal "0x14")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }\n        lVar8 = *(long *)(lVar5 + 0x40);\n        lVar3 = *(long *)(lVar5 + 0x38);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;\n        break;" (case "case") (number_literal "3") (: ":") (expression_statement "lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();" (assignment_expression "lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))()" (identifier "lVar5") (= "=") (call_expression "(**(code **)(*(long *)*plVar12 + 0x30))()" (parenthesized_expression "(**(code **)(*(long *)*plVar12 + 0x30))" (( "(") (pointer_expression "**(code **)(*(long *)*plVar12 + 0x30)" (* "*") (pointer_expression "*(code **)(*(long *)*plVar12 + 0x30)" (* "*") (cast_expression "(code **)(*(long *)*plVar12 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*plVar12 + 0x30)" (( "(") (binary_expression "*(long *)*plVar12 + 0x30" (pointer_expression "*(long *)*plVar12" (* "*") (cast_expression "(long *)*plVar12" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar12" (* "*") (identifier "plVar12")))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");\n        }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/incremental.cc",0x548,"set_final_data_size")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0x548") (, ",") (string_literal ""set_final_data_size"" (" """) (string_content "set_final_data_size") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar8 = *(long *)(lVar5 + 0x40);" (assignment_expression "lVar8 = *(long *)(lVar5 + 0x40)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(lVar5 + 0x40)" (* "*") (cast_expression "(long *)(lVar5 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x40)" (( "(") (binary_expression "lVar5 + 0x40" (identifier "lVar5") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "lVar3 = *(long *)(lVar5 + 0x38);" (assignment_expression "lVar3 = *(long *)(lVar5 + 0x38)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(lVar5 + 0x38)" (* "*") (cast_expression "(long *)(lVar5 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x38)" (( "(") (binary_expression "lVar5 + 0x38" (identifier "lVar5") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(int *)(*plVar12 + 0x18) = iVar7;" (assignment_expression "*(int *)(*plVar12 + 0x18) = iVar7" (pointer_expression "*(int *)(*plVar12 + 0x18)" (* "*") (cast_expression "(int *)(*plVar12 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar12 + 0x18)" (( "(") (binary_expression "*plVar12 + 0x18" (pointer_expression "*plVar12" (* "*") (identifier "plVar12")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4;" (assignment_expression "uVar13 = iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4" (identifier "uVar13") (= "=") (binary_expression "iVar7 + 8 +\n                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4" (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) (+ "+") (binary_expression "((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)) * 4" (parenthesized_expression "((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3))" (( "(") (binary_expression "(int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +\n                 (int)(lVar8 - lVar3 >> 3)" (cast_expression "(int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3)" (( "(") (binary_expression "*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3" (binary_expression "*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50)" (pointer_expression "*(long *)(lVar5 + 0x58)" (* "*") (cast_expression "(long *)(lVar5 + 0x58)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x58)" (( "(") (binary_expression "lVar5 + 0x58" (identifier "lVar5") (+ "+") (number_literal "0x58")) () ")")))) (- "-") (pointer_expression "*(long *)(lVar5 + 0x50)" (* "*") (cast_expression "(long *)(lVar5 + 0x50)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x50)" (( "(") (binary_expression "lVar5 + 0x50" (identifier "lVar5") (+ "+") (number_literal "0x50")) () ")"))))) (>> ">>") (number_literal "3")) () ")"))) (+ "+") (cast_expression "(int)(lVar8 - lVar3 >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar8 - lVar3 >> 3)" (( "(") (binary_expression "lVar8 - lVar3 >> 3" (binary_expression "lVar8 - lVar3" (identifier "lVar8") (- "-") (identifier "lVar3")) (>> ">>") (number_literal "3")) () ")")))) () ")")) (* "*") (number_literal "4")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }\n        lVar5 = **(long **)(lVar5 + 0x40);\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 8;\n        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }\n        lVar5 = *plVar6;\n        iVar7 = (int)(plVar6[1] - lVar5 >> 3);\n        if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }\n        break;" (case "case") (number_literal "4") (: ":") (expression_statement "lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();" (assignment_expression "lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))()" (identifier "lVar5") (= "=") (call_expression "(**(code **)(*(long *)*plVar12 + 0x28))()" (parenthesized_expression "(**(code **)(*(long *)*plVar12 + 0x28))" (( "(") (pointer_expression "**(code **)(*(long *)*plVar12 + 0x28)" (* "*") (pointer_expression "*(code **)(*(long *)*plVar12 + 0x28)" (* "*") (cast_expression "(code **)(*(long *)*plVar12 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*plVar12 + 0x28)" (( "(") (binary_expression "*(long *)*plVar12 + 0x28" (pointer_expression "*(long *)*plVar12" (* "*") (cast_expression "(long *)*plVar12" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar12" (* "*") (identifier "plVar12")))) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");\n        }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/incremental.cc",0x52f,"set_final_data_size")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0x52f") (, ",") (string_literal ""set_final_data_size"" (" """) (string_content "set_final_data_size") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar5 = **(long **)(lVar5 + 0x40);" (assignment_expression "lVar5 = **(long **)(lVar5 + 0x40)" (identifier "lVar5") (= "=") (pointer_expression "**(long **)(lVar5 + 0x40)" (* "*") (pointer_expression "*(long **)(lVar5 + 0x40)" (* "*") (cast_expression "(long **)(lVar5 + 0x40)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0x40)" (( "(") (binary_expression "lVar5 + 0x40" (identifier "lVar5") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (expression_statement "*(int *)(*plVar12 + 0x18) = iVar7;" (assignment_expression "*(int *)(*plVar12 + 0x18) = iVar7" (pointer_expression "*(int *)(*plVar12 + 0x18)" (* "*") (cast_expression "(int *)(*plVar12 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar12 + 0x18)" (( "(") (binary_expression "*plVar12 + 0x18" (pointer_expression "*plVar12" (* "*") (identifier "plVar12")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "uVar13 = iVar7 + 8;" (assignment_expression "uVar13 = iVar7 + 8" (identifier "uVar13") (= "=") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();" (assignment_expression "plVar6 = (long *)(**(code **)(lVar5 + 0xe8))()" (identifier "plVar6") (= "=") (cast_expression "(long *)(**(code **)(lVar5 + 0xe8))()" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(lVar5 + 0xe8))()" (parenthesized_expression "(**(code **)(lVar5 + 0xe8))" (( "(") (pointer_expression "**(code **)(lVar5 + 0xe8)" (* "*") (pointer_expression "*(code **)(lVar5 + 0xe8)" (* "*") (cast_expression "(code **)(lVar5 + 0xe8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar5 + 0xe8)" (( "(") (binary_expression "lVar5 + 0xe8" (identifier "lVar5") (+ "+") (number_literal "0xe8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (plVar6 == (long *)0x0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }" (if "if") (parenthesized_expression "(plVar6 == (long *)0x0)" (( "(") (binary_expression "plVar6 == (long *)0x0" (identifier "plVar6") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");\n        }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/incremental.cc",0x535,"set_final_data_size")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0x535") (, ",") (string_literal ""set_final_data_size"" (" """) (string_content "set_final_data_size") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar5 = *plVar6;" (assignment_expression "lVar5 = *plVar6" (identifier "lVar5") (= "=") (pointer_expression "*plVar6" (* "*") (identifier "plVar6"))) (; ";")) (expression_statement "iVar7 = (int)(plVar6[1] - lVar5 >> 3);" (assignment_expression "iVar7 = (int)(plVar6[1] - lVar5 >> 3)" (identifier "iVar7") (= "=") (cast_expression "(int)(plVar6[1] - lVar5 >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(plVar6[1] - lVar5 >> 3)" (( "(") (binary_expression "plVar6[1] - lVar5 >> 3" (binary_expression "plVar6[1] - lVar5" (subscript_expression "plVar6[1]" (identifier "plVar6") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "lVar5")) (>> ">>") (number_literal "3")) () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar11 = 0;\n          lVar8 = 0;\n          while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }\n          uVar13 = uVar13 + iVar11 * 4;\n        }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" (identifier "lVar8") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            lVar5 = *(long *)(lVar5 + lVar8);\n            if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }\n            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;\n            lVar5 = *plVar6;\n            lVar8 = lVar8 + 8;\n          }" ({ "{") (expression_statement "lVar5 = *(long *)(lVar5 + lVar8);" (assignment_expression "lVar5 = *(long *)(lVar5 + lVar8)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(lVar5 + lVar8)" (* "*") (cast_expression "(long *)(lVar5 + lVar8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + lVar8)" (( "(") (binary_expression "lVar5 + lVar8" (identifier "lVar5") (+ "+") (identifier "lVar8")) () ")"))))) (; ";")) (if_statement "if (lVar5 != 0) {\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }" (if "if") (parenthesized_expression "(lVar5 != 0)" (( "(") (binary_expression "lVar5 != 0" (identifier "lVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }\n              if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }\n              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);\n            }" ({ "{") (if_statement "if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }" (if "if") (parenthesized_expression "((*(byte *)(lVar5 + 0x3a) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(lVar5 + 0x3a) & 0x10) != 0" (parenthesized_expression "(*(byte *)(lVar5 + 0x3a) & 0x10)" (( "(") (binary_expression "*(byte *)(lVar5 + 0x3a) & 0x10" (pointer_expression "*(byte *)(lVar5 + 0x3a)" (* "*") (cast_expression "(byte *)(lVar5 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x3a)" (( "(") (binary_expression "lVar5 + 0x3a" (identifier "lVar5") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);\n              }" ({ "{") (expression_statement "lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);" (assignment_expression "lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5)" (identifier "lVar5") (= "=") (call_expression "FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5)" (identifier "FUN_0021ec60") (argument_list "(*(undefined8 *)(param_1 + 0x40),lVar5)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (, ",") (identifier "lVar5") () ")")))) (; ";")) (} "}"))) (if_statement "if (*(int *)(lVar5 + 0x1c) == 0) {\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }" (if "if") (parenthesized_expression "(*(int *)(lVar5 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(lVar5 + 0x1c) == 0" (pointer_expression "*(int *)(lVar5 + 0x1c)" (* "*") (cast_expression "(int *)(lVar5 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x1c)" (( "(") (binary_expression "lVar5 + 0x1c" (identifier "lVar5") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");\n              }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");" (call_expression "FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/symtab.h",0x180,"symtab_index")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0x180") (, ",") (string_literal ""symtab_index"" (" """) (string_content "symtab_index") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);" (assignment_expression "iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1)" (identifier "iVar11") (= "=") (binary_expression "iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1)" (identifier "iVar11") (+ "+") (call_expression "(uint)(*(int *)(lVar5 + 0x1c) != -1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(lVar5 + 0x1c) != -1)" (( "(") (binary_expression "*(int *)(lVar5 + 0x1c) != -1" (pointer_expression "*(int *)(lVar5 + 0x1c)" (* "*") (cast_expression "(int *)(lVar5 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x1c)" (( "(") (binary_expression "lVar5 + 0x1c" (identifier "lVar5") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-1")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((ulong)(iVar7 - 1) << 3 == lVar8) break;" (if "if") (parenthesized_expression "((ulong)(iVar7 - 1) << 3 == lVar8)" (( "(") (binary_expression "(ulong)(iVar7 - 1) << 3 == lVar8" (binary_expression "(ulong)(iVar7 - 1) << 3" (call_expression "(ulong)(iVar7 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar7 - 1)" (( "(") (binary_expression "iVar7 - 1" (identifier "iVar7") (- "-") (number_literal "1")) () ")"))) (<< "<<") (number_literal "3")) (== "==") (identifier "lVar8")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = *plVar6;" (assignment_expression "lVar5 = *plVar6" (identifier "lVar5") (= "=") (pointer_expression "*plVar6" (* "*") (identifier "plVar6"))) (; ";")) (expression_statement "lVar8 = lVar8 + 8;" (assignment_expression "lVar8 = lVar8 + 8" (identifier "lVar8") (= "=") (binary_expression "lVar8 + 8" (identifier "lVar8") (+ "+") (number_literal "8"))) (; ";")) (} "}"))) (expression_statement "uVar13 = uVar13 + iVar11 * 4;" (assignment_expression "uVar13 = uVar13 + iVar11 * 4" (identifier "uVar13") (= "=") (binary_expression "uVar13 + iVar11 * 4" (identifier "uVar13") (+ "+") (binary_expression "iVar11 * 4" (identifier "iVar11") (* "*") (number_literal "4")))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();\n        if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }\n        *(int *)(*plVar12 + 0x18) = iVar7;\n        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;" (case "case") (number_literal "5") (: ":") (expression_statement "lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();" (assignment_expression "lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))()" (identifier "lVar5") (= "=") (call_expression "(**(code **)(*(long *)*plVar12 + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)*plVar12 + 0x18))" (( "(") (pointer_expression "**(code **)(*(long *)*plVar12 + 0x18)" (* "*") (pointer_expression "*(code **)(*(long *)*plVar12 + 0x18)" (* "*") (cast_expression "(code **)(*(long *)*plVar12 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*plVar12 + 0x18)" (( "(") (binary_expression "*(long *)*plVar12 + 0x18" (pointer_expression "*(long *)*plVar12" (* "*") (cast_expression "(long *)*plVar12" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar12" (* "*") (identifier "plVar12")))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (lVar5 == 0) {\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");\n        }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");" (call_expression "FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/incremental.cc",0x510,"set_final_data_size")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0x510") (, ",") (string_literal ""set_final_data_size"" (" """) (string_content "set_final_data_size") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*(int *)(*plVar12 + 0x18) = iVar7;" (assignment_expression "*(int *)(*plVar12 + 0x18) = iVar7" (pointer_expression "*(int *)(*plVar12 + 0x18)" (* "*") (cast_expression "(int *)(*plVar12 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar12 + 0x18)" (( "(") (binary_expression "*plVar12 + 0x18" (pointer_expression "*plVar12" (* "*") (identifier "plVar12")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;" (assignment_expression "uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4" (identifier "uVar13") (= "=") (binary_expression "iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4" (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) (+ "+") (binary_expression "(int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4" (cast_expression "(int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3)" (( "(") (binary_expression "*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3" (binary_expression "*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38)" (pointer_expression "*(long *)(lVar5 + 0x40)" (* "*") (cast_expression "(long *)(lVar5 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x40)" (( "(") (binary_expression "lVar5 + 0x40" (identifier "lVar5") (+ "+") (number_literal "0x40")) () ")")))) (- "-") (pointer_expression "*(long *)(lVar5 + 0x38)" (* "*") (cast_expression "(long *)(lVar5 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x38)" (( "(") (binary_expression "lVar5 + 0x38" (identifier "lVar5") (+ "+") (number_literal "0x38")) () ")"))))) (>> ">>") (number_literal "3")) () ")"))) (* "*") (number_literal "4")))) (; ";"))) (} "}"))) (if_statement "if ((uVar13 & 4) != 0) {\n        uVar13 = uVar13 + 4;\n      }" (if "if") (parenthesized_expression "((uVar13 & 4) != 0)" (( "(") (binary_expression "(uVar13 & 4) != 0" (parenthesized_expression "(uVar13 & 4)" (( "(") (binary_expression "uVar13 & 4" (identifier "uVar13") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar13 = uVar13 + 4;\n      }" ({ "{") (expression_statement "uVar13 = uVar13 + 4;" (assignment_expression "uVar13 = uVar13 + 4" (identifier "uVar13") (= "=") (binary_expression "uVar13 + 4" (identifier "uVar13") (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (expression_statement "uVar14 = (ulong)uVar13;" (assignment_expression "uVar14 = (ulong)uVar13" (identifier "uVar14") (= "=") (cast_expression "(ulong)uVar13" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar13"))) (; ";")) (expression_statement "plVar12 = plVar12 + 1;" (assignment_expression "plVar12 = plVar12 + 1" (identifier "plVar12") (= "=") (binary_expression "plVar12 + 1" (identifier "plVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long *)plVar2[1] != plVar12)" (( "(") (binary_expression "(long *)plVar2[1] != plVar12" (cast_expression "(long *)plVar2[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar2[1]" (identifier "plVar2") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "plVar12")) () ")")) (; ";")) (} "}"))) (expression_statement "bVar1 = *(byte *)(param_1 + 0x20);" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x20)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(param_1 + 0x20)" (* "*") (cast_expression "(byte *)(param_1 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {\n                    \n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }" (if "if") (parenthesized_expression "(((bVar1 & 2) != 0) || ((bVar1 & 8) != 0))" (( "(") (binary_expression "((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)" (parenthesized_expression "((bVar1 & 2) != 0)" (( "(") (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((bVar1 & 8) != 0)" (( "(") (binary_expression "(bVar1 & 8) != 0" (parenthesized_expression "(bVar1 & 8)" (( "(") (binary_expression "bVar1 & 8" (identifier "bVar1") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    \n    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");\n  }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");" (call_expression "FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/output.h",0x218,"set_data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x218") (, ",") (string_literal ""set_data_size"" (" """) (string_content "set_data_size") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*(ulong *)(param_1 + 0x10) = uVar14;" (assignment_expression "*(ulong *)(param_1 + 0x10) = uVar14" (pointer_expression "*(ulong *)(param_1 + 0x10)" (* "*") (cast_expression "(ulong *)(param_1 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(byte *)(param_1 + 0x20) = bVar1 | 2;" (assignment_expression "*(byte *)(param_1 + 0x20) = bVar1 | 2" (pointer_expression "*(byte *)(param_1 + 0x20)" (* "*") (cast_expression "(byte *)(param_1 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "bVar1 | 2" (identifier "bVar1") (| "|") (number_literal "2"))) (; ";")) (if_statement "if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(plVar2[0xc] + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar2[0xc] + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(plVar2[0xc] + 0x20) & 2" (pointer_expression "*(byte *)(plVar2[0xc] + 0x20)" (* "*") (cast_expression "(byte *)(plVar2[0xc] + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2[0xc] + 0x20)" (( "(") (binary_expression "plVar2[0xc] + 0x20" (subscript_expression "plVar2[0xc]" (identifier "plVar2") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;\n    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }\n  }" ({ "{") (expression_statement "*(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;" (assignment_expression "*(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2" (pointer_expression "*(ulong *)(plVar2[0xc] + 0x10)" (* "*") (cast_expression "(ulong *)(plVar2[0xc] + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2[0xc] + 0x10)" (( "(") (binary_expression "plVar2[0xc] + 0x10" (subscript_expression "plVar2[0xc]" (identifier "plVar2") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "(ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2" (binary_expression "(ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(*(long *)(param_1 + 0x40) + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x40) + 0x18)" (( "(") (binary_expression "*(long *)(param_1 + 0x40) + 0x18" (pointer_expression "*(long *)(param_1 + 0x40)" (* "*") (cast_expression "(long *)(param_1 + 0x40)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (<< "<<") (number_literal "2"))) (; ";")) (if_statement "if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }" (if "if") (parenthesized_expression "((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(plVar2[0xd] + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar2[0xd] + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(plVar2[0xd] + 0x20) & 2" (pointer_expression "*(byte *)(plVar2[0xd] + 0x20)" (* "*") (cast_expression "(byte *)(plVar2[0xd] + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2[0xd] + 0x20)" (( "(") (binary_expression "plVar2[0xd] + 0x20" (subscript_expression "plVar2[0xd]" (identifier "plVar2") ([ "[") (number_literal "0xd") (] "]")) (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);\n      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);\n      if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }\n      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);\n      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);\n      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }\n    }" ({ "{") (expression_statement "*(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);" (assignment_expression "*(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4)" (pointer_expression "*(ulong *)(plVar2[0xd] + 0x10)" (* "*") (cast_expression "(ulong *)(plVar2[0xd] + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2[0xd] + 0x10)" (( "(") (binary_expression "plVar2[0xd] + 0x10" (subscript_expression "plVar2[0xd]" (identifier "plVar2") ([ "[") (number_literal "0xd") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (call_expression "(ulong)(uint)((int)plVar2[0xf] << 4)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "((int)plVar2[0xf] << 4)" (( "(") (binary_expression "(int)plVar2[0xf] << 4" (cast_expression "(int)plVar2[0xf]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar2[0xf]" (identifier "plVar2") ([ "[") (number_literal "0xf") (] "]"))) (<< "<<") (number_literal "4")) () ")")))) (; ";")) (expression_statement "plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);" (assignment_expression "plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18)" (identifier "plVar12") (= "=") (pointer_expression "*(long **)(PTR_DAT_003be6b0 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_003be6b0 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_003be6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_003be6b0 + 0x18" (identifier "PTR_DAT_003be6b0") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (plVar12 == (long *)0x0) {\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }" (if "if") (parenthesized_expression "(plVar12 == (long *)0x0)" (( "(") (binary_expression "plVar12 == (long *)0x0" (identifier "plVar12") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");\n      }" ({ "{") (expression_statement "FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");" (call_expression "FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target")" (identifier "FUN_0016cdf0") (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 "iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);" (assignment_expression "iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(*plVar12 + 0x188))(plVar12)" (parenthesized_expression "(**(code **)(*plVar12 + 0x188))" (( "(") (pointer_expression "**(code **)(*plVar12 + 0x188)" (* "*") (pointer_expression "*(code **)(*plVar12 + 0x188)" (* "*") (cast_expression "(code **)(*plVar12 + 0x188)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar12 + 0x188)" (( "(") (binary_expression "*plVar12 + 0x188" (pointer_expression "*plVar12" (* "*") (identifier "plVar12")) (+ "+") (number_literal "0x188")) () ")"))))) () ")")) (argument_list "(plVar12)" (( "(") (identifier "plVar12") () ")")))) (; ";")) (expression_statement "iVar10 = (**(code **)(*plVar12 + 400))(plVar12);" (assignment_expression "iVar10 = (**(code **)(*plVar12 + 400))(plVar12)" (identifier "iVar10") (= "=") (call_expression "(**(code **)(*plVar12 + 400))(plVar12)" (parenthesized_expression "(**(code **)(*plVar12 + 400))" (( "(") (pointer_expression "**(code **)(*plVar12 + 400)" (* "*") (pointer_expression "*(code **)(*plVar12 + 400)" (* "*") (cast_expression "(code **)(*plVar12 + 400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar12 + 400)" (( "(") (binary_expression "*plVar12 + 400" (pointer_expression "*plVar12" (* "*") (identifier "plVar12")) (+ "+") (number_literal "400")) () ")"))))) () ")")) (argument_list "(plVar12)" (( "(") (identifier "plVar12") () ")")))) (; ";")) (if_statement "if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }" (if "if") (parenthesized_expression "((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(plVar2[0xe] + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(plVar2[0xe] + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(plVar2[0xe] + 0x20) & 2" (pointer_expression "*(byte *)(plVar2[0xe] + 0x20)" (* "*") (cast_expression "(byte *)(plVar2[0xe] + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2[0xe] + 0x20)" (( "(") (binary_expression "plVar2[0xe] + 0x20" (subscript_expression "plVar2[0xe]" (identifier "plVar2") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);\n        return;\n      }" ({ "{") (expression_statement "*(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);" (assignment_expression "*(ulong *)(plVar2[0xe] + 0x10) =\n             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4)" (pointer_expression "*(ulong *)(plVar2[0xe] + 0x10)" (* "*") (cast_expression "(ulong *)(plVar2[0xe] + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar2[0xe] + 0x10)" (( "(") (binary_expression "plVar2[0xe] + 0x10" (subscript_expression "plVar2[0xe]" (identifier "plVar2") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (call_expression "(ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4)" (( "(") (binary_expression "(iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4" (parenthesized_expression "(iVar9 + 0xbU & 0xfffffffc)" (( "(") (binary_expression "iVar9 + 0xbU & 0xfffffffc" (binary_expression "iVar9 + 0xbU" (identifier "iVar9") (+ "+") (number_literal "0xbU")) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (binary_expression "(iVar10 + iVar9 * 2) * 4" (parenthesized_expression "(iVar10 + iVar9 * 2)" (( "(") (binary_expression "iVar10 + iVar9 * 2" (identifier "iVar10") (+ "+") (binary_expression "iVar9 * 2" (identifier "iVar9") (* "*") (number_literal "2"))) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x231") (, ",") (string_literal ""set_current_data_size_for_child"" (" """) (string_content "set_current_data_size_for_child") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void set_final_data_size(Output_section_incremental_inputs<32,_false> *
   this) */

void __thiscall
var_1::Output_section_incremental_inputs<32,_false>::set_final_data_size
          (Output_section_incremental_inputs<32,_false> *this)

{
  byte var_19;
  type_1 *pIVar2;
  type_2 var_4;
  type_3 *pIVar4;
  type_4 *var_20;
  long var_13;
  int var_15;
  int var_18;
  long var_10;
  type_5 extraout_var_00;
  long *var_14;
  type_6 *var_16;
  type_5 extraout_var_01;
  type_5 extraout_var_02;
  long var_12;
  type_7 var_7;
  type_7 var_6;
  type_2 var_5;
  type_7 var_11;
  type_8 uVar16;
  type_5 extraout_var;
  
  pIVar2 = this->inputs_;
  var_4 = (pIVar2->inputs_).
            super__Vector_base<var_1::type_3*,var_2::allocator<var_1::type_3*>var_3>
            ._M_impl._M_finish;
  var_5 = (pIVar2->inputs_).
             super__Vector_base<var_1::type_3*,var_2::allocator<var_1::type_3*>var_3>
             ._M_impl._M_start;
  uVar16 = (type_8)((int)((long)var_4 - (long)var_5 >> 3) * 0x18 + 0x10);
  if (var_4 != var_5) {
    var_6 = 0;
    var_7 = 0x10;
    do {
      pIVar4 = *var_5;
      pIVar4->file_index_ = var_6;
      var_6 = var_6 + 1;
      pIVar4->offset_ = var_7;
      var_7 = var_7 + 0x18;
      var_15 = (*pIVar4->_vptr_Incremental_input_entry[2])();
      var_11 = (type_7)uVar16;
      switch(var_15) {
      default:
                    /* WARNING: Subroutine does not return */
        var_8("../../gold/incremental.cc",0x553,"set_final_data_size");
      case 1:
      case 2:
        var_15 = (*(*var_5)->_vptr_Incremental_input_entry[4])();
        var_10 = var_9(extraout_var_01,var_15);
        if (var_10 == 0) {
                    /* WARNING: Subroutine does not return */
          var_8("../../gold/incremental.cc",0x51c,"set_final_data_size");
        }
        var_14 = *(long **)(var_10 + 0x38);
        (*var_5)->info_offset_ = var_11;
        var_12 = *(long *)(var_10 + 0x50);
        var_13 = *(long *)(var_10 + 0x48);
        var_14 = (long *)(**(type_9 **)(*var_14 + 0xe8))();
        var_11 = var_11 + 0x20 + (int)(var_12 - var_13 >> 3) * -0x55555550 +
                 (int)(*(long *)(var_10 + 0x68) - *(long *)(var_10 + 0x60) >> 3) * 4 +
                 (int)(var_14[1] - *var_14 >> 3) * 0x14;
        break;
      case 3:
        var_15 = (*(*var_5)->_vptr_Incremental_input_entry[6])();
        var_10 = var_9(extraout_var_02,var_15);
        if (var_10 == 0) {
                    /* WARNING: Subroutine does not return */
          var_8("../../gold/incremental.cc",0x548,"set_final_data_size");
        }
        var_12 = *(long *)(var_10 + 0x40);
        var_13 = *(long *)(var_10 + 0x38);
        (*var_5)->info_offset_ = var_11;
        var_11 = var_11 + 8 +
                 ((int)(*(long *)(var_10 + 0x58) - *(long *)(var_10 + 0x50) >> 3) +
                 (int)(var_12 - var_13 >> 3)) * 4;
        break;
      case 4:
        var_15 = (*(*var_5)->_vptr_Incremental_input_entry[5])();
        if (var_9(extraout_var_00,var_15) == 0) {
                    /* WARNING: Subroutine does not return */
          var_8("../../gold/incremental.cc",0x52f,"set_final_data_size");
        }
        var_10 = **(long **)(var_9(extraout_var_00,var_15) + 0x40);
        (*var_5)->info_offset_ = var_11;
        var_11 = var_11 + 8;
        var_14 = (long *)(**(type_9 **)(var_10 + 0xe8))();
        if (var_14 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
          var_8("../../gold/incremental.cc",0x535,"set_final_data_size");
        }
        var_10 = *var_14;
        var_15 = (int)(var_14[1] - var_10 >> 3);
        if (var_15 != 0) {
          var_18 = 0;
          var_12 = 0;
          while( true ) {
            var_16 = *(type_6 **)(var_10 + var_12);
            if (var_16 != (type_6 *)0x0) {
              if ((var_16->field_0x3a & 0x10) != 0) {
                var_16 = Symbol_table::var_17(this->symtab_,var_16);
              }
              if (var_16->symtab_index_ == 0) {
                    /* WARNING: Subroutine does not return */
                var_8("../../gold/symtab.h",0x180,"symtab_index");
              }
              var_18 = var_18 + (type_7)(var_16->symtab_index_ != 0xffffffff);
            }
            if ((type_8)(var_15 - 1) << 3 == var_12) break;
            var_10 = *var_14;
            var_12 = var_12 + 8;
          }
          var_11 = var_11 + var_18 * 4;
        }
        break;
      case 5:
        var_15 = (*(*var_5)->_vptr_Incremental_input_entry[3])();
        var_10 = var_9(extraout_var,var_15);
        if (var_10 == 0) {
                    /* WARNING: Subroutine does not return */
          var_8("../../gold/incremental.cc",0x510,"set_final_data_size");
        }
        (*var_5)->info_offset_ = var_11;
        var_11 = var_11 + 4 + (int)(*(long *)(var_10 + 0x40) - *(long *)(var_10 + 0x38) >> 3) * 4;
      }
      if ((var_11 & 4) != 0) {
        var_11 = var_11 + 4;
      }
      uVar16 = (type_8)var_11;
      var_5 = var_5 + 1;
    } while ((pIVar2->inputs_).
             super__Vector_base<var_1::type_3*,var_2::allocator<var_1::type_3*>var_3>
             ._M_impl._M_finish != var_5);
  }
  var_19 = (this->super_Output_section_data).super_Output_data.field_0x20;
  if (((var_19 & 2) != 0) || ((var_19 & 8) != 0)) {
                    /* WARNING: Subroutine does not return */
    var_8("../../gold/output.h",0x218,"set_data_size");
  }
  (this->super_Output_section_data).super_Output_data.data_size_ = uVar16;
  (this->super_Output_section_data).super_Output_data.field_0x20 = var_19 | 2;
  if (((pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.
       super_Output_data.field_0x20 & 2) == 0) {
    (pIVar2->symtab_section_->super_Output_section_data_build).super_Output_section_data.
    super_Output_data.data_size_ = (type_8)this->symtab_->output_count_ << 2;
    if (((pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.
         super_Output_data.field_0x20 & 2) == 0) {
      (pIVar2->relocs_section_->super_Output_section_data_build).super_Output_section_data.
      super_Output_data.data_size_ = (type_8)(pIVar2->reloc_count_ << 4);
      var_20 = parameters->target_;
      if (var_20 == (type_4 *)0x0) {
                    /* WARNING: Subroutine does not return */
        var_8("../../gold/parameters.h",0x73,"sized_target");
      }
      var_15 = (**(type_9 **)(*(long *)var_20 + 0x188))(var_20);
      var_18 = (**(type_9 **)(*(long *)var_20 + 400))(var_20);
      if (((pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.
           super_Output_data.field_0x20 & 2) == 0) {
        (pIVar2->got_plt_section_->super_Output_section_data_build).super_Output_section_data.
        super_Output_data.data_size_ =
             (type_8)((var_15 + 0xbU & 0xfffffffc) + (var_18 + var_15 * 2) * 4);
        return;
      }
    }
  }
                    /* WARNING: Subroutine does not return */
  var_8("../../gold/output.h",0x231,"set_current_data_size_for_child");
}


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

void MASKED(long param_1)

{
  byte bVar1;
  long *plVar2;
  long lVar3;
  undefined4 uVar4;
  long lVar5;
  long *plVar6;
  int iVar7;
  long lVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  long *plVar12;
  uint uVar13;
  ulong uVar14;
  
  plVar2 = *(long **)(param_1 + 0x38);
  plVar12 = (long *)*plVar2;
  uVar14 = (ulong)((int)(plVar2[1] - (long)plVar12 >> 3) * 0x18 + 0x10);
  if ((long *)plVar2[1] != plVar12) {
    iVar10 = 0;
    iVar9 = 0x10;
    do {
      plVar6 = (long *)*plVar12;
      *(int *)(plVar6 + 2) = iVar10;
      iVar10 = iVar10 + 1;
      *(int *)((long)plVar6 + 0x14) = iVar9;
      iVar9 = iVar9 + 0x18;
      uVar4 = (**(code **)(*plVar6 + 0x10))();
      iVar7 = (int)uVar14;
      switch(uVar4) {
      default:
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/incremental.cc",0x553,"set_final_data_size");
      case 1:
      case 2:
        lVar5 = (**(code **)(*(long *)*plVar12 + 0x20))();
        if (lVar5 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/incremental.cc",0x51c,"set_final_data_size");
        }
        plVar6 = *(long **)(lVar5 + 0x38);
        *(int *)(*plVar12 + 0x18) = iVar7;
        lVar8 = *(long *)(lVar5 + 0x50);
        lVar3 = *(long *)(lVar5 + 0x48);
        plVar6 = (long *)(**(code **)(*plVar6 + 0xe8))();
        uVar13 = iVar7 + 0x20 + (int)(lVar8 - lVar3 >> 3) * -0x55555550 +
                 (int)(*(long *)(lVar5 + 0x68) - *(long *)(lVar5 + 0x60) >> 3) * 4 +
                 (int)(plVar6[1] - *plVar6 >> 3) * 0x14;
        break;
      case 3:
        lVar5 = (**(code **)(*(long *)*plVar12 + 0x30))();
        if (lVar5 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/incremental.cc",0x548,"set_final_data_size");
        }
        lVar8 = *(long *)(lVar5 + 0x40);
        lVar3 = *(long *)(lVar5 + 0x38);
        *(int *)(*plVar12 + 0x18) = iVar7;
        uVar13 = iVar7 + 8 +
                 ((int)(*(long *)(lVar5 + 0x58) - *(long *)(lVar5 + 0x50) >> 3) +
                 (int)(lVar8 - lVar3 >> 3)) * 4;
        break;
      case 4:
        lVar5 = (**(code **)(*(long *)*plVar12 + 0x28))();
        if (lVar5 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/incremental.cc",0x52f,"set_final_data_size");
        }
        lVar5 = **(long **)(lVar5 + 0x40);
        *(int *)(*plVar12 + 0x18) = iVar7;
        uVar13 = iVar7 + 8;
        plVar6 = (long *)(**(code **)(lVar5 + 0xe8))();
        if (plVar6 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/incremental.cc",0x535,"set_final_data_size");
        }
        lVar5 = *plVar6;
        iVar7 = (int)(plVar6[1] - lVar5 >> 3);
        if (iVar7 != 0) {
          iVar11 = 0;
          lVar8 = 0;
          while( true ) {
            lVar5 = *(long *)(lVar5 + lVar8);
            if (lVar5 != 0) {
              if ((*(byte *)(lVar5 + 0x3a) & 0x10) != 0) {
                lVar5 = FUN_0021ec60(*(undefined8 *)(param_1 + 0x40),lVar5);
              }
              if (*(int *)(lVar5 + 0x1c) == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_0016cdf0("../../gold/symtab.h",0x180,"symtab_index");
              }
              iVar11 = iVar11 + (uint)(*(int *)(lVar5 + 0x1c) != -1);
            }
            if ((ulong)(iVar7 - 1) << 3 == lVar8) break;
            lVar5 = *plVar6;
            lVar8 = lVar8 + 8;
          }
          uVar13 = uVar13 + iVar11 * 4;
        }
        break;
      case 5:
        lVar5 = (**(code **)(*(long *)*plVar12 + 0x18))();
        if (lVar5 == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_0016cdf0("../../gold/incremental.cc",0x510,"set_final_data_size");
        }
        *(int *)(*plVar12 + 0x18) = iVar7;
        uVar13 = iVar7 + 4 + (int)(*(long *)(lVar5 + 0x40) - *(long *)(lVar5 + 0x38) >> 3) * 4;
      }
      if ((uVar13 & 4) != 0) {
        uVar13 = uVar13 + 4;
      }
      uVar14 = (ulong)uVar13;
      plVar12 = plVar12 + 1;
    } while ((long *)plVar2[1] != plVar12);
  }
  bVar1 = *(byte *)(param_1 + 0x20);
  if (((bVar1 & 2) != 0) || ((bVar1 & 8) != 0)) {
                    /* WARNING: Subroutine does not return */
    FUN_0016cdf0("../../gold/output.h",0x218,"set_data_size");
  }
  *(ulong *)(param_1 + 0x10) = uVar14;
  *(byte *)(param_1 + 0x20) = bVar1 | 2;
  if ((*(byte *)(plVar2[0xc] + 0x20) & 2) == 0) {
    *(ulong *)(plVar2[0xc] + 0x10) = (ulong)*(uint *)(*(long *)(param_1 + 0x40) + 0x18) << 2;
    if ((*(byte *)(plVar2[0xd] + 0x20) & 2) == 0) {
      *(ulong *)(plVar2[0xd] + 0x10) = (ulong)(uint)((int)plVar2[0xf] << 4);
      plVar12 = *(long **)(PTR_DAT_003be6b0 + 0x18);
      if (plVar12 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
        FUN_0016cdf0("../../gold/parameters.h",0x73,"sized_target");
      }
      iVar9 = (**(code **)(*plVar12 + 0x188))(plVar12);
      iVar10 = (**(code **)(*plVar12 + 400))(plVar12);
      if ((*(byte *)(plVar2[0xe] + 0x20) & 2) == 0) {
        *(ulong *)(plVar2[0xe] + 0x10) =
             (ulong)((iVar9 + 0xbU & 0xfffffffc) + (iVar10 + iVar9 * 2) * 4);
        return;
      }
    }
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/output.h",0x231,"set_current_data_size_for_child");
}

