
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void do_relocate(Sized_relobj_incr<64,_false> * this, Symbol_table *
   param_1, Layout * layout, Output_file * of) */

void __thiscall
gold::Sized_relobj_incr<64,_false>::do_relocate
          (Sized_relobj_incr<64,_false> *this,Symbol_table *param_1,Layout *layout,Output_file *of)

{
  byte bVar1;
  Output_data_space *pOVar2;
  _func_int_varargs *p_Var3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  Output_symtab_xindex *pOVar7;
  section_offset_type sVar8;
  undefined4 extraout_var;
  Output_file *pOVar9;
  Output_file *this_1;
  pointer pLVar10;
  size_t size;
  uint uVar11;
  uint uVar12;
  Output_file *__src;
  Output_section *pOVar14;
  Sized_relobj_incr<64,_false> *this_01;
  uchar *puVar15;
  uchar *puVar16;
  uint uVar17;
  uchar *puVar18;
  uchar *puVar19;
  Stringpool *local_a0;
  uchar *local_98;
  Stringpool *local_88;
  uchar *local_68;
  Output_symtab_xindex *local_58;
  pair<unsigned_int,_unsigned_int> local_40 [2];
  Xindex *this_00;
  ulong uVar13;
  
  if (this->incr_reloc_count_ == 0) {
    return;
  }
  if (layout->incremental_inputs_ == (Incremental_inputs *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/incremental.cc",0xa01,"do_relocate");
  }
  pOVar2 = layout->incremental_inputs_->relocs_section_;
  bVar1 = (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.
          field_0x20;
  if ((bVar1 & 4) == 0) {
LAB_001a876e:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0xe3,"offset");
  }
  __src = (Output_file *)
          (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.
          offset_;
  if ((bVar1 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
  }
  size = (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.
         data_size_;
  this_1 = (Output_file *)(ulong)(bVar1 & 2);
  this_01 = this;
  if (((long)__src < 0) ||
     (size = (long)&__src->name_ + size, this_1 = of, of->file_size_ < (long)size)) {
LAB_001a86f1:
                    /* WARNING: Subroutine does not return */
    Output_file::get_output_view((Output_file *)this_01,(off_t)__src,size,this_1);
  }
  puVar19 = (uchar *)((long)&__src->name_ + (long)of->base_);
  uVar13 = (ulong)(this->incr_reloc_output_index_ * 0x18);
  puVar15 = puVar19 + uVar13;
  __src = (Output_file *)this->incr_relocs_;
  memcpy(puVar15,__src,(ulong)(this->incr_reloc_count_ * 0x18));
  if (this->incr_reloc_count_ != 0) {
    pOVar14 = (this->ibase_->section_map_).
              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
              _M_impl._M_start[*(uint *)(puVar15 + 4)];
    if (pOVar14 != (Output_section *)0x0) {
      uVar17 = 0;
      do {
        p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];
        if (p_Var3 == Output_section::do_out_shndx) {
          uVar4 = pOVar14->out_shndx_;
          if (uVar4 == 0xffffffff) goto LAB_001a86a9;
        }
        else {
          uVar4 = (*p_Var3)();
        }
        *(uint *)(puVar15 + 4) = uVar4;
        uVar17 = uVar17 + 1;
        if (this->incr_reloc_count_ <= uVar17) goto LAB_001a8308;
        puVar15 = puVar19 + uVar17 * 0x18 + uVar13;
        pOVar14 = (this->ibase_->section_map_).
                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
                  _M_impl._M_start[*(uint *)(puVar15 + 4)];
      } while (pOVar14 != (Output_section *)0x0);
    }
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/incremental.cc",0xa12,"do_relocate");
  }
LAB_001a8308:
  pOVar14 = layout->symtab_section_;
  if (pOVar14 == (Output_section *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/layout.h",0x35a,"symtab_section");
  }
  if (((pOVar14->super_Output_data).field_0x20 & 4) == 0) goto LAB_001a876e;
  uVar4 = this->local_symbol_count_;
  size = (size_t)uVar4;
  uVar17 = uVar4 * 0x18;
  this_01 = (Sized_relobj_incr<64,_false> *)(ulong)uVar17;
  if (uVar17 == 0) {
    local_68 = (uchar *)0x0;
  }
  else {
    pOVar9 = (Output_file *)
             ((ulong)this->local_symbol_offset_ + (pOVar14->super_Output_data).offset_);
    this_1 = pOVar9;
    if (((long)pOVar9 < 0) ||
       (this_1 = (Output_file *)((long)&pOVar9->name_ + (long)this_01), __src = of,
       of->file_size_ < (long)this_1)) goto LAB_001a86f1;
    local_68 = (uchar *)((long)&pOVar9->name_ + (long)of->base_);
  }
  uVar12 = this->output_local_dynsym_count_ * 0x18;
  uVar13 = (ulong)uVar12;
  if (uVar12 == 0) {
    pOVar7 = layout->symtab_xindex_;
    local_58 = layout->dynsym_xindex_;
    if (uVar4 == 0) {
      return;
    }
    local_98 = (uchar *)0x0;
  }
  else {
    this_1 = (Output_file *)(ulong)this->local_dynsym_offset_;
    __src = of;
    if (of->file_size_ < (long)((long)&this_1->name_ + uVar13)) goto LAB_001a86f1;
    local_98 = (uchar *)((long)&this_1->name_ + (long)of->base_);
    pOVar7 = layout->symtab_xindex_;
    local_58 = layout->dynsym_xindex_;
    if (uVar4 == 0) goto LAB_001a8756;
  }
  local_88 = &layout->dynpool_;
  local_a0 = &layout->sympool_;
  uVar4 = 0;
  puVar15 = local_98;
  puVar19 = local_68;
LAB_001a8483:
  do {
    pLVar10 = (this->local_symbols_).
              super__Vector_base<gold::Sized_relobj_incr<64,_false>::Local_symbol,_std::allocator<gold::Sized_relobj_incr<64,_false>::Local_symbol>_>
              ._M_impl._M_start + uVar4;
    uVar11 = *(uint *)&pLVar10->field_0x14 & 0xfffffff;
    if (uVar11 < 0xff00) {
LAB_001a84aa:
      pOVar14 = (this->ibase_->section_map_).
                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
                _M_impl._M_start[uVar11];
      p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];
      if (p_Var3 == Output_section::do_out_shndx) {
        uVar5 = pOVar14->out_shndx_;
        if (uVar5 == 0xffffffff) {
LAB_001a86a9:
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");
        }
      }
      else {
        uVar5 = (*p_Var3)();
      }
      uVar11 = uVar5;
      if (0xfeff < uVar5) {
        uVar11 = 0xffffffff;
        local_40[0].first = this->local_symbol_index_ + uVar4;
        local_40[0].second = uVar5;
        std::
        vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>
        ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&pOVar7->entries_,local_40);
        if ((char)pLVar10->field_0x1b < '\0') {
          local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff;
          local_40[0].second = uVar5;
          std::
          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>
          ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);
        }
      }
    }
    else if (uVar11 == 0xffff) {
      this_00 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;
      if (this_00 == (Xindex *)0x0) {
        iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]
                )(this);
        this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);
        (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00;
      }
      uVar11 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar4);
      goto LAB_001a84aa;
    }
    puVar18 = puVar19 + 0x18;
    sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar10->name);
    *(int *)puVar19 = (int)sVar8;
    *(Address *)(puVar19 + 8) = pLVar10->st_value;
    *(ulong *)(puVar19 + 0x10) = (ulong)pLVar10->st_size;
    bVar1 = pLVar10->field_0x17;
    puVar19[5] = '\0';
    *(short *)(puVar19 + 6) = (short)uVar11;
    puVar19[4] = bVar1 >> 4;
    puVar19 = puVar18;
    if ((char)pLVar10->field_0x1b < '\0') {
      if (local_98 + uVar13 <= puVar15) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");
      }
      puVar16 = puVar15 + 0x18;
      uVar4 = uVar4 + 1;
      sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar10->name);
      *(int *)puVar15 = (int)sVar8;
      *(Address *)(puVar15 + 8) = pLVar10->st_value;
      *(ulong *)(puVar15 + 0x10) = (ulong)pLVar10->st_size;
      bVar1 = pLVar10->field_0x17;
      puVar15[5] = '\0';
      *(short *)(puVar15 + 6) = (short)uVar11;
      puVar15[4] = bVar1 >> 4;
      puVar15 = puVar16;
      if (this->local_symbol_count_ <= uVar4) break;
      goto LAB_001a8483;
    }
    uVar4 = uVar4 + 1;
    puVar16 = puVar15;
  } while (uVar4 < this->local_symbol_count_);
  if ((uVar17 != 0) && ((Sized_relobj_incr<64,_false> *)(puVar18 + -(long)local_68) != this_01)) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/incremental.cc",0xa62,"do_relocate");
  }
  if ((uVar12 == 0) || ((long)puVar16 - (long)local_98 == uVar13)) {
    return;
  }
LAB_001a8756:
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/incremental.cc",0xa69,"do_relocate");
}



void FUN_001a81c0(long *param_1,undefined8 param_2,long param_3,long param_4)

{
  byte bVar1;
  code *pcVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  long lVar6;
  undefined8 *puVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  long lVar11;
  long *plVar13;
  void *__dest;
  undefined4 *puVar14;
  undefined4 *puVar15;
  uint uVar16;
  undefined4 *puVar17;
  undefined4 *puVar18;
  long local_a0;
  undefined4 *local_98;
  long local_88;
  undefined4 *local_68;
  long local_58;
  uint local_40;
  uint local_3c;
  ulong uVar12;
  
  if (*(int *)((long)param_1 + 0x15c) == 0) {
    return;
  }
  if (*(long *)(param_3 + 0x378) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");
  }
  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);
  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {
LAB_001a876e:
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/output.h",0xe3,"offset");
  }
  lVar11 = *(long *)(lVar6 + 0x18);
  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/output.h",0xcf,"data_size");
  }
  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {
LAB_001a86f1:
                    /* WARNING: Subroutine does not return */
    FUN_0019ff30();
  }
  lVar11 = lVar11 + *(long *)(param_4 + 0x18);
  uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);
  __dest = (void *)(lVar11 + uVar12);
  memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));
  if (*(int *)((long)param_1 + 0x15c) != 0) {
    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);
    if (plVar13 != (long *)0x0) {
      uVar16 = 0;
      do {
        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {
          iVar3 = *(int *)((long)plVar13 + 0x7c);
          if (iVar3 == -1) goto LAB_001a86a9;
        }
        else {
          iVar3 = (**(code **)(*plVar13 + 0x58))();
        }
        *(int *)((long)__dest + 4) = iVar3;
        uVar16 = uVar16 + 1;
        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;
        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);
        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +
                            (ulong)*(uint *)((long)__dest + 4) * 8);
      } while (plVar13 != (long *)0x0);
    }
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");
  }
LAB_001a8308:
  lVar6 = *(long *)(param_3 + 0x2d0);
  if (lVar6 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");
  }
  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;
  iVar3 = (int)param_1[0x24];
  uVar16 = iVar3 * 0x18;
  if (uVar16 == 0) {
    local_68 = (undefined4 *)0x0;
  }
  else {
    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);
    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))
    goto LAB_001a86f1;
    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));
  }
  uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;
  uVar12 = (ulong)uVar10;
  if (uVar10 == 0) {
    lVar6 = *(long *)(param_3 + 0x2d8);
    local_58 = *(long *)(param_3 + 0x2e8);
    if (iVar3 == 0) {
      return;
    }
    local_98 = (undefined4 *)0x0;
  }
  else {
    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;
    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));
    lVar6 = *(long *)(param_3 + 0x2d8);
    local_58 = *(long *)(param_3 + 0x2e8);
    if (iVar3 == 0) goto LAB_001a8756;
  }
  local_88 = param_3 + 0x130;
  local_a0 = param_3 + 0xa0;
  uVar9 = 0;
  puVar14 = local_98;
  puVar18 = local_68;
LAB_001a8483:
  do {
    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);
    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;
    if (uVar8 < 0xff00) {
LAB_001a84aa:
      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);
      pcVar2 = *(code **)(*plVar13 + 0x58);
      if (pcVar2 == FUN_001a28d0) {
        uVar5 = *(uint *)((long)plVar13 + 0x7c);
        if (uVar5 == 0xffffffff) {
LAB_001a86a9:
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");
        }
      }
      else {
        uVar5 = (*pcVar2)();
      }
      uVar8 = uVar5;
      if (0xfeff < uVar5) {
        uVar8 = 0xffffffff;
        local_40 = (int)param_1[0x25] + uVar9;
        local_3c = uVar5;
        FUN_001a7bd0(lVar6 + 0x38,&local_40);
        if (*(char *)((long)puVar7 + 0x1b) < '\0') {
          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;
          local_3c = uVar5;
          FUN_001a7bd0(local_58 + 0x38,&local_40);
        }
      }
    }
    else if (uVar8 == 0xffff) {
      lVar11 = param_1[8];
      if (lVar11 == 0) {
        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);
        param_1[8] = lVar11;
      }
      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);
      goto LAB_001a84aa;
    }
    puVar17 = puVar18 + 6;
    uVar4 = FUN_00247a20(local_a0,puVar7[1]);
    *puVar18 = uVar4;
    *(undefined8 *)(puVar18 + 2) = *puVar7;
    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);
    bVar1 = *(byte *)((long)puVar7 + 0x17);
    *(undefined1 *)((long)puVar18 + 5) = 0;
    *(short *)((long)puVar18 + 6) = (short)uVar8;
    *(byte *)(puVar18 + 1) = bVar1 >> 4;
    puVar18 = puVar17;
    if (*(char *)((long)puVar7 + 0x1b) < '\0') {
      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");
      }
      puVar15 = puVar14 + 6;
      uVar9 = uVar9 + 1;
      uVar4 = FUN_00247a20(local_88,puVar7[1]);
      *puVar14 = uVar4;
      *(undefined8 *)(puVar14 + 2) = *puVar7;
      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);
      bVar1 = *(byte *)((long)puVar7 + 0x17);
      *(undefined1 *)((long)puVar14 + 5) = 0;
      *(short *)((long)puVar14 + 6) = (short)uVar8;
      *(byte *)(puVar14 + 1) = bVar1 >> 4;
      puVar14 = puVar15;
      if (*(uint *)(param_1 + 0x24) <= uVar9) break;
      goto LAB_001a8483;
    }
    uVar9 = uVar9 + 1;
    puVar15 = puVar14;
  } while (uVar9 < *(uint *)(param_1 + 0x24));
  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");
  }
  if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {
    return;
  }
LAB_001a8756:
                    /* WARNING: Subroutine does not return */
  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");
}


MOV EAX,dword ptr [RDI + 0x15c]
TEST EAX,EAX
JZ 0x001a8658
PUSH R15
PUSH R14
MOV R14,RDI
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x78
MOV qword ptr [RSP + 0x20],RDX
MOV RDX,qword ptr [RDX + 0x378]
MOV qword ptr [RSP + 0x8],RCX
TEST RDX,RDX
JZ 0x001a870e
MOV RDX,qword ptr [RDX + 0x68]
MOVZX ECX,byte ptr [RDX + 0x20]
TEST CL,0x4
JZ 0x001a876e
AND ECX,0x2
MOV RSI,qword ptr [RDX + 0x18]
JZ 0x001a8726
MOV RDX,qword ptr [RDX + 0x10]
TEST RSI,RSI
JS 0x001a86f1
MOV RCX,qword ptr [RSP + 0x8]
ADD RDX,RSI
CMP qword ptr [RCX + 0x10],RDX
JL 0x001a86f1
MOV RDX,qword ptr [RSP + 0x8]
ADD RSI,qword ptr [RDX + 0x18]
MOV EDX,dword ptr [RDI + 0x160]
MOV RBX,RSI
LEA R13D,[RDX + RDX*0x2]
LEA EDX,[RAX + RAX*0x2]
SHL R13D,0x3
SHL EDX,0x3
LEA R12,[RSI + R13*0x1]
MOV RSI,qword ptr [RDI + 0x168]
MOV RDI,R12
CALL 0x00144a90
MOV ECX,dword ptr [R14 + 0x15c]
TEST ECX,ECX
JZ 0x001a8308
MOV RAX,qword ptr [R14 + 0xf8]
MOV EDX,dword ptr [R12 + 0x4]
MOV RAX,qword ptr [RAX + 0x90]
MOV RDI,qword ptr [RAX + RDX*0x8]
TEST RDI,RDI
JZ 0x001a86c1
XOR R15D,R15D
LEA RBP,[0x1a28d0]
JMP 0x001a82f4
MOV EAX,dword ptr [RDI + 0x7c]
CMP EAX,-0x1
JZ 0x001a86a9
MOV dword ptr [R12 + 0x4],EAX
ADD R15D,0x1
CMP dword ptr [R14 + 0x15c],R15D
JBE 0x001a8308
LEA R12D,[R15 + R15*0x2]
MOV RAX,qword ptr [R14 + 0xf8]
SHL R12D,0x3
ADD R12,R13
MOV RAX,qword ptr [RAX + 0x90]
ADD R12,RBX
MOV EDX,dword ptr [R12 + 0x4]
MOV RDI,qword ptr [RAX + RDX*0x8]
TEST RDI,RDI
JZ 0x001a86c1
MOV RAX,qword ptr [RDI]
MOV RAX,qword ptr [RAX + 0x58]
CMP RAX,RBP
JZ 0x001a82a8
CALL RAX
JMP 0x001a82b4
MOV RAX,qword ptr [RSP + 0x20]
MOV RAX,qword ptr [RAX + 0x2d0]
TEST RAX,RAX
JZ 0x001a86f6
TEST byte ptr [RAX + 0x20],0x4
JZ 0x001a876e
MOV EDX,dword ptr [R14 + 0x120]
LEA ECX,[RDX + RDX*0x2]
LEA EDI,[RCX*0x8]
MOV dword ptr [RSP + 0x48],EDI
MOV qword ptr [RSP + 0x58],RDI
TEST EDI,EDI
JZ 0x001a8550
MOV ECX,dword ptr [R14 + 0x12c]
ADD RCX,qword ptr [RAX + 0x18]
MOV RAX,RCX
JS 0x001a86f1
MOV RSI,qword ptr [RSP + 0x8]
LEA RCX,[RCX + RDI*0x1]
CMP RCX,qword ptr [RSI + 0x10]
JG 0x001a86f1
ADD RAX,qword ptr [RSI + 0x18]
MOV qword ptr [RSP + 0x40],RAX
MOV EAX,dword ptr [R14 + 0x124]
LEA EAX,[RAX + RAX*0x2]
LEA ESI,[RAX*0x8]
MOV dword ptr [RSP + 0x4c],ESI
MOV qword ptr [RSP + 0x18],RSI
TEST ESI,ESI
JZ 0x001a8660
MOV ECX,dword ptr [R14 + 0x130]
LEA RAX,[RCX + RSI*0x1]
MOV RSI,qword ptr [RSP + 0x8]
CMP RAX,qword ptr [RSI + 0x10]
JG 0x001a86f1
ADD RCX,qword ptr [RSI + 0x18]
MOV RSI,qword ptr [RSP + 0x20]
MOV qword ptr [RSP + 0x10],RCX
LEA RCX,[RSI + 0xa0]
MOV RAX,qword ptr [RSI + 0x2d8]
MOV qword ptr [RSP + 0x8],RCX
LEA RCX,[RSI + 0x130]
MOV qword ptr [RSP + 0x20],RCX
MOV RCX,qword ptr [RSI + 0x2e8]
MOV qword ptr [RSP + 0x50],RCX
TEST EDX,EDX
JZ 0x001a8756
LEA RDX,[RSP + 0x68]
ADD RAX,0x38
MOV R12,qword ptr [RSP + 0x10]
XOR EBP,EBP
MOV R15,qword ptr [RSP + 0x40]
MOV qword ptr [RSP + 0x30],RDX
MOV qword ptr [RSP + 0x38],RAX
JMP 0x001a8483
CMP EBX,0xffff
JZ 0x001a8610
MOV RSI,qword ptr [R13 + 0x8]
MOV RDI,qword ptr [RSP + 0x8]
ADD R15,0x18
CALL 0x00247a20
MOV dword ptr [R15 + -0x18],EAX
MOV RAX,qword ptr [R13]
MOV qword ptr [R15 + -0x10],RAX
MOV EAX,dword ptr [R13 + 0x10]
MOV qword ptr [R15 + -0x8],RAX
MOVZX EAX,byte ptr [R13 + 0x17]
MOV byte ptr [R15 + -0x13],0x0
SHR AL,0x4
MOV word ptr [R15 + -0x12],BX
MOV byte ptr [R15 + -0x14],AL
CMP byte ptr [R13 + 0x1b],0x0
JS 0x001a8560
ADD EBP,0x1
CMP dword ptr [R14 + 0x120],EBP
JBE 0x001a85c5
MOV ECX,EBP
SHL RCX,0x5
ADD RCX,qword ptr [R14 + 0x170]
MOV EBX,dword ptr [RCX + 0x14]
MOV R13,RCX
AND EBX,0xfffffff
MOV EAX,EBX
CMP EBX,0xfeff
JA 0x001a8420
MOV RDX,qword ptr [R14 + 0xf8]
MOV EAX,EAX
LEA RSI,[0x1a28d0]
MOV RDX,qword ptr [RDX + 0x90]
MOV RDI,qword ptr [RDX + RAX*0x8]
MOV RAX,qword ptr [RDI]
MOV RAX,qword ptr [RAX + 0x58]
CMP RAX,RSI
JNZ 0x001a8630
MOV EAX,dword ptr [RDI + 0x7c]
CMP EAX,-0x1
JZ 0x001a86a9
MOV EBX,EAX
CMP EAX,0xfeff
JBE 0x001a842c
MOV EDX,dword ptr [R14 + 0x128]
MOV RSI,qword ptr [RSP + 0x30]
MOV dword ptr [RSP + 0x6c],EAX
MOV EBX,0xffffffff
MOV RDI,qword ptr [RSP + 0x38]
MOV dword ptr [RSP + 0x2c],EAX
ADD EDX,EBP
MOV dword ptr [RSP + 0x68],EDX
CALL 0x001a7bd0
CMP byte ptr [R13 + 0x1b],0x0
MOV EAX,dword ptr [RSP + 0x2c]
JNS 0x001a842c
MOV EDX,dword ptr [R13 + 0x18]
MOV RSI,qword ptr [RSP + 0x30]
MOV dword ptr [RSP + 0x6c],EAX
MOV RAX,qword ptr [RSP + 0x50]
AND EDX,0x7fffffff
LEA RDI,[RAX + 0x38]
MOV dword ptr [RSP + 0x68],EDX
CALL 0x001a7bd0
JMP 0x001a842c
MOV qword ptr [RSP + 0x40],0x0
JMP 0x001a8379
MOV RAX,qword ptr [RSP + 0x10]
ADD RAX,qword ptr [RSP + 0x18]
CMP R12,RAX
JNC 0x001a86d9
MOV RSI,qword ptr [R13 + 0x8]
MOV RDI,qword ptr [RSP + 0x20]
ADD R12,0x18
ADD EBP,0x1
CALL 0x00247a20
MOV dword ptr [R12 + -0x18],EAX
MOV RAX,qword ptr [R13]
MOV qword ptr [R12 + -0x10],RAX
MOV EAX,dword ptr [R13 + 0x10]
MOV qword ptr [R12 + -0x8],RAX
MOVZX EAX,byte ptr [R13 + 0x17]
MOV byte ptr [R12 + -0x13],0x0
SHR AL,0x4
MOV word ptr [R12 + -0x12],BX
MOV byte ptr [R12 + -0x14],AL
CMP dword ptr [R14 + 0x120],EBP
JA 0x001a8483
MOV EDX,dword ptr [RSP + 0x48]
TEST EDX,EDX
JZ 0x001a85e0
MOV RAX,R15
SUB RAX,qword ptr [RSP + 0x40]
CMP RAX,qword ptr [RSP + 0x58]
JNZ 0x001a873e
MOV EAX,dword ptr [RSP + 0x4c]
TEST EAX,EAX
JZ 0x001a85f8
SUB R12,qword ptr [RSP + 0x10]
CMP R12,qword ptr [RSP + 0x18]
JNZ 0x001a8756
ADD RSP,0x78
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,qword ptr [R14 + 0x40]
TEST RDI,RDI
JZ 0x001a8640
MOV EDX,EBP
MOV RSI,R14
CALL 0x001c7c40
JMP 0x001a84aa
CALL RAX
JMP 0x001a84e1
MOV RAX,qword ptr [R14]
MOV RDI,R14
CALL qword ptr [RAX + 0xd8]
MOV RDI,RAX
MOV qword ptr [R14 + 0x40],RAX
JMP 0x001a8619
RET
MOV RAX,qword ptr [RSP + 0x20]
LEA RCX,[RAX + 0xa0]
MOV qword ptr [RSP + 0x8],RCX
LEA RCX,[RAX + 0x130]
MOV qword ptr [RSP + 0x20],RCX
MOV RCX,RAX
MOV RAX,qword ptr [RAX + 0x2d8]
MOV RCX,qword ptr [RCX + 0x2e8]
MOV qword ptr [RSP + 0x50],RCX
TEST EDX,EDX
JZ 0x001a85f8
MOV qword ptr [RSP + 0x10],0x0
JMP 0x001a83f6
LEA RDX,[0x341c30]
MOV ESI,0x1043
LEA RDI,[0x338384]
CALL 0x00199900
LEA RDX,[0x341030]
MOV ESI,0xa12
LEA RDI,[0x340864]
CALL 0x00199900
LEA RDX,[0x341030]
MOV ESI,0xa53
LEA RDI,[0x340864]
CALL 0x00199900
CALL 0x0019ff30
LEA RDX,[0x3415c8]
MOV ESI,0x35a
LEA RDI,[0x340cd4]
CALL 0x00199900
LEA RDX,[0x341030]
MOV ESI,0xa01
LEA RDI,[0x340864]
CALL 0x00199900
LEA RDX,[0x341b60]
MOV ESI,0xcf
LEA RDI,[0x338384]
CALL 0x00199900
LEA RDX,[0x341030]
MOV ESI,0xa62
LEA RDI,[0x340864]
CALL 0x00199900
LEA RDX,[0x341030]
MOV ESI,0xa69
LEA RDI,[0x340864]
CALL 0x00199900
LEA RDX,[0x341b6a]
MOV ESI,0xe3
LEA RDI,[0x338384]
CALL 0x00199900
(translation_unit "void FUN_001a81c0(long *param_1,undefined8 param_2,long param_3,long param_4)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar13;\n  void *__dest;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  long local_a0;\n  undefined4 *local_98;\n  long local_88;\n  undefined4 *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  ulong uVar12;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_001a876e:\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_001a86f1:\n                    /* WARNING: Subroutine does not return */\n    FUN_0019ff30();\n  }\n  lVar11 = lVar11 + *(long *)(param_4 + 0x18);\n  uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);\n  __dest = (void *)(lVar11 + uVar12);\n  memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));\n  if (*(int *)((long)param_1 + 0x15c) != 0) {\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_001a8308:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;\n  iVar3 = (int)param_1[0x24];\n  uVar16 = iVar3 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (undefined4 *)0x0;\n  }\n  else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar10;\n  if (uVar10 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar9 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_001a8483:\n  do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_001a8756:\n                    /* WARNING: Subroutine does not return */\n  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");\n}\n\n" (function_definition "void FUN_001a81c0(long *param_1,undefined8 param_2,long param_3,long param_4)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar13;\n  void *__dest;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  long local_a0;\n  undefined4 *local_98;\n  long local_88;\n  undefined4 *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  ulong uVar12;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_001a876e:\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_001a86f1:\n                    /* WARNING: Subroutine does not return */\n    FUN_0019ff30();\n  }\n  lVar11 = lVar11 + *(long *)(param_4 + 0x18);\n  uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);\n  __dest = (void *)(lVar11 + uVar12);\n  memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));\n  if (*(int *)((long)param_1 + 0x15c) != 0) {\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_001a8308:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;\n  iVar3 = (int)param_1[0x24];\n  uVar16 = iVar3 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (undefined4 *)0x0;\n  }\n  else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar10;\n  if (uVar10 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar9 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_001a8483:\n  do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_001a8756:\n                    /* WARNING: Subroutine does not return */\n  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");\n}" primitive_type (function_declarator "FUN_001a81c0(long *param_1,undefined8 param_2,long param_3,long param_4)" identifier (parameter_list "(long *param_1,undefined8 param_2,long param_3,long param_4)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar13;\n  void *__dest;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  long local_a0;\n  undefined4 *local_98;\n  long local_88;\n  undefined4 *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  ulong uVar12;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_001a876e:\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_001a86f1:\n                    /* WARNING: Subroutine does not return */\n    FUN_0019ff30();\n  }\n  lVar11 = lVar11 + *(long *)(param_4 + 0x18);\n  uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);\n  __dest = (void *)(lVar11 + uVar12);\n  memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));\n  if (*(int *)((long)param_1 + 0x15c) != 0) {\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_001a8308:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;\n  iVar3 = (int)param_1[0x24];\n  uVar16 = iVar3 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (undefined4 *)0x0;\n  }\n  else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar10;\n  if (uVar10 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar9 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_001a8483:\n  do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_001a8756:\n                    /* WARNING: Subroutine does not return */\n  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar13;" (sized_type_specifier "long" long) (pointer_declarator "*plVar13" * identifier) ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "long local_a0;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "long local_58;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (if_statement "if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }" if (parenthesized_expression "(*(int *)((long)param_1 + 0x15c) == 0)" ( (binary_expression "*(int *)((long)param_1 + 0x15c) == 0" (pointer_expression "*(int *)((long)param_1 + 0x15c)" * (cast_expression "(int *)((long)param_1 + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x15c)" ( (binary_expression "(long)param_1 + 0x15c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (*(long *)(param_3 + 0x378) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }" if (parenthesized_expression "(*(long *)(param_3 + 0x378) == 0)" ( (binary_expression "*(long *)(param_3 + 0x378) == 0" (pointer_expression "*(long *)(param_3 + 0x378)" * (cast_expression "(long *)(param_3 + 0x378)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x378)" ( (binary_expression "param_3 + 0x378" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }" { comment (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa01,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;) })) (expression_statement "lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);" (assignment_expression "lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68)" identifier = (pointer_expression "*(long *)(*(long *)(param_3 + 0x378) + 0x68)" * (cast_expression "(long *)(*(long *)(param_3 + 0x378) + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0x378) + 0x68)" ( (binary_expression "*(long *)(param_3 + 0x378) + 0x68" (pointer_expression "*(long *)(param_3 + 0x378)" * (cast_expression "(long *)(param_3 + 0x378)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x378)" ( (binary_expression "param_3 + 0x378" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_001a876e:\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }" if (parenthesized_expression "((*(byte *)(lVar6 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x20) & 4)" ( (binary_expression "*(byte *)(lVar6 + 0x20) & 4" (pointer_expression "*(byte *)(lVar6 + 0x20)" * (cast_expression "(byte *)(lVar6 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001a876e:\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }" { (labeled_statement "LAB_001a876e:\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0xe3,"offset");" statement_identifier : comment (expression_statement "FUN_00199900("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_00199900("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;)) })) (expression_statement "lVar11 = *(long *)(lVar6 + 0x18);" (assignment_expression "lVar11 = *(long *)(lVar6 + 0x18)" identifier = (pointer_expression "*(long *)(lVar6 + 0x18)" * (cast_expression "(long *)(lVar6 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }" if (parenthesized_expression "((*(byte *)(lVar6 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar6 + 0x20) & 2" (pointer_expression "*(byte *)(lVar6 + 0x20)" * (cast_expression "(byte *)(lVar6 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }" { comment (expression_statement "FUN_00199900("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_00199900("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) (if_statement "if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_001a86f1:\n                    /* WARNING: Subroutine does not return */\n    FUN_0019ff30();\n  }" if (parenthesized_expression "((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11))" ( (binary_expression "(lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)" (parenthesized_expression "(lVar11 < 0)" ( (binary_expression "lVar11 < 0" identifier < number_literal) )) || (parenthesized_expression "(*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)" ( (binary_expression "*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11" (pointer_expression "*(long *)(param_4 + 0x10)" * (cast_expression "(long *)(param_4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) < (binary_expression "*(long *)(lVar6 + 0x10) + lVar11" (pointer_expression "*(long *)(lVar6 + 0x10)" * (cast_expression "(long *)(lVar6 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) )))) + identifier)) ))) )) (compound_statement "{\nLAB_001a86f1:\n                    /* WARNING: Subroutine does not return */\n    FUN_0019ff30();\n  }" { (labeled_statement "LAB_001a86f1:\n                    /* WARNING: Subroutine does not return */\n    FUN_0019ff30();" statement_identifier : comment (expression_statement "FUN_0019ff30();" (call_expression "FUN_0019ff30()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "lVar11 = lVar11 + *(long *)(param_4 + 0x18);" (assignment_expression "lVar11 = lVar11 + *(long *)(param_4 + 0x18)" identifier = (binary_expression "lVar11 + *(long *)(param_4 + 0x18)" identifier + (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))))) ;) (expression_statement "uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);" (assignment_expression "uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18)" identifier = (call_expression "(ulong)(uint)((int)param_1[0x2c] * 0x18)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "((int)param_1[0x2c] * 0x18)" ( (binary_expression "(int)param_1[0x2c] * 0x18" (cast_expression "(int)param_1[0x2c]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) * number_literal) )))) ;) (expression_statement "__dest = (void *)(lVar11 + uVar12);" (assignment_expression "__dest = (void *)(lVar11 + uVar12)" identifier = (cast_expression "(void *)(lVar11 + uVar12)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + uVar12)" ( (binary_expression "lVar11 + uVar12" identifier + identifier) )))) ;) (expression_statement "memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));" (call_expression "memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18))" identifier (argument_list "(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18))" ( identifier , (cast_expression "(void *)param_1[0x2d]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x2d]" identifier [ number_literal ])) , (call_expression "(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(*(int *)((long)param_1 + 0x15c) * 0x18)" ( (binary_expression "*(int *)((long)param_1 + 0x15c) * 0x18" (pointer_expression "*(int *)((long)param_1 + 0x15c)" * (cast_expression "(int *)((long)param_1 + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x15c)" ( (binary_expression "(long)param_1 + 0x15c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) * number_literal) ))) ))) ;) (if_statement "if (*(int *)((long)param_1 + 0x15c) != 0) {\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }" if (parenthesized_expression "(*(int *)((long)param_1 + 0x15c) != 0)" ( (binary_expression "*(int *)((long)param_1 + 0x15c) != 0" (pointer_expression "*(int *)((long)param_1 + 0x15c)" * (cast_expression "(int *)((long)param_1 + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x15c)" ( (binary_expression "(long)param_1 + 0x15c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }" { (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8)" identifier = (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8)" * (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8)" ( (binary_expression "*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8" (pointer_expression "*(long *)(param_1[0x1f] + 0x90)" * (cast_expression "(long *)(param_1[0x1f] + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x1f] + 0x90)" ( (binary_expression "param_1[0x1f] + 0x90" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) + number_literal) )))) + (binary_expression "(ulong)*(uint *)((long)__dest + 4) * 8" (binary_expression "(ulong)*(uint *)((long)__dest + 4)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)((long)__dest + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + 4)" ( (binary_expression "(long)__dest + 4" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }" if (parenthesized_expression "(plVar13 != (long *)0x0)" ( (binary_expression "plVar13 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);" do (compound_statement "{\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      }" { (if_statement "if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }" if (parenthesized_expression "(*(code **)(*plVar13 + 0x58) == FUN_001a28d0)" ( (binary_expression "*(code **)(*plVar13 + 0x58) == FUN_001a28d0" (pointer_expression "*(code **)(*plVar13 + 0x58)" * (cast_expression "(code **)(*plVar13 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar13 + 0x58)" ( (binary_expression "*plVar13 + 0x58" (pointer_expression "*plVar13" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }" { (expression_statement "iVar3 = *(int *)((long)plVar13 + 0x7c);" (assignment_expression "iVar3 = *(int *)((long)plVar13 + 0x7c)" identifier = (pointer_expression "*(int *)((long)plVar13 + 0x7c)" * (cast_expression "(int *)((long)plVar13 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar13 + 0x7c)" ( (binary_expression "(long)plVar13 + 0x7c" (cast_expression "(long)plVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar3 == -1) goto LAB_001a86a9;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (goto_statement "goto LAB_001a86a9;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }" { (expression_statement "iVar3 = (**(code **)(*plVar13 + 0x58))();" (assignment_expression "iVar3 = (**(code **)(*plVar13 + 0x58))()" identifier = (call_expression "(**(code **)(*plVar13 + 0x58))()" (parenthesized_expression "(**(code **)(*plVar13 + 0x58))" ( (pointer_expression "**(code **)(*plVar13 + 0x58)" * (pointer_expression "*(code **)(*plVar13 + 0x58)" * (cast_expression "(code **)(*plVar13 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar13 + 0x58)" ( (binary_expression "*plVar13 + 0x58" (pointer_expression "*plVar13" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (expression_statement "*(int *)((long)__dest + 4) = iVar3;" (assignment_expression "*(int *)((long)__dest + 4) = iVar3" (pointer_expression "*(int *)((long)__dest + 4)" * (cast_expression "(int *)((long)__dest + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + 4)" ( (binary_expression "(long)__dest + 4" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (if_statement "if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;" if (parenthesized_expression "(*(uint *)((long)param_1 + 0x15c) <= uVar16)" ( (binary_expression "*(uint *)((long)param_1 + 0x15c) <= uVar16" (pointer_expression "*(uint *)((long)param_1 + 0x15c)" * (cast_expression "(uint *)((long)param_1 + 0x15c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x15c)" ( (binary_expression "(long)param_1 + 0x15c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_001a8308;" goto statement_identifier ;)) (expression_statement "__dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);" (assignment_expression "__dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11)" identifier = (cast_expression "(void *)(uVar16 * 0x18 + uVar12 + lVar11)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar16 * 0x18 + uVar12 + lVar11)" ( (binary_expression "uVar16 * 0x18 + uVar12 + lVar11" (binary_expression "uVar16 * 0x18 + uVar12" (binary_expression "uVar16 * 0x18" identifier * number_literal) + identifier) + identifier) )))) ;) (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8)" identifier = (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8)" * (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8)" ( (binary_expression "*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8" (pointer_expression "*(long *)(param_1[0x1f] + 0x90)" * (cast_expression "(long *)(param_1[0x1f] + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x1f] + 0x90)" ( (binary_expression "param_1[0x1f] + 0x90" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) + number_literal) )))) + (binary_expression "(ulong)*(uint *)((long)__dest + 4) * 8" (binary_expression "(ulong)*(uint *)((long)__dest + 4)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)((long)__dest + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + 4)" ( (binary_expression "(long)__dest + 4" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) * number_literal)) ))))) ;) }) while (parenthesized_expression "(plVar13 != (long *)0x0)" ( (binary_expression "plVar13 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) comment (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa12,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;) })) (labeled_statement "LAB_001a8308:\n  lVar6 = *(long *)(param_3 + 0x2d0);" statement_identifier : (expression_statement "lVar6 = *(long *)(param_3 + 0x2d0);" (assignment_expression "lVar6 = *(long *)(param_3 + 0x2d0)" identifier = (pointer_expression "*(long *)(param_3 + 0x2d0)" * (cast_expression "(long *)(param_3 + 0x2d0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2d0)" ( (binary_expression "param_3 + 0x2d0" identifier + number_literal) ))))) ;)) (if_statement "if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }" { comment (expression_statement "FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");" (call_expression "FUN_00199900("../../gold/layout.h",0x35a,"symtab_section")" identifier (argument_list "("../../gold/layout.h",0x35a,"symtab_section")" ( (string_literal ""../../gold/layout.h"" " string_content ") , number_literal , (string_literal ""symtab_section"" " string_content ") ))) ;) })) (if_statement "if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;" if (parenthesized_expression "((*(byte *)(lVar6 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x20) & 4)" ( (binary_expression "*(byte *)(lVar6 + 0x20) & 4" (pointer_expression "*(byte *)(lVar6 + 0x20)" * (cast_expression "(byte *)(lVar6 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a876e;" goto statement_identifier ;)) (expression_statement "iVar3 = (int)param_1[0x24];" (assignment_expression "iVar3 = (int)param_1[0x24]" identifier = (cast_expression "(int)param_1[0x24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x24]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = iVar3 * 0x18;" (assignment_expression "uVar16 = iVar3 * 0x18" identifier = (binary_expression "iVar3 * 0x18" identifier * number_literal)) ;) (if_statement "if (uVar16 == 0) {\n    local_68 = (undefined4 *)0x0;\n  }\n  else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    local_68 = (undefined4 *)0x0;\n  }" { (expression_statement "local_68 = (undefined4 *)0x0;" (assignment_expression "local_68 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }" else (compound_statement "{\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }" { (expression_statement "lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);" (assignment_expression "lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18)" identifier = (binary_expression "(ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18)" (binary_expression "(ulong)*(uint *)((long)param_1 + 300)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)((long)param_1 + 300)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 300)" ( (binary_expression "(long)param_1 + 300" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + (pointer_expression "*(long *)(lVar6 + 0x18)" * (cast_expression "(long *)(lVar6 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;" if (parenthesized_expression "((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))" ( (binary_expression "(lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16))" (parenthesized_expression "(lVar6 < 0)" ( (binary_expression "lVar6 < 0" identifier < number_literal) )) || (parenthesized_expression "(*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16))" ( (binary_expression "*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)" (pointer_expression "*(long *)(param_4 + 0x10)" * (cast_expression "(long *)(param_4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) < (cast_expression "(long)(lVar6 + (ulong)uVar16)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(lVar6 + (ulong)uVar16)" ( (binary_expression "lVar6 + (ulong)uVar16" identifier + (cast_expression "(ulong)uVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ))) )) (goto_statement "goto LAB_001a86f1;" goto statement_identifier ;)) (expression_statement "local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));" (assignment_expression "local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18))" identifier = (cast_expression "(undefined4 *)(lVar6 + *(long *)(param_4 + 0x18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + *(long *)(param_4 + 0x18))" ( (binary_expression "lVar6 + *(long *)(param_4 + 0x18)" identifier + (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) )))) ;) }))) (expression_statement "uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;" (assignment_expression "uVar10 = *(int *)((long)param_1 + 0x124) * 0x18" identifier = (binary_expression "*(int *)((long)param_1 + 0x124) * 0x18" (pointer_expression "*(int *)((long)param_1 + 0x124)" * (cast_expression "(int *)((long)param_1 + 0x124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x124)" ( (binary_expression "(long)param_1 + 0x124" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) * number_literal)) ;) (expression_statement "uVar12 = (ulong)uVar10;" (assignment_expression "uVar12 = (ulong)uVar10" identifier = (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar10 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }" { (expression_statement "lVar6 = *(long *)(param_3 + 0x2d8);" (assignment_expression "lVar6 = *(long *)(param_3 + 0x2d8)" identifier = (pointer_expression "*(long *)(param_3 + 0x2d8)" * (cast_expression "(long *)(param_3 + 0x2d8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2d8)" ( (binary_expression "param_3 + 0x2d8" identifier + number_literal) ))))) ;) (expression_statement "local_58 = *(long *)(param_3 + 0x2e8);" (assignment_expression "local_58 = *(long *)(param_3 + 0x2e8)" identifier = (pointer_expression "*(long *)(param_3 + 0x2e8)" * (cast_expression "(long *)(param_3 + 0x2e8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2e8)" ( (binary_expression "param_3 + 0x2e8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n      return;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "local_98 = (undefined4 *)0x0;" (assignment_expression "local_98 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }" else (compound_statement "{\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }" { (if_statement "if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;" if (parenthesized_expression "(*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12))" ( (binary_expression "*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)" (pointer_expression "*(long *)(param_4 + 0x10)" * (cast_expression "(long *)(param_4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) < (cast_expression "(long)(*(uint *)(param_1 + 0x26) + uVar12)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(*(uint *)(param_1 + 0x26) + uVar12)" ( (binary_expression "*(uint *)(param_1 + 0x26) + uVar12" (pointer_expression "*(uint *)(param_1 + 0x26)" * (cast_expression "(uint *)(param_1 + 0x26)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x26)" ( (binary_expression "param_1 + 0x26" identifier + number_literal) )))) + identifier) )))) )) (goto_statement "goto LAB_001a86f1;" goto statement_identifier ;)) (expression_statement "local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));" (assignment_expression "local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" identifier = (cast_expression "(undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" ( (binary_expression "(ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18)" (binary_expression "(ulong)*(uint *)(param_1 + 0x26)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(param_1 + 0x26)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x26)" ( (binary_expression "param_1 + 0x26" identifier + number_literal) )))) + (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) )))) ;) (expression_statement "lVar6 = *(long *)(param_3 + 0x2d8);" (assignment_expression "lVar6 = *(long *)(param_3 + 0x2d8)" identifier = (pointer_expression "*(long *)(param_3 + 0x2d8)" * (cast_expression "(long *)(param_3 + 0x2d8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2d8)" ( (binary_expression "param_3 + 0x2d8" identifier + number_literal) ))))) ;) (expression_statement "local_58 = *(long *)(param_3 + 0x2e8);" (assignment_expression "local_58 = *(long *)(param_3 + 0x2e8)" identifier = (pointer_expression "*(long *)(param_3 + 0x2e8)" * (cast_expression "(long *)(param_3 + 0x2e8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2e8)" ( (binary_expression "param_3 + 0x2e8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_001a8756;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001a8756;" goto statement_identifier ;)) }))) (expression_statement "local_88 = param_3 + 0x130;" (assignment_expression "local_88 = param_3 + 0x130" identifier = (binary_expression "param_3 + 0x130" identifier + number_literal)) ;) (expression_statement "local_a0 = param_3 + 0xa0;" (assignment_expression "local_a0 = param_3 + 0xa0" identifier = (binary_expression "param_3 + 0xa0" identifier + number_literal)) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = local_98;" (assignment_expression "puVar14 = local_98" identifier = identifier) ;) (expression_statement "puVar18 = local_68;" (assignment_expression "puVar18 = local_68" identifier = identifier) ;) (labeled_statement "LAB_001a8483:\n  do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));" statement_identifier : (do_statement "do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));" do (compound_statement "{\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  }" { (expression_statement "puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);" (assignment_expression "puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e])" identifier = (cast_expression "(undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e])" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)uVar9 * 0x20 + param_1[0x2e])" ( (binary_expression "(ulong)uVar9 * 0x20 + param_1[0x2e]" (binary_expression "(ulong)uVar9 * 0x20" (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) + (subscript_expression "param_1[0x2e]" identifier [ number_literal ])) )))) ;) (expression_statement "uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;" (assignment_expression "uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff" identifier = (binary_expression "*(uint *)((long)puVar7 + 0x14) & 0xfffffff" (pointer_expression "*(uint *)((long)puVar7 + 0x14)" * (cast_expression "(uint *)((long)puVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 0x14)" ( (binary_expression "(long)puVar7 + 0x14" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }" if (parenthesized_expression "(uVar8 < 0xff00)" ( (binary_expression "uVar8 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }" { (labeled_statement "LAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);" statement_identifier : (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8)" identifier = (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8)" * (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8)" ( (binary_expression "*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8" (pointer_expression "*(long *)(param_1[0x1f] + 0x90)" * (cast_expression "(long *)(param_1[0x1f] + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x1f] + 0x90)" ( (binary_expression "param_1[0x1f] + 0x90" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) + number_literal) )))) + (binary_expression "(ulong)uVar8 * 8" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;)) (expression_statement "pcVar2 = *(code **)(*plVar13 + 0x58);" (assignment_expression "pcVar2 = *(code **)(*plVar13 + 0x58)" identifier = (pointer_expression "*(code **)(*plVar13 + 0x58)" * (cast_expression "(code **)(*plVar13 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar13 + 0x58)" ( (binary_expression "*plVar13 + 0x58" (pointer_expression "*plVar13" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }" if (parenthesized_expression "(pcVar2 == FUN_001a28d0)" ( (binary_expression "pcVar2 == FUN_001a28d0" identifier == identifier) )) (compound_statement "{\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }" { (expression_statement "uVar5 = *(uint *)((long)plVar13 + 0x7c);" (assignment_expression "uVar5 = *(uint *)((long)plVar13 + 0x7c)" identifier = (pointer_expression "*(uint *)((long)plVar13 + 0x7c)" * (cast_expression "(uint *)((long)plVar13 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar13 + 0x7c)" ( (binary_expression "(long)plVar13 + 0x7c" (cast_expression "(long)plVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }" { (labeled_statement "LAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");" statement_identifier : comment (expression_statement "FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx")" identifier (argument_list "("../../gold/output.h",0x1043,"do_out_shndx")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_out_shndx"" " string_content ") ))) ;)) })) }) (else_clause "else {\n        uVar5 = (*pcVar2)();\n      }" else (compound_statement "{\n        uVar5 = (*pcVar2)();\n      }" { (expression_statement "uVar5 = (*pcVar2)();" (assignment_expression "uVar5 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar8 = uVar5;" (assignment_expression "uVar8 = uVar5" identifier = identifier) ;) (if_statement "if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }" if (parenthesized_expression "(0xfeff < uVar5)" ( (binary_expression "0xfeff < uVar5" number_literal < identifier) )) (compound_statement "{\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = (int)param_1[0x25] + uVar9;" (assignment_expression "local_40 = (int)param_1[0x25] + uVar9" identifier = (binary_expression "(int)param_1[0x25] + uVar9" (cast_expression "(int)param_1[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x25]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "local_3c = uVar5;" (assignment_expression "local_3c = uVar5" identifier = identifier) ;) (expression_statement "FUN_001a7bd0(lVar6 + 0x38,&local_40);" (call_expression "FUN_001a7bd0(lVar6 + 0x38,&local_40)" identifier (argument_list "(lVar6 + 0x38,&local_40)" ( (binary_expression "lVar6 + 0x38" identifier + number_literal) , (pointer_expression "&local_40" & identifier) ))) ;) (if_statement "if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }" if (parenthesized_expression "(*(char *)((long)puVar7 + 0x1b) < '\0')" ( (binary_expression "*(char *)((long)puVar7 + 0x1b) < '\0'" (pointer_expression "*(char *)((long)puVar7 + 0x1b)" * (cast_expression "(char *)((long)puVar7 + 0x1b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 0x1b)" ( (binary_expression "(long)puVar7 + 0x1b" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }" { (expression_statement "local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;" (assignment_expression "local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff" identifier = (binary_expression "*(uint *)(puVar7 + 3) & 0x7fffffff" (pointer_expression "*(uint *)(puVar7 + 3)" * (cast_expression "(uint *)(puVar7 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 3)" ( (binary_expression "puVar7 + 3" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "local_3c = uVar5;" (assignment_expression "local_3c = uVar5" identifier = identifier) ;) (expression_statement "FUN_001a7bd0(local_58 + 0x38,&local_40);" (call_expression "FUN_001a7bd0(local_58 + 0x38,&local_40)" identifier (argument_list "(local_58 + 0x38,&local_40)" ( (binary_expression "local_58 + 0x38" identifier + number_literal) , (pointer_expression "&local_40" & identifier) ))) ;) })) })) }) (else_clause "else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }" else (if_statement "if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }" if (parenthesized_expression "(uVar8 == 0xffff)" ( (binary_expression "uVar8 == 0xffff" identifier == number_literal) )) (compound_statement "{\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }" { (expression_statement "lVar11 = param_1[8];" (assignment_expression "lVar11 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (if_statement "if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }" { (expression_statement "lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);" (assignment_expression "lVar11 = (**(code **)(*param_1 + 0xd8))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 0xd8))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 0xd8))" ( (pointer_expression "**(code **)(*param_1 + 0xd8)" * (pointer_expression "*(code **)(*param_1 + 0xd8)" * (cast_expression "(code **)(*param_1 + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0xd8)" ( (binary_expression "*param_1 + 0xd8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "param_1[8] = lVar11;" (assignment_expression "param_1[8] = lVar11" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);" (assignment_expression "uVar8 = FUN_001c7c40(lVar11,param_1,uVar9)" identifier = (call_expression "FUN_001c7c40(lVar11,param_1,uVar9)" identifier (argument_list "(lVar11,param_1,uVar9)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_001a84aa;" goto statement_identifier ;) })))) (expression_statement "puVar17 = puVar18 + 6;" (assignment_expression "puVar17 = puVar18 + 6" identifier = (binary_expression "puVar18 + 6" identifier + number_literal)) ;) (expression_statement "uVar4 = FUN_00247a20(local_a0,puVar7[1]);" (assignment_expression "uVar4 = FUN_00247a20(local_a0,puVar7[1])" identifier = (call_expression "FUN_00247a20(local_a0,puVar7[1])" identifier (argument_list "(local_a0,puVar7[1])" ( identifier , (subscript_expression "puVar7[1]" identifier [ number_literal ]) )))) ;) (expression_statement "*puVar18 = uVar4;" (assignment_expression "*puVar18 = uVar4" (pointer_expression "*puVar18" * identifier) = identifier) ;) (expression_statement "*(undefined8 *)(puVar18 + 2) = *puVar7;" (assignment_expression "*(undefined8 *)(puVar18 + 2) = *puVar7" (pointer_expression "*(undefined8 *)(puVar18 + 2)" * (cast_expression "(undefined8 *)(puVar18 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 2)" ( (binary_expression "puVar18 + 2" identifier + number_literal) )))) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);" (assignment_expression "*(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2)" (pointer_expression "*(ulong *)(puVar18 + 4)" * (cast_expression "(ulong *)(puVar18 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = (binary_expression "(ulong)*(uint *)(puVar7 + 2)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(puVar7 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 2)" ( (binary_expression "puVar7 + 2" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)((long)puVar7 + 0x17);" (assignment_expression "bVar1 = *(byte *)((long)puVar7 + 0x17)" identifier = (pointer_expression "*(byte *)((long)puVar7 + 0x17)" * (cast_expression "(byte *)((long)puVar7 + 0x17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 0x17)" ( (binary_expression "(long)puVar7 + 0x17" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((long)puVar18 + 5) = 0;" (assignment_expression "*(undefined1 *)((long)puVar18 + 5) = 0" (pointer_expression "*(undefined1 *)((long)puVar18 + 5)" * (cast_expression "(undefined1 *)((long)puVar18 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar18 + 5)" ( (binary_expression "(long)puVar18 + 5" (cast_expression "(long)puVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(short *)((long)puVar18 + 6) = (short)uVar8;" (assignment_expression "*(short *)((long)puVar18 + 6) = (short)uVar8" (pointer_expression "*(short *)((long)puVar18 + 6)" * (cast_expression "(short *)((long)puVar18 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar18 + 6)" ( (binary_expression "(long)puVar18 + 6" (cast_expression "(long)puVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (cast_expression "(short)uVar8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "*(byte *)(puVar18 + 1) = bVar1 >> 4;" (assignment_expression "*(byte *)(puVar18 + 1) = bVar1 >> 4" (pointer_expression "*(byte *)(puVar18 + 1)" * (cast_expression "(byte *)(puVar18 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 1)" ( (binary_expression "puVar18 + 1" identifier + number_literal) )))) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "puVar18 = puVar17;" (assignment_expression "puVar18 = puVar17" identifier = identifier) ;) (if_statement "if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }" if (parenthesized_expression "(*(char *)((long)puVar7 + 0x1b) < '\0')" ( (binary_expression "*(char *)((long)puVar7 + 0x1b) < '\0'" (pointer_expression "*(char *)((long)puVar7 + 0x1b)" * (cast_expression "(char *)((long)puVar7 + 0x1b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 0x1b)" ( (binary_expression "(long)puVar7 + 0x1b" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }" { (if_statement "if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }" if (parenthesized_expression "((undefined4 *)((long)local_98 + uVar12) <= puVar14)" ( (binary_expression "(undefined4 *)((long)local_98 + uVar12) <= puVar14" (cast_expression "(undefined4 *)((long)local_98 + uVar12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_98 + uVar12)" ( (binary_expression "(long)local_98 + uVar12" (cast_expression "(long)local_98" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }" { comment (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa53,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;) })) (expression_statement "puVar15 = puVar14 + 6;" (assignment_expression "puVar15 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = FUN_00247a20(local_88,puVar7[1]);" (assignment_expression "uVar4 = FUN_00247a20(local_88,puVar7[1])" identifier = (call_expression "FUN_00247a20(local_88,puVar7[1])" identifier (argument_list "(local_88,puVar7[1])" ( identifier , (subscript_expression "puVar7[1]" identifier [ number_literal ]) )))) ;) (expression_statement "*puVar14 = uVar4;" (assignment_expression "*puVar14 = uVar4" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "*(undefined8 *)(puVar14 + 2) = *puVar7;" (assignment_expression "*(undefined8 *)(puVar14 + 2) = *puVar7" (pointer_expression "*(undefined8 *)(puVar14 + 2)" * (cast_expression "(undefined8 *)(puVar14 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);" (assignment_expression "*(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2)" (pointer_expression "*(ulong *)(puVar14 + 4)" * (cast_expression "(ulong *)(puVar14 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) = (binary_expression "(ulong)*(uint *)(puVar7 + 2)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(puVar7 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 2)" ( (binary_expression "puVar7 + 2" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)((long)puVar7 + 0x17);" (assignment_expression "bVar1 = *(byte *)((long)puVar7 + 0x17)" identifier = (pointer_expression "*(byte *)((long)puVar7 + 0x17)" * (cast_expression "(byte *)((long)puVar7 + 0x17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 0x17)" ( (binary_expression "(long)puVar7 + 0x17" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((long)puVar14 + 5) = 0;" (assignment_expression "*(undefined1 *)((long)puVar14 + 5) = 0" (pointer_expression "*(undefined1 *)((long)puVar14 + 5)" * (cast_expression "(undefined1 *)((long)puVar14 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 5)" ( (binary_expression "(long)puVar14 + 5" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(short *)((long)puVar14 + 6) = (short)uVar8;" (assignment_expression "*(short *)((long)puVar14 + 6) = (short)uVar8" (pointer_expression "*(short *)((long)puVar14 + 6)" * (cast_expression "(short *)((long)puVar14 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 6)" ( (binary_expression "(long)puVar14 + 6" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (cast_expression "(short)uVar8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "*(byte *)(puVar14 + 1) = bVar1 >> 4;" (assignment_expression "*(byte *)(puVar14 + 1) = bVar1 >> 4" (pointer_expression "*(byte *)(puVar14 + 1)" * (cast_expression "(byte *)(puVar14 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "puVar14 = puVar15;" (assignment_expression "puVar14 = puVar15" identifier = identifier) ;) (if_statement "if (*(uint *)(param_1 + 0x24) <= uVar9) break;" if (parenthesized_expression "(*(uint *)(param_1 + 0x24) <= uVar9)" ( (binary_expression "*(uint *)(param_1 + 0x24) <= uVar9" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_001a8483;" goto statement_identifier ;) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar14;" (assignment_expression "puVar15 = puVar14" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 < *(uint *)(param_1 + 0x24))" ( (binary_expression "uVar9 < *(uint *)(param_1 + 0x24)" identifier < (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) )) ;)) (if_statement "if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }" if (parenthesized_expression "((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16))" ( (binary_expression "(uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)" (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) && (parenthesized_expression "((long)puVar17 - (long)local_68 != (ulong)uVar16)" ( (binary_expression "(long)puVar17 - (long)local_68 != (ulong)uVar16" (binary_expression "(long)puVar17 - (long)local_68" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) != (cast_expression "(ulong)uVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }" { comment (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa62,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;) })) (if_statement "if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }" if (parenthesized_expression "((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12))" ( (binary_expression "(uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)" (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "((long)puVar15 - (long)local_98 == uVar12)" ( (binary_expression "(long)puVar15 - (long)local_98 == uVar12" (binary_expression "(long)puVar15 - (long)local_98" (cast_expression "(long)puVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)local_98" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) == identifier) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_001a8756:\n                    /* WARNING: Subroutine does not return */\n  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");" statement_identifier : comment (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa69,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;)) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void do_relocate(Sized_relobj_incr<64,_false> * this, Symbol_table *\n   param_1, Layout * layout, Output_file * of) */\n\nvoid __thiscall\ngold::Sized_relobj_incr<64,_false>::do_relocate\n          (Sized_relobj_incr<64,_false> *this,Symbol_table *param_1,Layout *layout,Output_file *of)\n\n{\n  byte bVar1;\n  Output_data_space *pOVar2;\n  _func_int_varargs *p_Var3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  Output_symtab_xindex *pOVar7;\n  section_offset_type sVar8;\n  undefined4 extraout_var;\n  Output_file *pOVar9;\n  Output_file *this_1;\n  pointer pLVar10;\n  size_t size;\n  uint uVar11;\n  uint uVar12;\n  Output_file *__src;\n  Output_section *pOVar14;\n  Sized_relobj_incr<64,_false> *this_01;\n  uchar *puVar15;\n  uchar *puVar16;\n  uint uVar17;\n  uchar *puVar18;\n  uchar *puVar19;\n  Stringpool *local_a0;\n  uchar *local_98;\n  Stringpool *local_88;\n  uchar *local_68;\n  Output_symtab_xindex *local_58;\n  pair<unsigned_int,_unsigned_int> local_40 [2];\n  Xindex *this_00;\n  ulong uVar13;\n  \n  if (this->incr_reloc_count_ == 0) {\n    return;\n  }\n  if (layout->incremental_inputs_ == (Incremental_inputs *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  pOVar2 = layout->incremental_inputs_->relocs_section_;\n  bVar1 = (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n          field_0x20;\n  if ((bVar1 & 4) == 0) {\nLAB_001a876e:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n  }\n  __src = (Output_file *)\n          (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n          offset_;\n  if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n  }\n  size = (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n         data_size_;\n  this_1 = (Output_file *)(ulong)(bVar1 & 2);\n  this_01 = this;\n  if (((long)__src < 0) ||\n     (size = (long)&__src->name_ + size, this_1 = of, of->file_size_ < (long)size)) {\nLAB_001a86f1:\n                    /* WARNING: Subroutine does not return */\n    Output_file::get_output_view((Output_file *)this_01,(off_t)__src,size,this_1);\n  }\n  puVar19 = (uchar *)((long)&__src->name_ + (long)of->base_);\n  uVar13 = (ulong)(this->incr_reloc_output_index_ * 0x18);\n  puVar15 = puVar19 + uVar13;\n  __src = (Output_file *)this->incr_relocs_;\n  memcpy(puVar15,__src,(ulong)(this->incr_reloc_count_ * 0x18));\n  if (this->incr_reloc_count_ != 0) {\n    pOVar14 = (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl._M_start[*(uint *)(puVar15 + 4)];\n    if (pOVar14 != (Output_section *)0x0) {\n      uVar17 = 0;\n      do {\n        p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n        if (p_Var3 == Output_section::do_out_shndx) {\n          uVar4 = pOVar14->out_shndx_;\n          if (uVar4 == 0xffffffff) goto LAB_001a86a9;\n        }\n        else {\n          uVar4 = (*p_Var3)();\n        }\n        *(uint *)(puVar15 + 4) = uVar4;\n        uVar17 = uVar17 + 1;\n        if (this->incr_reloc_count_ <= uVar17) goto LAB_001a8308;\n        puVar15 = puVar19 + uVar17 * 0x18 + uVar13;\n        pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start[*(uint *)(puVar15 + 4)];\n      } while (pOVar14 != (Output_section *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_001a8308:\n  pOVar14 = layout->symtab_section_;\n  if (pOVar14 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.h",0x35a,"symtab_section");\n  }\n  if (((pOVar14->super_Output_data).field_0x20 & 4) == 0) goto LAB_001a876e;\n  uVar4 = this->local_symbol_count_;\n  size = (size_t)uVar4;\n  uVar17 = uVar4 * 0x18;\n  this_01 = (Sized_relobj_incr<64,_false> *)(ulong)uVar17;\n  if (uVar17 == 0) {\n    local_68 = (uchar *)0x0;\n  }\n  else {\n    pOVar9 = (Output_file *)\n             ((ulong)this->local_symbol_offset_ + (pOVar14->super_Output_data).offset_);\n    this_1 = pOVar9;\n    if (((long)pOVar9 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar9->name_ + (long)this_01), __src = of,\n       of->file_size_ < (long)this_1)) goto LAB_001a86f1;\n    local_68 = (uchar *)((long)&pOVar9->name_ + (long)of->base_);\n  }\n  uVar12 = this->output_local_dynsym_count_ * 0x18;\n  uVar13 = (ulong)uVar12;\n  if (uVar12 == 0) {\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar4 == 0) {\n      return;\n    }\n    local_98 = (uchar *)0x0;\n  }\n  else {\n    this_1 = (Output_file *)(ulong)this->local_dynsym_offset_;\n    __src = of;\n    if (of->file_size_ < (long)((long)&this_1->name_ + uVar13)) goto LAB_001a86f1;\n    local_98 = (uchar *)((long)&this_1->name_ + (long)of->base_);\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar4 == 0) goto LAB_001a8756;\n  }\n  local_88 = &layout->dynpool_;\n  local_a0 = &layout->sympool_;\n  uVar4 = 0;\n  puVar15 = local_98;\n  puVar19 = local_68;\nLAB_001a8483:\n  do {\n    pLVar10 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64,_false>::Local_symbol,_std::allocator<gold::Sized_relobj_incr<64,_false>::Local_symbol>_>\n              ._M_impl._M_start + uVar4;\n    uVar11 = *(uint *)&pLVar10->field_0x14 & 0xfffffff;\n    if (uVar11 < 0xff00) {\nLAB_001a84aa:\n      pOVar14 = (this->ibase_->section_map_).\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start[uVar11];\n      p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n      if (p_Var3 == Output_section::do_out_shndx) {\n        uVar5 = pOVar14->out_shndx_;\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*p_Var3)();\n      }\n      uVar11 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar11 = 0xffffffff;\n        local_40[0].first = this->local_symbol_index_ + uVar4;\n        local_40[0].second = uVar5;\n        std::\n        vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n        ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&pOVar7->entries_,local_40);\n        if ((char)pLVar10->field_0x1b < '\0') {\n          local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff;\n          local_40[0].second = uVar5;\n          std::\n          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);\n        }\n      }\n    }\n    else if (uVar11 == 0xffff) {\n      this_00 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n      if (this_00 == (Xindex *)0x0) {\n        iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this);\n        this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n        (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00;\n      }\n      uVar11 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar4);\n      goto LAB_001a84aa;\n    }\n    puVar18 = puVar19 + 0x18;\n    sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar10->name);\n    *(int *)puVar19 = (int)sVar8;\n    *(Address *)(puVar19 + 8) = pLVar10->st_value;\n    *(ulong *)(puVar19 + 0x10) = (ulong)pLVar10->st_size;\n    bVar1 = pLVar10->field_0x17;\n    puVar19[5] = '\0';\n    *(short *)(puVar19 + 6) = (short)uVar11;\n    puVar19[4] = bVar1 >> 4;\n    puVar19 = puVar18;\n    if ((char)pLVar10->field_0x1b < '\0') {\n      if (local_98 + uVar13 <= puVar15) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar16 = puVar15 + 0x18;\n      uVar4 = uVar4 + 1;\n      sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar10->name);\n      *(int *)puVar15 = (int)sVar8;\n      *(Address *)(puVar15 + 8) = pLVar10->st_value;\n      *(ulong *)(puVar15 + 0x10) = (ulong)pLVar10->st_size;\n      bVar1 = pLVar10->field_0x17;\n      puVar15[5] = '\0';\n      *(short *)(puVar15 + 6) = (short)uVar11;\n      puVar15[4] = bVar1 >> 4;\n      puVar15 = puVar16;\n      if (this->local_symbol_count_ <= uVar4) break;\n      goto LAB_001a8483;\n    }\n    uVar4 = uVar4 + 1;\n    puVar16 = puVar15;\n  } while (uVar4 < this->local_symbol_count_);\n  if ((uVar17 != 0) && ((Sized_relobj_incr<64,_false> *)(puVar18 + -(long)local_68) != this_01)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar12 == 0) || ((long)puVar16 - (long)local_98 == uVar13)) {\n    return;\n  }\nLAB_001a8756:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/incremental.cc",0xa69,"do_relocate");\n}\n\n" comment comment comment (declaration "void __thiscall\ngold::Sized_relobj_incr<64,_false>::do_relocate\n          (Sized_relobj_incr<64,_false> *this,Symbol_table *param_1,Layout *layout,Output_file *of)\n\n{\n  byte bVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>::do_relocate\n          (Sized_relobj_incr<64,_false> *this,Symbol_table *param_1,Layout *layout,Output_file *of)\n\n{\n  byte" identifier > : : (function_declarator "do_relocate\n          (Sized_relobj_incr<64,_false> *this,Symbol_table *param_1,Layout *layout,Output_file *of)" identifier (parameter_list "(Sized_relobj_incr<64,_false> *this,Symbol_table *param_1,Layout *layout,Output_file *of)" ( (parameter_declaration "Sized_relobj_incr" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) ))) { identifier) identifier ;) (declaration "Output_data_space *pOVar2;" type_identifier (pointer_declarator "*pOVar2" * identifier) ;) (declaration "_func_int_varargs *p_Var3;" type_identifier (pointer_declarator "*p_Var3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "Output_symtab_xindex *pOVar7;" type_identifier (pointer_declarator "*pOVar7" * identifier) ;) (declaration "section_offset_type sVar8;" type_identifier identifier ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (declaration "Output_file *pOVar9;" type_identifier (pointer_declarator "*pOVar9" * identifier) ;) (declaration "Output_file *this_1;" type_identifier (pointer_declarator "*this_1" * identifier) ;) (declaration "pointer pLVar10;" type_identifier identifier ;) (declaration "size_t size;" primitive_type identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "Output_file *__src;" type_identifier (pointer_declarator "*__src" * identifier) ;) (declaration "Output_section *pOVar14;" type_identifier (pointer_declarator "*pOVar14" * identifier) ;) (expression_statement "Sized_relobj_incr<64,_false> *this_01;" (update_expression "Sized_relobj_incr<64,_false> *this_01" (binary_expression "Sized_relobj_incr<64,_false> *this_01" (binary_expression "Sized_relobj_incr<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*this_01" * identifier)) --) ;) (declaration "uchar *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uchar *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uchar *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uchar *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "Stringpool *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "uchar *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "Stringpool *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "uchar *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "Output_symtab_xindex *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (expression_statement "pair<unsigned_int,_unsigned_int> local_40 [2];" (update_expression "pair<unsigned_int,_unsigned_int> local_40 [2]" (binary_expression "pair<unsigned_int,_unsigned_int> local_40 [2]" (binary_expression "pair<unsigned_int" identifier < identifier) (ERROR ",_unsigned_int" , identifier) > (subscript_expression "local_40 [2]" identifier [ number_literal ])) --) ;) (declaration "Xindex *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (if_statement "if (this->incr_reloc_count_ == 0) {\n    return;\n  }" if (parenthesized_expression "(this->incr_reloc_count_ == 0)" ( (binary_expression "this->incr_reloc_count_ == 0" (field_expression "this->incr_reloc_count_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (layout->incremental_inputs_ == (Incremental_inputs *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa01,"do_relocate");\n  }" if (parenthesized_expression "(layout->incremental_inputs_ == (Incremental_inputs *)0x0)" ( (binary_expression "layout->incremental_inputs_ == (Incremental_inputs *)0x0" (field_expression "layout->incremental_inputs_" identifier -> field_identifier) == (cast_expression "(Incremental_inputs *)0x0" ( (type_descriptor "Incremental_inputs *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa01,"do_relocate");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0xa01,"do_relocate");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0xa01,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa01,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;) })) (expression_statement "pOVar2 = layout->incremental_inputs_->relocs_section_;" (assignment_expression "pOVar2 = layout->incremental_inputs_->relocs_section_" identifier = (field_expression "layout->incremental_inputs_->relocs_section_" (field_expression "layout->incremental_inputs_" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "bVar1 = (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n          field_0x20;" (assignment_expression "bVar1 = (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n          field_0x20" identifier = (field_expression "(pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n          field_0x20" (field_expression "(pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar2->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar2->super_Output_section_data_build)" ( (field_expression "pOVar2->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if ((bVar1 & 4) == 0) {\nLAB_001a876e:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n  }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001a876e:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n  }" { (labeled_statement "LAB_001a876e:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe3,"offset");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xe3,"offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;)) })) (expression_statement "__src = (Output_file *)\n          (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n          offset_;" (assignment_expression "__src = (Output_file *)\n          (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n          offset_" identifier = (cast_expression "(Output_file *)\n          (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n          offset_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n          offset_" (field_expression "(pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar2->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar2->super_Output_section_data_build)" ( (field_expression "pOVar2->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) ;) (if_statement "if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n  }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) (expression_statement "size = (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n         data_size_;" (assignment_expression "size = (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n         data_size_" identifier = (field_expression "(pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n         data_size_" (field_expression "(pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(pOVar2->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(pOVar2->super_Output_section_data_build)" ( (field_expression "pOVar2->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "this_1 = (Output_file *)(ulong)(bVar1 & 2);" (assignment_expression "this_1 = (Output_file *)(ulong)(bVar1 & 2)" identifier = (cast_expression "(Output_file *)(ulong)(bVar1 & 2)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(ulong)(bVar1 & 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) ))))) ;) (expression_statement "this_01 = this;" (assignment_expression "this_01 = this" identifier = identifier) ;) (if_statement "if (((long)__src < 0) ||\n     (size = (long)&__src->name_ + size, this_1 = of, of->file_size_ < (long)size)) {\nLAB_001a86f1:\n                    /* WARNING: Subroutine does not return */\n    Output_file::get_output_view((Output_file *)this_01,(off_t)__src,size,this_1);\n  }" if (parenthesized_expression "(((long)__src < 0) ||\n     (size = (long)&__src->name_ + size, this_1 = of, of->file_size_ < (long)size))" ( (binary_expression "((long)__src < 0) ||\n     (size = (long)&__src->name_ + size, this_1 = of, of->file_size_ < (long)size)" (parenthesized_expression "((long)__src < 0)" ( (binary_expression "(long)__src < 0" (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) || (parenthesized_expression "(size = (long)&__src->name_ + size, this_1 = of, of->file_size_ < (long)size)" ( (comma_expression "size = (long)&__src->name_ + size, this_1 = of, of->file_size_ < (long)size" (assignment_expression "size = (long)&__src->name_ + size" identifier = (binary_expression "(long)&__src->name_ + size" (cast_expression "(long)&__src->name_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&__src->name_" & (field_expression "__src->name_" identifier -> field_identifier))) + identifier)) , (comma_expression "this_1 = of, of->file_size_ < (long)size" (assignment_expression "this_1 = of" identifier = identifier) , (binary_expression "of->file_size_ < (long)size" (field_expression "of->file_size_" identifier -> field_identifier) < (cast_expression "(long)size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)))) ))) )) (compound_statement "{\nLAB_001a86f1:\n                    /* WARNING: Subroutine does not return */\n    Output_file::get_output_view((Output_file *)this_01,(off_t)__src,size,this_1);\n  }" { (labeled_statement "LAB_001a86f1:\n                    /* WARNING: Subroutine does not return */\n    Output_file::get_output_view((Output_file *)this_01,(off_t)__src,size,this_1);" statement_identifier : comment (labeled_statement "Output_file::get_output_view((Output_file *)this_01,(off_t)__src,size,this_1);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view((Output_file *)this_01,(off_t)__src,size,this_1);" (call_expression "get_output_view((Output_file *)this_01,(off_t)__src,size,this_1)" identifier (argument_list "((Output_file *)this_01,(off_t)__src,size,this_1)" ( (cast_expression "(Output_file *)this_01" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(off_t)__src" ( (type_descriptor "off_t" type_identifier) ) identifier) , identifier , identifier ))) ;))) })) (expression_statement "puVar19 = (uchar *)((long)&__src->name_ + (long)of->base_);" (assignment_expression "puVar19 = (uchar *)((long)&__src->name_ + (long)of->base_)" identifier = (cast_expression "(uchar *)((long)&__src->name_ + (long)of->base_)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&__src->name_ + (long)of->base_)" ( (binary_expression "(long)&__src->name_ + (long)of->base_" (cast_expression "(long)&__src->name_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&__src->name_" & (field_expression "__src->name_" identifier -> field_identifier))) + (cast_expression "(long)of->base_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "of->base_" identifier -> field_identifier))) )))) ;) (expression_statement "uVar13 = (ulong)(this->incr_reloc_output_index_ * 0x18);" (assignment_expression "uVar13 = (ulong)(this->incr_reloc_output_index_ * 0x18)" identifier = (call_expression "(ulong)(this->incr_reloc_output_index_ * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(this->incr_reloc_output_index_ * 0x18)" ( (binary_expression "this->incr_reloc_output_index_ * 0x18" (field_expression "this->incr_reloc_output_index_" identifier -> field_identifier) * number_literal) )))) ;) (expression_statement "puVar15 = puVar19 + uVar13;" (assignment_expression "puVar15 = puVar19 + uVar13" identifier = (binary_expression "puVar19 + uVar13" identifier + identifier)) ;) (expression_statement "__src = (Output_file *)this->incr_relocs_;" (assignment_expression "__src = (Output_file *)this->incr_relocs_" identifier = (cast_expression "(Output_file *)this->incr_relocs_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->incr_relocs_" identifier -> field_identifier))) ;) (expression_statement "memcpy(puVar15,__src,(ulong)(this->incr_reloc_count_ * 0x18));" (call_expression "memcpy(puVar15,__src,(ulong)(this->incr_reloc_count_ * 0x18))" identifier (argument_list "(puVar15,__src,(ulong)(this->incr_reloc_count_ * 0x18))" ( identifier , identifier , (call_expression "(ulong)(this->incr_reloc_count_ * 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(this->incr_reloc_count_ * 0x18)" ( (binary_expression "this->incr_reloc_count_ * 0x18" (field_expression "this->incr_reloc_count_" identifier -> field_identifier) * number_literal) ))) ))) ;) (if_statement "if (this->incr_reloc_count_ != 0) {\n    pOVar14 = (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl._M_start[*(uint *)(puVar15 + 4)];\n    if (pOVar14 != (Output_section *)0x0) {\n      uVar17 = 0;\n      do {\n        p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n        if (p_Var3 == Output_section::do_out_shndx) {\n          uVar4 = pOVar14->out_shndx_;\n          if (uVar4 == 0xffffffff) goto LAB_001a86a9;\n        }\n        else {\n          uVar4 = (*p_Var3)();\n        }\n        *(uint *)(puVar15 + 4) = uVar4;\n        uVar17 = uVar17 + 1;\n        if (this->incr_reloc_count_ <= uVar17) goto LAB_001a8308;\n        puVar15 = puVar19 + uVar17 * 0x18 + uVar13;\n        pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start[*(uint *)(puVar15 + 4)];\n      } while (pOVar14 != (Output_section *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa12,"do_relocate");\n  }" if (parenthesized_expression "(this->incr_reloc_count_ != 0)" ( (binary_expression "this->incr_reloc_count_ != 0" (field_expression "this->incr_reloc_count_" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    pOVar14 = (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl._M_start[*(uint *)(puVar15 + 4)];\n    if (pOVar14 != (Output_section *)0x0) {\n      uVar17 = 0;\n      do {\n        p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n        if (p_Var3 == Output_section::do_out_shndx) {\n          uVar4 = pOVar14->out_shndx_;\n          if (uVar4 == 0xffffffff) goto LAB_001a86a9;\n        }\n        else {\n          uVar4 = (*p_Var3)();\n        }\n        *(uint *)(puVar15 + 4) = uVar4;\n        uVar17 = uVar17 + 1;\n        if (this->incr_reloc_count_ <= uVar17) goto LAB_001a8308;\n        puVar15 = puVar19 + uVar17 * 0x18 + uVar13;\n        pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start[*(uint *)(puVar15 + 4)];\n      } while (pOVar14 != (Output_section *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa12,"do_relocate");\n  }" { (expression_statement "pOVar14 = (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl._M_start[*(uint *)(puVar15 + 4)];" (subscript_expression "pOVar14 = (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl._M_start[*(uint *)(puVar15 + 4)]" (field_expression "pOVar14 = (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl._M_start" (field_expression "pOVar14 = (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl" (binary_expression "pOVar14 = (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "pOVar14 = (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "pOVar14 = (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std" (assignment_expression "pOVar14 = (this->ibase_->section_map_).\n              super__Vector_base<gold" identifier = (binary_expression "(this->ibase_->section_map_).\n              super__Vector_base<gold" (field_expression "(this->ibase_->section_map_).\n              super__Vector_base" (parenthesized_expression "(this->ibase_->section_map_)" ( (field_expression "this->ibase_->section_map_" (field_expression "this->ibase_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ (pointer_expression "*(uint *)(puVar15 + 4)" * (cast_expression "(uint *)(puVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) ]) ;) (if_statement "if (pOVar14 != (Output_section *)0x0) {\n      uVar17 = 0;\n      do {\n        p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n        if (p_Var3 == Output_section::do_out_shndx) {\n          uVar4 = pOVar14->out_shndx_;\n          if (uVar4 == 0xffffffff) goto LAB_001a86a9;\n        }\n        else {\n          uVar4 = (*p_Var3)();\n        }\n        *(uint *)(puVar15 + 4) = uVar4;\n        uVar17 = uVar17 + 1;\n        if (this->incr_reloc_count_ <= uVar17) goto LAB_001a8308;\n        puVar15 = puVar19 + uVar17 * 0x18 + uVar13;\n        pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start[*(uint *)(puVar15 + 4)];\n      } while (pOVar14 != (Output_section *)0x0);\n    }" if (parenthesized_expression "(pOVar14 != (Output_section *)0x0)" ( (binary_expression "pOVar14 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar17 = 0;\n      do {\n        p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n        if (p_Var3 == Output_section::do_out_shndx) {\n          uVar4 = pOVar14->out_shndx_;\n          if (uVar4 == 0xffffffff) goto LAB_001a86a9;\n        }\n        else {\n          uVar4 = (*p_Var3)();\n        }\n        *(uint *)(puVar15 + 4) = uVar4;\n        uVar17 = uVar17 + 1;\n        if (this->incr_reloc_count_ <= uVar17) goto LAB_001a8308;\n        puVar15 = puVar19 + uVar17 * 0x18 + uVar13;\n        pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start[*(uint *)(puVar15 + 4)];\n      } while (pOVar14 != (Output_section *)0x0);\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n        p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n        if (p_Var3 == Output_section::do_out_shndx) {\n          uVar4 = pOVar14->out_shndx_;\n          if (uVar4 == 0xffffffff) goto LAB_001a86a9;\n        }\n        else {\n          uVar4 = (*p_Var3)();\n        }\n        *(uint *)(puVar15 + 4) = uVar4;\n        uVar17 = uVar17 + 1;\n        if (this->incr_reloc_count_ <= uVar17) goto LAB_001a8308;\n        puVar15 = puVar19 + uVar17 * 0x18 + uVar13;\n        pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start[*(uint *)(puVar15 + 4)];\n      } while (pOVar14 != (Output_section *)0x0);" do (compound_statement "{\n        p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n        if (p_Var3 == Output_section::do_out_shndx) {\n          uVar4 = pOVar14->out_shndx_;\n          if (uVar4 == 0xffffffff) goto LAB_001a86a9;\n        }\n        else {\n          uVar4 = (*p_Var3)();\n        }\n        *(uint *)(puVar15 + 4) = uVar4;\n        uVar17 = uVar17 + 1;\n        if (this->incr_reloc_count_ <= uVar17) goto LAB_001a8308;\n        puVar15 = puVar19 + uVar17 * 0x18 + uVar13;\n        pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start[*(uint *)(puVar15 + 4)];\n      }" { (expression_statement "p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];" (assignment_expression "p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb]" identifier = (subscript_expression "(pOVar14->super_Output_data)._vptr_Output_data[0xb]" (field_expression "(pOVar14->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var3 == Output_section::do_out_shndx) {\n          uVar4 = pOVar14->out_shndx_;\n          if (uVar4 == 0xffffffff) goto LAB_001a86a9;\n        }\n        else {\n          uVar4 = (*p_Var3)();\n        }" if (parenthesized_expression "(p_Var3 == Output_section::do_out_shndx)" ( (binary_expression "p_Var3 == Output_section" identifier == identifier) (ERROR "::do_out_shndx" : : identifier) )) (compound_statement "{\n          uVar4 = pOVar14->out_shndx_;\n          if (uVar4 == 0xffffffff) goto LAB_001a86a9;\n        }" { (expression_statement "uVar4 = pOVar14->out_shndx_;" (assignment_expression "uVar4 = pOVar14->out_shndx_" identifier = (field_expression "pOVar14->out_shndx_" identifier -> field_identifier)) ;) (if_statement "if (uVar4 == 0xffffffff) goto LAB_001a86a9;" if (parenthesized_expression "(uVar4 == 0xffffffff)" ( (binary_expression "uVar4 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_001a86a9;" goto statement_identifier ;)) }) (else_clause "else {\n          uVar4 = (*p_Var3)();\n        }" else (compound_statement "{\n          uVar4 = (*p_Var3)();\n        }" { (expression_statement "uVar4 = (*p_Var3)();" (assignment_expression "uVar4 = (*p_Var3)()" identifier = (call_expression "(*p_Var3)()" (parenthesized_expression "(*p_Var3)" ( (pointer_expression "*p_Var3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "*(uint *)(puVar15 + 4) = uVar4;" (assignment_expression "*(uint *)(puVar15 + 4) = uVar4" (pointer_expression "*(uint *)(puVar15 + 4)" * (cast_expression "(uint *)(puVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar17 = uVar17 + 1;" (assignment_expression "uVar17 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (if_statement "if (this->incr_reloc_count_ <= uVar17) goto LAB_001a8308;" if (parenthesized_expression "(this->incr_reloc_count_ <= uVar17)" ( (binary_expression "this->incr_reloc_count_ <= uVar17" (field_expression "this->incr_reloc_count_" identifier -> field_identifier) <= identifier) )) (goto_statement "goto LAB_001a8308;" goto statement_identifier ;)) (expression_statement "puVar15 = puVar19 + uVar17 * 0x18 + uVar13;" (assignment_expression "puVar15 = puVar19 + uVar17 * 0x18 + uVar13" identifier = (binary_expression "puVar19 + uVar17 * 0x18 + uVar13" (binary_expression "puVar19 + uVar17 * 0x18" identifier + (binary_expression "uVar17 * 0x18" identifier * number_literal)) + identifier)) ;) (expression_statement "pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start[*(uint *)(puVar15 + 4)];" (subscript_expression "pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start[*(uint *)(puVar15 + 4)]" (field_expression "pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start" (field_expression "pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl" (binary_expression "pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std" (assignment_expression "pOVar14 = (this->ibase_->section_map_).\n                  super__Vector_base<gold" identifier = (binary_expression "(this->ibase_->section_map_).\n                  super__Vector_base<gold" (field_expression "(this->ibase_->section_map_).\n                  super__Vector_base" (parenthesized_expression "(this->ibase_->section_map_)" ( (field_expression "this->ibase_->section_map_" (field_expression "this->ibase_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ (pointer_expression "*(uint *)(puVar15 + 4)" * (cast_expression "(uint *)(puVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) ]) ;) }) while (parenthesized_expression "(pOVar14 != (Output_section *)0x0)" ( (binary_expression "pOVar14 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0xa12,"do_relocate");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0xa12,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa12,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;) })) (labeled_statement "LAB_001a8308:\n  pOVar14 = layout->symtab_section_;" statement_identifier : (expression_statement "pOVar14 = layout->symtab_section_;" (assignment_expression "pOVar14 = layout->symtab_section_" identifier = (field_expression "layout->symtab_section_" identifier -> field_identifier)) ;)) (if_statement "if (pOVar14 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.h",0x35a,"symtab_section");\n  }" if (parenthesized_expression "(pOVar14 == (Output_section *)0x0)" ( (binary_expression "pOVar14 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.h",0x35a,"symtab_section");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.h",0x35a,"symtab_section");" (call_expression "do_gold_unreachable("../../gold/layout.h",0x35a,"symtab_section")" identifier (argument_list "("../../gold/layout.h",0x35a,"symtab_section")" ( (string_literal ""../../gold/layout.h"" " string_content ") , number_literal , (string_literal ""symtab_section"" " string_content ") ))) ;) })) (if_statement "if (((pOVar14->super_Output_data).field_0x20 & 4) == 0) goto LAB_001a876e;" if (parenthesized_expression "(((pOVar14->super_Output_data).field_0x20 & 4) == 0)" ( (binary_expression "((pOVar14->super_Output_data).field_0x20 & 4) == 0" (parenthesized_expression "((pOVar14->super_Output_data).field_0x20 & 4)" ( (binary_expression "(pOVar14->super_Output_data).field_0x20 & 4" (field_expression "(pOVar14->super_Output_data).field_0x20" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a876e;" goto statement_identifier ;)) (expression_statement "uVar4 = this->local_symbol_count_;" (assignment_expression "uVar4 = this->local_symbol_count_" identifier = (field_expression "this->local_symbol_count_" identifier -> field_identifier)) ;) (expression_statement "size = (size_t)uVar4;" (assignment_expression "size = (size_t)uVar4" identifier = (cast_expression "(size_t)uVar4" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "uVar17 = uVar4 * 0x18;" (assignment_expression "uVar17 = uVar4 * 0x18" identifier = (binary_expression "uVar4 * 0x18" identifier * number_literal)) ;) (expression_statement "this_01 = (Sized_relobj_incr<64,_false> *)(ulong)uVar17;" (assignment_expression "this_01 = (Sized_relobj_incr<64,_false> *)(ulong)" identifier = (call_expression "(Sized_relobj_incr<64,_false> *)(ulong)" (parenthesized_expression "(Sized_relobj_incr<64,_false> *)" ( (comma_expression "Sized_relobj_incr<64,_false> *" (binary_expression "Sized_relobj_incr<64" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(ulong)" ( identifier )))) (ERROR "uVar17" identifier) ;) (if_statement "if (uVar17 == 0) {\n    local_68 = (uchar *)0x0;\n  }\n  else {\n    pOVar9 = (Output_file *)\n             ((ulong)this->local_symbol_offset_ + (pOVar14->super_Output_data).offset_);\n    this_1 = pOVar9;\n    if (((long)pOVar9 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar9->name_ + (long)this_01), __src = of,\n       of->file_size_ < (long)this_1)) goto LAB_001a86f1;\n    local_68 = (uchar *)((long)&pOVar9->name_ + (long)of->base_);\n  }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n    local_68 = (uchar *)0x0;\n  }" { (expression_statement "local_68 = (uchar *)0x0;" (assignment_expression "local_68 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pOVar9 = (Output_file *)\n             ((ulong)this->local_symbol_offset_ + (pOVar14->super_Output_data).offset_);\n    this_1 = pOVar9;\n    if (((long)pOVar9 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar9->name_ + (long)this_01), __src = of,\n       of->file_size_ < (long)this_1)) goto LAB_001a86f1;\n    local_68 = (uchar *)((long)&pOVar9->name_ + (long)of->base_);\n  }" else (compound_statement "{\n    pOVar9 = (Output_file *)\n             ((ulong)this->local_symbol_offset_ + (pOVar14->super_Output_data).offset_);\n    this_1 = pOVar9;\n    if (((long)pOVar9 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar9->name_ + (long)this_01), __src = of,\n       of->file_size_ < (long)this_1)) goto LAB_001a86f1;\n    local_68 = (uchar *)((long)&pOVar9->name_ + (long)of->base_);\n  }" { (expression_statement "pOVar9 = (Output_file *)\n             ((ulong)this->local_symbol_offset_ + (pOVar14->super_Output_data).offset_);" (assignment_expression "pOVar9 = (Output_file *)\n             ((ulong)this->local_symbol_offset_ + (pOVar14->super_Output_data).offset_)" identifier = (cast_expression "(Output_file *)\n             ((ulong)this->local_symbol_offset_ + (pOVar14->super_Output_data).offset_)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)this->local_symbol_offset_ + (pOVar14->super_Output_data).offset_)" ( (binary_expression "(ulong)this->local_symbol_offset_ + (pOVar14->super_Output_data).offset_" (cast_expression "(ulong)this->local_symbol_offset_" ( (type_descriptor "ulong" type_identifier) ) (field_expression "this->local_symbol_offset_" identifier -> field_identifier)) + (field_expression "(pOVar14->super_Output_data).offset_" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier)) )))) ;) (expression_statement "this_1 = pOVar9;" (assignment_expression "this_1 = pOVar9" identifier = identifier) ;) (if_statement "if (((long)pOVar9 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar9->name_ + (long)this_01), __src = of,\n       of->file_size_ < (long)this_1)) goto LAB_001a86f1;" if (parenthesized_expression "(((long)pOVar9 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar9->name_ + (long)this_01), __src = of,\n       of->file_size_ < (long)this_1))" ( (binary_expression "((long)pOVar9 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar9->name_ + (long)this_01), __src = of,\n       of->file_size_ < (long)this_1)" (parenthesized_expression "((long)pOVar9 < 0)" ( (binary_expression "(long)pOVar9 < 0" (cast_expression "(long)pOVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) || (parenthesized_expression "(this_1 = (Output_file *)((long)&pOVar9->name_ + (long)this_01), __src = of,\n       of->file_size_ < (long)this_1)" ( (comma_expression "this_1 = (Output_file *)((long)&pOVar9->name_ + (long)this_01), __src = of,\n       of->file_size_ < (long)this_1" (assignment_expression "this_1 = (Output_file *)((long)&pOVar9->name_ + (long)this_01)" identifier = (cast_expression "(Output_file *)((long)&pOVar9->name_ + (long)this_01)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pOVar9->name_ + (long)this_01)" ( (binary_expression "(long)&pOVar9->name_ + (long)this_01" (cast_expression "(long)&pOVar9->name_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pOVar9->name_" & (field_expression "pOVar9->name_" identifier -> field_identifier))) + (cast_expression "(long)this_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) , (comma_expression "__src = of,\n       of->file_size_ < (long)this_1" (assignment_expression "__src = of" identifier = identifier) , (binary_expression "of->file_size_ < (long)this_1" (field_expression "of->file_size_" identifier -> field_identifier) < (cast_expression "(long)this_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)))) ))) )) (goto_statement "goto LAB_001a86f1;" goto statement_identifier ;)) (expression_statement "local_68 = (uchar *)((long)&pOVar9->name_ + (long)of->base_);" (assignment_expression "local_68 = (uchar *)((long)&pOVar9->name_ + (long)of->base_)" identifier = (cast_expression "(uchar *)((long)&pOVar9->name_ + (long)of->base_)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pOVar9->name_ + (long)of->base_)" ( (binary_expression "(long)&pOVar9->name_ + (long)of->base_" (cast_expression "(long)&pOVar9->name_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pOVar9->name_" & (field_expression "pOVar9->name_" identifier -> field_identifier))) + (cast_expression "(long)of->base_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "of->base_" identifier -> field_identifier))) )))) ;) }))) (expression_statement "uVar12 = this->output_local_dynsym_count_ * 0x18;" (assignment_expression "uVar12 = this->output_local_dynsym_count_ * 0x18" identifier = (binary_expression "this->output_local_dynsym_count_ * 0x18" (field_expression "this->output_local_dynsym_count_" identifier -> field_identifier) * number_literal)) ;) (expression_statement "uVar13 = (ulong)uVar12;" (assignment_expression "uVar13 = (ulong)uVar12" identifier = (cast_expression "(ulong)uVar12" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar12 == 0) {\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar4 == 0) {\n      return;\n    }\n    local_98 = (uchar *)0x0;\n  }\n  else {\n    this_1 = (Output_file *)(ulong)this->local_dynsym_offset_;\n    __src = of;\n    if (of->file_size_ < (long)((long)&this_1->name_ + uVar13)) goto LAB_001a86f1;\n    local_98 = (uchar *)((long)&this_1->name_ + (long)of->base_);\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar4 == 0) goto LAB_001a8756;\n  }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar4 == 0) {\n      return;\n    }\n    local_98 = (uchar *)0x0;\n  }" { (expression_statement "pOVar7 = layout->symtab_xindex_;" (assignment_expression "pOVar7 = layout->symtab_xindex_" identifier = (field_expression "layout->symtab_xindex_" identifier -> field_identifier)) ;) (expression_statement "local_58 = layout->dynsym_xindex_;" (assignment_expression "local_58 = layout->dynsym_xindex_" identifier = (field_expression "layout->dynsym_xindex_" identifier -> field_identifier)) ;) (if_statement "if (uVar4 == 0) {\n      return;\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "local_98 = (uchar *)0x0;" (assignment_expression "local_98 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    this_1 = (Output_file *)(ulong)this->local_dynsym_offset_;\n    __src = of;\n    if (of->file_size_ < (long)((long)&this_1->name_ + uVar13)) goto LAB_001a86f1;\n    local_98 = (uchar *)((long)&this_1->name_ + (long)of->base_);\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar4 == 0) goto LAB_001a8756;\n  }" else (compound_statement "{\n    this_1 = (Output_file *)(ulong)this->local_dynsym_offset_;\n    __src = of;\n    if (of->file_size_ < (long)((long)&this_1->name_ + uVar13)) goto LAB_001a86f1;\n    local_98 = (uchar *)((long)&this_1->name_ + (long)of->base_);\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar4 == 0) goto LAB_001a8756;\n  }" { (expression_statement "this_1 = (Output_file *)(ulong)this->local_dynsym_offset_;" (assignment_expression "this_1 = (Output_file *)(ulong)this->local_dynsym_offset_" identifier = (cast_expression "(Output_file *)(ulong)this->local_dynsym_offset_" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)this->local_dynsym_offset_" ( (type_descriptor "ulong" type_identifier) ) (field_expression "this->local_dynsym_offset_" identifier -> field_identifier)))) ;) (expression_statement "__src = of;" (assignment_expression "__src = of" identifier = identifier) ;) (if_statement "if (of->file_size_ < (long)((long)&this_1->name_ + uVar13)) goto LAB_001a86f1;" if (parenthesized_expression "(of->file_size_ < (long)((long)&this_1->name_ + uVar13))" ( (binary_expression "of->file_size_ < (long)((long)&this_1->name_ + uVar13)" (field_expression "of->file_size_" identifier -> field_identifier) < (cast_expression "(long)((long)&this_1->name_ + uVar13)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((long)&this_1->name_ + uVar13)" ( (binary_expression "(long)&this_1->name_ + uVar13" (cast_expression "(long)&this_1->name_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&this_1->name_" & (field_expression "this_1->name_" identifier -> field_identifier))) + identifier) )))) )) (goto_statement "goto LAB_001a86f1;" goto statement_identifier ;)) (expression_statement "local_98 = (uchar *)((long)&this_1->name_ + (long)of->base_);" (assignment_expression "local_98 = (uchar *)((long)&this_1->name_ + (long)of->base_)" identifier = (cast_expression "(uchar *)((long)&this_1->name_ + (long)of->base_)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&this_1->name_ + (long)of->base_)" ( (binary_expression "(long)&this_1->name_ + (long)of->base_" (cast_expression "(long)&this_1->name_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&this_1->name_" & (field_expression "this_1->name_" identifier -> field_identifier))) + (cast_expression "(long)of->base_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "of->base_" identifier -> field_identifier))) )))) ;) (expression_statement "pOVar7 = layout->symtab_xindex_;" (assignment_expression "pOVar7 = layout->symtab_xindex_" identifier = (field_expression "layout->symtab_xindex_" identifier -> field_identifier)) ;) (expression_statement "local_58 = layout->dynsym_xindex_;" (assignment_expression "local_58 = layout->dynsym_xindex_" identifier = (field_expression "layout->dynsym_xindex_" identifier -> field_identifier)) ;) (if_statement "if (uVar4 == 0) goto LAB_001a8756;" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001a8756;" goto statement_identifier ;)) }))) (expression_statement "local_88 = &layout->dynpool_;" (assignment_expression "local_88 = &layout->dynpool_" identifier = (pointer_expression "&layout->dynpool_" & (field_expression "layout->dynpool_" identifier -> field_identifier))) ;) (expression_statement "local_a0 = &layout->sympool_;" (assignment_expression "local_a0 = &layout->sympool_" identifier = (pointer_expression "&layout->sympool_" & (field_expression "layout->sympool_" identifier -> field_identifier))) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = local_98;" (assignment_expression "puVar15 = local_98" identifier = identifier) ;) (expression_statement "puVar19 = local_68;" (assignment_expression "puVar19 = local_68" identifier = identifier) ;) (labeled_statement "LAB_001a8483:\n  do {\n    pLVar10 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64,_false>::Local_symbol,_std::allocator<gold::Sized_relobj_incr<64,_false>::Local_symbol>_>\n              ._M_impl._M_start + uVar4;\n    uVar11 = *(uint *)&pLVar10->field_0x14 & 0xfffffff;\n    if (uVar11 < 0xff00) {\nLAB_001a84aa:\n      pOVar14 = (this->ibase_->section_map_).\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start[uVar11];\n      p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n      if (p_Var3 == Output_section::do_out_shndx) {\n        uVar5 = pOVar14->out_shndx_;\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*p_Var3)();\n      }\n      uVar11 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar11 = 0xffffffff;\n        local_40[0].first = this->local_symbol_index_ + uVar4;\n        local_40[0].second = uVar5;\n        std::\n        vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n        ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&pOVar7->entries_,local_40);\n        if ((char)pLVar10->field_0x1b < '\0') {\n          local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff;\n          local_40[0].second = uVar5;\n          std::\n          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);\n        }\n      }\n    }\n    else if (uVar11 == 0xffff) {\n      this_00 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n      if (this_00 == (Xindex *)0x0) {\n        iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this);\n        this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n        (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00;\n      }\n      uVar11 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar4);\n      goto LAB_001a84aa;\n    }\n    puVar18 = puVar19 + 0x18;\n    sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar10->name);\n    *(int *)puVar19 = (int)sVar8;\n    *(Address *)(puVar19 + 8) = pLVar10->st_value;\n    *(ulong *)(puVar19 + 0x10) = (ulong)pLVar10->st_size;\n    bVar1 = pLVar10->field_0x17;\n    puVar19[5] = '\0';\n    *(short *)(puVar19 + 6) = (short)uVar11;\n    puVar19[4] = bVar1 >> 4;\n    puVar19 = puVar18;\n    if ((char)pLVar10->field_0x1b < '\0') {\n      if (local_98 + uVar13 <= puVar15) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar16 = puVar15 + 0x18;\n      uVar4 = uVar4 + 1;\n      sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar10->name);\n      *(int *)puVar15 = (int)sVar8;\n      *(Address *)(puVar15 + 8) = pLVar10->st_value;\n      *(ulong *)(puVar15 + 0x10) = (ulong)pLVar10->st_size;\n      bVar1 = pLVar10->field_0x17;\n      puVar15[5] = '\0';\n      *(short *)(puVar15 + 6) = (short)uVar11;\n      puVar15[4] = bVar1 >> 4;\n      puVar15 = puVar16;\n      if (this->local_symbol_count_ <= uVar4) break;\n      goto LAB_001a8483;\n    }\n    uVar4 = uVar4 + 1;\n    puVar16 = puVar15;\n  } while (uVar4 < this->local_symbol_count_);" statement_identifier : (do_statement "do {\n    pLVar10 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64,_false>::Local_symbol,_std::allocator<gold::Sized_relobj_incr<64,_false>::Local_symbol>_>\n              ._M_impl._M_start + uVar4;\n    uVar11 = *(uint *)&pLVar10->field_0x14 & 0xfffffff;\n    if (uVar11 < 0xff00) {\nLAB_001a84aa:\n      pOVar14 = (this->ibase_->section_map_).\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start[uVar11];\n      p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n      if (p_Var3 == Output_section::do_out_shndx) {\n        uVar5 = pOVar14->out_shndx_;\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*p_Var3)();\n      }\n      uVar11 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar11 = 0xffffffff;\n        local_40[0].first = this->local_symbol_index_ + uVar4;\n        local_40[0].second = uVar5;\n        std::\n        vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n        ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&pOVar7->entries_,local_40);\n        if ((char)pLVar10->field_0x1b < '\0') {\n          local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff;\n          local_40[0].second = uVar5;\n          std::\n          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);\n        }\n      }\n    }\n    else if (uVar11 == 0xffff) {\n      this_00 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n      if (this_00 == (Xindex *)0x0) {\n        iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this);\n        this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n        (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00;\n      }\n      uVar11 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar4);\n      goto LAB_001a84aa;\n    }\n    puVar18 = puVar19 + 0x18;\n    sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar10->name);\n    *(int *)puVar19 = (int)sVar8;\n    *(Address *)(puVar19 + 8) = pLVar10->st_value;\n    *(ulong *)(puVar19 + 0x10) = (ulong)pLVar10->st_size;\n    bVar1 = pLVar10->field_0x17;\n    puVar19[5] = '\0';\n    *(short *)(puVar19 + 6) = (short)uVar11;\n    puVar19[4] = bVar1 >> 4;\n    puVar19 = puVar18;\n    if ((char)pLVar10->field_0x1b < '\0') {\n      if (local_98 + uVar13 <= puVar15) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar16 = puVar15 + 0x18;\n      uVar4 = uVar4 + 1;\n      sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar10->name);\n      *(int *)puVar15 = (int)sVar8;\n      *(Address *)(puVar15 + 8) = pLVar10->st_value;\n      *(ulong *)(puVar15 + 0x10) = (ulong)pLVar10->st_size;\n      bVar1 = pLVar10->field_0x17;\n      puVar15[5] = '\0';\n      *(short *)(puVar15 + 6) = (short)uVar11;\n      puVar15[4] = bVar1 >> 4;\n      puVar15 = puVar16;\n      if (this->local_symbol_count_ <= uVar4) break;\n      goto LAB_001a8483;\n    }\n    uVar4 = uVar4 + 1;\n    puVar16 = puVar15;\n  } while (uVar4 < this->local_symbol_count_);" do (compound_statement "{\n    pLVar10 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64,_false>::Local_symbol,_std::allocator<gold::Sized_relobj_incr<64,_false>::Local_symbol>_>\n              ._M_impl._M_start + uVar4;\n    uVar11 = *(uint *)&pLVar10->field_0x14 & 0xfffffff;\n    if (uVar11 < 0xff00) {\nLAB_001a84aa:\n      pOVar14 = (this->ibase_->section_map_).\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start[uVar11];\n      p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n      if (p_Var3 == Output_section::do_out_shndx) {\n        uVar5 = pOVar14->out_shndx_;\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*p_Var3)();\n      }\n      uVar11 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar11 = 0xffffffff;\n        local_40[0].first = this->local_symbol_index_ + uVar4;\n        local_40[0].second = uVar5;\n        std::\n        vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n        ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&pOVar7->entries_,local_40);\n        if ((char)pLVar10->field_0x1b < '\0') {\n          local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff;\n          local_40[0].second = uVar5;\n          std::\n          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);\n        }\n      }\n    }\n    else if (uVar11 == 0xffff) {\n      this_00 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n      if (this_00 == (Xindex *)0x0) {\n        iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this);\n        this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n        (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00;\n      }\n      uVar11 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar4);\n      goto LAB_001a84aa;\n    }\n    puVar18 = puVar19 + 0x18;\n    sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar10->name);\n    *(int *)puVar19 = (int)sVar8;\n    *(Address *)(puVar19 + 8) = pLVar10->st_value;\n    *(ulong *)(puVar19 + 0x10) = (ulong)pLVar10->st_size;\n    bVar1 = pLVar10->field_0x17;\n    puVar19[5] = '\0';\n    *(short *)(puVar19 + 6) = (short)uVar11;\n    puVar19[4] = bVar1 >> 4;\n    puVar19 = puVar18;\n    if ((char)pLVar10->field_0x1b < '\0') {\n      if (local_98 + uVar13 <= puVar15) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar16 = puVar15 + 0x18;\n      uVar4 = uVar4 + 1;\n      sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar10->name);\n      *(int *)puVar15 = (int)sVar8;\n      *(Address *)(puVar15 + 8) = pLVar10->st_value;\n      *(ulong *)(puVar15 + 0x10) = (ulong)pLVar10->st_size;\n      bVar1 = pLVar10->field_0x17;\n      puVar15[5] = '\0';\n      *(short *)(puVar15 + 6) = (short)uVar11;\n      puVar15[4] = bVar1 >> 4;\n      puVar15 = puVar16;\n      if (this->local_symbol_count_ <= uVar4) break;\n      goto LAB_001a8483;\n    }\n    uVar4 = uVar4 + 1;\n    puVar16 = puVar15;\n  }" { (ERROR "pLVar10 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64,_false>::Local_symbol,_std::allocator<gold::" (comma_expression "pLVar10 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64,_false>::Local_symbol,_std" (binary_expression "pLVar10 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64" (assignment_expression "pLVar10 = (this->local_symbols_).\n              super__Vector_base<gold" identifier = (binary_expression "(this->local_symbols_).\n              super__Vector_base<gold" (field_expression "(this->local_symbols_).\n              super__Vector_base" (parenthesized_expression "(this->local_symbols_)" ( (field_expression "this->local_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Sized_relobj_incr" : : identifier) < number_literal) , (comma_expression "_false>::Local_symbol,_std" (binary_expression "_false>::Local_symbol" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Sized_relobj_incr<64,_false>::Local_symbol>_>\n              ._M_impl._M_start + uVar4;" (comma_expression "Sized_relobj_incr<64,_false>::Local_symbol>_>\n              ._M_impl._M_start + uVar4" (binary_expression "Sized_relobj_incr<64" identifier < number_literal) , (binary_expression "_false>::Local_symbol>_>\n              ._M_impl._M_start + uVar4" (field_expression "_false>::Local_symbol>_>\n              ._M_impl._M_start" (field_expression "_false>::Local_symbol>_>\n              ._M_impl" (binary_expression "_false>::Local_symbol>_" (binary_expression "_false>::Local_symbol" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + identifier)) ;) (expression_statement "uVar11 = *(uint *)&pLVar10->field_0x14 & 0xfffffff;" (assignment_expression "uVar11 = *(uint *)&pLVar10->field_0x14 & 0xfffffff" identifier = (binary_expression "*(uint *)&pLVar10->field_0x14 & 0xfffffff" (pointer_expression "*(uint *)&pLVar10->field_0x14" * (cast_expression "(uint *)&pLVar10->field_0x14" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pLVar10->field_0x14" & (field_expression "pLVar10->field_0x14" identifier -> field_identifier)))) & number_literal)) ;) (if_statement "if (uVar11 < 0xff00) {\nLAB_001a84aa:\n      pOVar14 = (this->ibase_->section_map_).\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start[uVar11];\n      p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n      if (p_Var3 == Output_section::do_out_shndx) {\n        uVar5 = pOVar14->out_shndx_;\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*p_Var3)();\n      }\n      uVar11 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar11 = 0xffffffff;\n        local_40[0].first = this->local_symbol_index_ + uVar4;\n        local_40[0].second = uVar5;\n        std::\n        vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n        ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&pOVar7->entries_,local_40);\n        if ((char)pLVar10->field_0x1b < '\0') {\n          local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff;\n          local_40[0].second = uVar5;\n          std::\n          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);\n        }\n      }\n    }\n    else if (uVar11 == 0xffff) {\n      this_00 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n      if (this_00 == (Xindex *)0x0) {\n        iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this);\n        this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n        (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00;\n      }\n      uVar11 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar4);\n      goto LAB_001a84aa;\n    }" if (parenthesized_expression "(uVar11 < 0xff00)" ( (binary_expression "uVar11 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_001a84aa:\n      pOVar14 = (this->ibase_->section_map_).\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start[uVar11];\n      p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];\n      if (p_Var3 == Output_section::do_out_shndx) {\n        uVar5 = pOVar14->out_shndx_;\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*p_Var3)();\n      }\n      uVar11 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar11 = 0xffffffff;\n        local_40[0].first = this->local_symbol_index_ + uVar4;\n        local_40[0].second = uVar5;\n        std::\n        vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n        ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&pOVar7->entries_,local_40);\n        if ((char)pLVar10->field_0x1b < '\0') {\n          local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff;\n          local_40[0].second = uVar5;\n          std::\n          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);\n        }\n      }\n    }" { (labeled_statement "LAB_001a84aa:\n      pOVar14 = (this->ibase_->section_map_).\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start[uVar11];" statement_identifier : (ERROR "pOVar14 = (this->ibase_->section_map_).\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::" (comma_expression "pOVar14 = (this->ibase_->section_map_).\n                super__Vector_base<gold::Output_section*,_std" (binary_expression "pOVar14 = (this->ibase_->section_map_).\n                super__Vector_base<gold::Output_section*" (assignment_expression "pOVar14 = (this->ibase_->section_map_).\n                super__Vector_base<gold" identifier = (binary_expression "(this->ibase_->section_map_).\n                super__Vector_base<gold" (field_expression "(this->ibase_->section_map_).\n                super__Vector_base" (parenthesized_expression "(this->ibase_->section_map_)" ( (field_expression "this->ibase_->section_map_" (field_expression "this->ibase_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_section*>_>.\n                _M_impl._M_start[uVar11];" (subscript_expression "Output_section*>_>.\n                _M_impl._M_start[uVar11]" (field_expression "Output_section*>_>.\n                _M_impl._M_start" (field_expression "Output_section*>_>.\n                _M_impl" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ identifier ]) ;)) (expression_statement "p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb];" (assignment_expression "p_Var3 = (pOVar14->super_Output_data)._vptr_Output_data[0xb]" identifier = (subscript_expression "(pOVar14->super_Output_data)._vptr_Output_data[0xb]" (field_expression "(pOVar14->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var3 == Output_section::do_out_shndx) {\n        uVar5 = pOVar14->out_shndx_;\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*p_Var3)();\n      }" if (parenthesized_expression "(p_Var3 == Output_section::do_out_shndx)" ( (binary_expression "p_Var3 == Output_section" identifier == identifier) (ERROR "::do_out_shndx" : : identifier) )) (compound_statement "{\n        uVar5 = pOVar14->out_shndx_;\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }" { (expression_statement "uVar5 = pOVar14->out_shndx_;" (assignment_expression "uVar5 = pOVar14->out_shndx_" identifier = (field_expression "pOVar14->out_shndx_" identifier -> field_identifier)) ;) (if_statement "if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\nLAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }" { (labeled_statement "LAB_001a86a9:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx")" identifier (argument_list "("../../gold/output.h",0x1043,"do_out_shndx")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_out_shndx"" " string_content ") ))) ;)) })) }) (else_clause "else {\n        uVar5 = (*p_Var3)();\n      }" else (compound_statement "{\n        uVar5 = (*p_Var3)();\n      }" { (expression_statement "uVar5 = (*p_Var3)();" (assignment_expression "uVar5 = (*p_Var3)()" identifier = (call_expression "(*p_Var3)()" (parenthesized_expression "(*p_Var3)" ( (pointer_expression "*p_Var3" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar11 = uVar5;" (assignment_expression "uVar11 = uVar5" identifier = identifier) ;) (if_statement "if (0xfeff < uVar5) {\n        uVar11 = 0xffffffff;\n        local_40[0].first = this->local_symbol_index_ + uVar4;\n        local_40[0].second = uVar5;\n        std::\n        vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n        ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&pOVar7->entries_,local_40);\n        if ((char)pLVar10->field_0x1b < '\0') {\n          local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff;\n          local_40[0].second = uVar5;\n          std::\n          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);\n        }\n      }" if (parenthesized_expression "(0xfeff < uVar5)" ( (binary_expression "0xfeff < uVar5" number_literal < identifier) )) (compound_statement "{\n        uVar11 = 0xffffffff;\n        local_40[0].first = this->local_symbol_index_ + uVar4;\n        local_40[0].second = uVar5;\n        std::\n        vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n        ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&pOVar7->entries_,local_40);\n        if ((char)pLVar10->field_0x1b < '\0') {\n          local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff;\n          local_40[0].second = uVar5;\n          std::\n          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);\n        }\n      }" { (expression_statement "uVar11 = 0xffffffff;" (assignment_expression "uVar11 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40[0].first = this->local_symbol_index_ + uVar4;" (assignment_expression "local_40[0].first = this->local_symbol_index_ + uVar4" (field_expression "local_40[0].first" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) = (binary_expression "this->local_symbol_index_ + uVar4" (field_expression "this->local_symbol_index_" identifier -> field_identifier) + identifier)) ;) (expression_statement "local_40[0].second = uVar5;" (assignment_expression "local_40[0].second = uVar5" (field_expression "local_40[0].second" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (labeled_statement "std::\n        vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n        ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&pOVar7->entries_,local_40);" statement_identifier (ERROR "::\n        vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n        ::emplace_back<std:" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>,_std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>_>_>\n        ::emplace_back<std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>_>\n        ::emplace_back<std" (binary_expression "_unsigned_int>_>_>\n        ::emplace_back" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<unsigned_int,_unsigned_int>_>(&pOVar7->entries_,local_40);" (comma_expression "pair<unsigned_int,_unsigned_int>_>(&pOVar7->entries_,local_40)" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>(&pOVar7->entries_,local_40)" (binary_expression "_unsigned_int>_" identifier > identifier) > (parenthesized_expression "(&pOVar7->entries_,local_40)" ( (comma_expression "&pOVar7->entries_,local_40" (pointer_expression "&pOVar7->entries_" & (field_expression "pOVar7->entries_" identifier -> field_identifier)) , identifier) )))) ;)) (if_statement "if ((char)pLVar10->field_0x1b < '\0') {\n          local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff;\n          local_40[0].second = uVar5;\n          std::\n          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);\n        }" if (parenthesized_expression "((char)pLVar10->field_0x1b < '\0')" ( (binary_expression "(char)pLVar10->field_0x1b < '\0'" (cast_expression "(char)pLVar10->field_0x1b" ( (type_descriptor "char" primitive_type) ) (field_expression "pLVar10->field_0x1b" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff;\n          local_40[0].second = uVar5;\n          std::\n          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);\n        }" { (expression_statement "local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff;" (assignment_expression "local_40[0].first = *(uint *)&pLVar10->field_0x18 & 0x7fffffff" (field_expression "local_40[0].first" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) = (binary_expression "*(uint *)&pLVar10->field_0x18 & 0x7fffffff" (pointer_expression "*(uint *)&pLVar10->field_0x18" * (cast_expression "(uint *)&pLVar10->field_0x18" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pLVar10->field_0x18" & (field_expression "pLVar10->field_0x18" identifier -> field_identifier)))) & number_literal)) ;) (expression_statement "local_40[0].second = uVar5;" (assignment_expression "local_40[0].second = uVar5" (field_expression "local_40[0].second" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (labeled_statement "std::\n          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std::pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);" statement_identifier (ERROR "::\n          vector<std::pair<unsigned_int,_unsigned_int>,_std::allocator<std::pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std:" : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>,_std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<unsigned_int,_unsigned_int>_>_>\n          ::emplace_back<std" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>_>\n          ::emplace_back<std" (binary_expression "_unsigned_int>_>_>\n          ::emplace_back" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > (ERROR "::" : :) identifier) < identifier)) :) : (expression_statement "pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40);" (comma_expression "pair<unsigned_int,_unsigned_int>_>(&local_58->entries_,local_40)" (binary_expression "pair<unsigned_int" identifier < identifier) , (binary_expression "_unsigned_int>_>(&local_58->entries_,local_40)" (binary_expression "_unsigned_int>_" identifier > identifier) > (parenthesized_expression "(&local_58->entries_,local_40)" ( (comma_expression "&local_58->entries_,local_40" (pointer_expression "&local_58->entries_" & (field_expression "local_58->entries_" identifier -> field_identifier)) , identifier) )))) ;)) })) })) }) (else_clause "else if (uVar11 == 0xffff) {\n      this_00 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n      if (this_00 == (Xindex *)0x0) {\n        iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this);\n        this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n        (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00;\n      }\n      uVar11 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar4);\n      goto LAB_001a84aa;\n    }" else (if_statement "if (uVar11 == 0xffff) {\n      this_00 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n      if (this_00 == (Xindex *)0x0) {\n        iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this);\n        this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n        (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00;\n      }\n      uVar11 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar4);\n      goto LAB_001a84aa;\n    }" if (parenthesized_expression "(uVar11 == 0xffff)" ( (binary_expression "uVar11 == 0xffff" identifier == number_literal) )) (compound_statement "{\n      this_00 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;\n      if (this_00 == (Xindex *)0x0) {\n        iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this);\n        this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n        (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00;\n      }\n      uVar11 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar4);\n      goto LAB_001a84aa;\n    }" { (expression_statement "this_00 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_;" (assignment_expression "this_00 = (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" identifier = (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (this_00 == (Xindex *)0x0) {\n        iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this);\n        this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n        (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00;\n      }" if (parenthesized_expression "(this_00 == (Xindex *)0x0)" ( (binary_expression "this_00 == (Xindex *)0x0" identifier == (cast_expression "(Xindex *)0x0" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this);\n        this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n        (this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00;\n      }" { (expression_statement "iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this);" (assignment_expression "iVar6 = (*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this)" identifier = (call_expression "(*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )(this)" (parenthesized_expression "(*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]\n                )" ( (pointer_expression "*(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]" * (subscript_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object[0x1b]" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(this)" ( identifier )))) ;) (expression_statement "this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);" (assignment_expression "this_00 = (Xindex *)CONCAT44(extraout_var,iVar6)" identifier = (cast_expression "(Xindex *)CONCAT44(extraout_var,iVar6)" ( (type_descriptor "Xindex *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(extraout_var,iVar6)" identifier (argument_list "(extraout_var,iVar6)" ( identifier , identifier ))))) ;) (expression_statement "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00;" (assignment_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_ = this_00" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object.xindex_" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_false>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_false>)" ( (comma_expression "this->super_Sized_relobj<64,_false" (binary_expression "this->super_Sized_relobj<64" (field_expression "this->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) })) (ERROR "uVar11 = Xindex::" (assignment_expression "uVar11 = Xindex" identifier = identifier) : :) (expression_statement "sym_xindex_to_shndx(this_00,(Object *)this,uVar4);" (call_expression "sym_xindex_to_shndx(this_00,(Object *)this,uVar4)" identifier (argument_list "(this_00,(Object *)this,uVar4)" ( identifier , (cast_expression "(Object *)this" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (goto_statement "goto LAB_001a84aa;" goto statement_identifier ;) })))) (expression_statement "puVar18 = puVar19 + 0x18;" (assignment_expression "puVar18 = puVar19 + 0x18" identifier = (binary_expression "puVar19 + 0x18" identifier + number_literal)) ;) (expression_statement "sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar10->name);" (assignment_expression "sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar10->name)" identifier = (binary_expression "Stringpool_template<char>::get_offset(local_a0,pLVar10->name)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "get_offset(local_a0,pLVar10->name)" identifier (argument_list "(local_a0,pLVar10->name)" ( identifier , (field_expression "pLVar10->name" identifier -> field_identifier) ))))) ;) (expression_statement "*(int *)puVar19 = (int)sVar8;" (assignment_expression "*(int *)puVar19 = (int)sVar8" (pointer_expression "*(int *)puVar19" * (cast_expression "(int *)puVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(Address *)(puVar19 + 8) = pLVar10->st_value;" (assignment_expression "*(Address *)(puVar19 + 8) = pLVar10->st_value" (pointer_expression "*(Address *)(puVar19 + 8)" * (cast_expression "(Address *)(puVar19 + 8)" ( (type_descriptor "Address *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 8)" ( (binary_expression "puVar19 + 8" identifier + number_literal) )))) = (field_expression "pLVar10->st_value" identifier -> field_identifier)) ;) (expression_statement "*(ulong *)(puVar19 + 0x10) = (ulong)pLVar10->st_size;" (assignment_expression "*(ulong *)(puVar19 + 0x10) = (ulong)pLVar10->st_size" (pointer_expression "*(ulong *)(puVar19 + 0x10)" * (cast_expression "(ulong *)(puVar19 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x10)" ( (binary_expression "puVar19 + 0x10" identifier + number_literal) )))) = (cast_expression "(ulong)pLVar10->st_size" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pLVar10->st_size" identifier -> field_identifier))) ;) (expression_statement "bVar1 = pLVar10->field_0x17;" (assignment_expression "bVar1 = pLVar10->field_0x17" identifier = (field_expression "pLVar10->field_0x17" identifier -> field_identifier)) ;) (expression_statement "puVar19[5] = '\0';" (assignment_expression "puVar19[5] = '\0'" (subscript_expression "puVar19[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(short *)(puVar19 + 6) = (short)uVar11;" (assignment_expression "*(short *)(puVar19 + 6) = (short)uVar11" (pointer_expression "*(short *)(puVar19 + 6)" * (cast_expression "(short *)(puVar19 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 6)" ( (binary_expression "puVar19 + 6" identifier + number_literal) )))) = (cast_expression "(short)uVar11" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "puVar19[4] = bVar1 >> 4;" (assignment_expression "puVar19[4] = bVar1 >> 4" (subscript_expression "puVar19[4]" identifier [ number_literal ]) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "puVar19 = puVar18;" (assignment_expression "puVar19 = puVar18" identifier = identifier) ;) (if_statement "if ((char)pLVar10->field_0x1b < '\0') {\n      if (local_98 + uVar13 <= puVar15) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar16 = puVar15 + 0x18;\n      uVar4 = uVar4 + 1;\n      sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar10->name);\n      *(int *)puVar15 = (int)sVar8;\n      *(Address *)(puVar15 + 8) = pLVar10->st_value;\n      *(ulong *)(puVar15 + 0x10) = (ulong)pLVar10->st_size;\n      bVar1 = pLVar10->field_0x17;\n      puVar15[5] = '\0';\n      *(short *)(puVar15 + 6) = (short)uVar11;\n      puVar15[4] = bVar1 >> 4;\n      puVar15 = puVar16;\n      if (this->local_symbol_count_ <= uVar4) break;\n      goto LAB_001a8483;\n    }" if (parenthesized_expression "((char)pLVar10->field_0x1b < '\0')" ( (binary_expression "(char)pLVar10->field_0x1b < '\0'" (cast_expression "(char)pLVar10->field_0x1b" ( (type_descriptor "char" primitive_type) ) (field_expression "pLVar10->field_0x1b" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (local_98 + uVar13 <= puVar15) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar16 = puVar15 + 0x18;\n      uVar4 = uVar4 + 1;\n      sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar10->name);\n      *(int *)puVar15 = (int)sVar8;\n      *(Address *)(puVar15 + 8) = pLVar10->st_value;\n      *(ulong *)(puVar15 + 0x10) = (ulong)pLVar10->st_size;\n      bVar1 = pLVar10->field_0x17;\n      puVar15[5] = '\0';\n      *(short *)(puVar15 + 6) = (short)uVar11;\n      puVar15[4] = bVar1 >> 4;\n      puVar15 = puVar16;\n      if (this->local_symbol_count_ <= uVar4) break;\n      goto LAB_001a8483;\n    }" { (if_statement "if (local_98 + uVar13 <= puVar15) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n      }" if (parenthesized_expression "(local_98 + uVar13 <= puVar15)" ( (binary_expression "local_98 + uVar13 <= puVar15" (binary_expression "local_98 + uVar13" identifier + identifier) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa53,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;) })) (expression_statement "puVar16 = puVar15 + 0x18;" (assignment_expression "puVar16 = puVar15 + 0x18" identifier = (binary_expression "puVar15 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) (expression_statement "sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar10->name);" (assignment_expression "sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar10->name)" identifier = (binary_expression "Stringpool_template<char>::get_offset(local_88,pLVar10->name)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "get_offset(local_88,pLVar10->name)" identifier (argument_list "(local_88,pLVar10->name)" ( identifier , (field_expression "pLVar10->name" identifier -> field_identifier) ))))) ;) (expression_statement "*(int *)puVar15 = (int)sVar8;" (assignment_expression "*(int *)puVar15 = (int)sVar8" (pointer_expression "*(int *)puVar15" * (cast_expression "(int *)puVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(Address *)(puVar15 + 8) = pLVar10->st_value;" (assignment_expression "*(Address *)(puVar15 + 8) = pLVar10->st_value" (pointer_expression "*(Address *)(puVar15 + 8)" * (cast_expression "(Address *)(puVar15 + 8)" ( (type_descriptor "Address *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 8)" ( (binary_expression "puVar15 + 8" identifier + number_literal) )))) = (field_expression "pLVar10->st_value" identifier -> field_identifier)) ;) (expression_statement "*(ulong *)(puVar15 + 0x10) = (ulong)pLVar10->st_size;" (assignment_expression "*(ulong *)(puVar15 + 0x10) = (ulong)pLVar10->st_size" (pointer_expression "*(ulong *)(puVar15 + 0x10)" * (cast_expression "(ulong *)(puVar15 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x10)" ( (binary_expression "puVar15 + 0x10" identifier + number_literal) )))) = (cast_expression "(ulong)pLVar10->st_size" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pLVar10->st_size" identifier -> field_identifier))) ;) (expression_statement "bVar1 = pLVar10->field_0x17;" (assignment_expression "bVar1 = pLVar10->field_0x17" identifier = (field_expression "pLVar10->field_0x17" identifier -> field_identifier)) ;) (expression_statement "puVar15[5] = '\0';" (assignment_expression "puVar15[5] = '\0'" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(short *)(puVar15 + 6) = (short)uVar11;" (assignment_expression "*(short *)(puVar15 + 6) = (short)uVar11" (pointer_expression "*(short *)(puVar15 + 6)" * (cast_expression "(short *)(puVar15 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 6)" ( (binary_expression "puVar15 + 6" identifier + number_literal) )))) = (cast_expression "(short)uVar11" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "puVar15[4] = bVar1 >> 4;" (assignment_expression "puVar15[4] = bVar1 >> 4" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" identifier = identifier) ;) (if_statement "if (this->local_symbol_count_ <= uVar4) break;" if (parenthesized_expression "(this->local_symbol_count_ <= uVar4)" ( (binary_expression "this->local_symbol_count_ <= uVar4" (field_expression "this->local_symbol_count_" identifier -> field_identifier) <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_001a8483;" goto statement_identifier ;) })) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(uVar4 < this->local_symbol_count_)" ( (binary_expression "uVar4 < this->local_symbol_count_" identifier < (field_expression "this->local_symbol_count_" identifier -> field_identifier)) )) ;)) (if_statement "if ((uVar17 != 0) && ((Sized_relobj_incr<64,_false> *)(puVar18 + -(long)local_68) != this_01)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa62,"do_relocate");\n  }" if (parenthesized_expression "((uVar17 != 0) && ((Sized_relobj_incr<64,_false> *)(puVar18 + -(long)local_68) != this_01))" ( (binary_expression "(uVar17 != 0) && ((Sized_relobj_incr<64,_false> *)(puVar18 + -(long)local_68) != this_01)" (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) && (parenthesized_expression "((Sized_relobj_incr<64,_false> *)(puVar18 + -(long)local_68) != this_01)" ( (binary_expression "(Sized_relobj_incr<64,_false> *)(puVar18 + -(long)local_68) != this_01" (call_expression "(Sized_relobj_incr<64,_false> *)(puVar18 + -(long)local_68)" (parenthesized_expression "(Sized_relobj_incr<64,_false> *)" ( (comma_expression "Sized_relobj_incr<64,_false> *" (binary_expression "Sized_relobj_incr<64" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(puVar18 + -(long)local_68)" ( (binary_expression "puVar18 + -(long)local_68" identifier + (unary_expression "-(long)local_68" - (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ))) != identifier) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa62,"do_relocate");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0xa62,"do_relocate");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0xa62,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa62,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;) })) (if_statement "if ((uVar12 == 0) || ((long)puVar16 - (long)local_98 == uVar13)) {\n    return;\n  }" if (parenthesized_expression "((uVar12 == 0) || ((long)puVar16 - (long)local_98 == uVar13))" ( (binary_expression "(uVar12 == 0) || ((long)puVar16 - (long)local_98 == uVar13)" (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) || (parenthesized_expression "((long)puVar16 - (long)local_98 == uVar13)" ( (binary_expression "(long)puVar16 - (long)local_98 == uVar13" (binary_expression "(long)puVar16 - (long)local_98" (cast_expression "(long)puVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)local_98" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) == identifier) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_001a8756:\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/incremental.cc",0xa69,"do_relocate");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/incremental.cc",0xa69,"do_relocate");" (call_expression "do_gold_unreachable("../../gold/incremental.cc",0xa69,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa69,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;)) (ERROR "}" }))
(translation_unit "void FUN_001a81c0(long *param_1,undefined8 param_2,long param_3,long param_4)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar13;\n  void *__dest;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  long local_a0;\n  undefined4 *local_98;\n  long local_88;\n  undefined4 *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  ulong uVar12;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_001a876e:\n                    \n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    \n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_001a86f1:\n                    \n    FUN_0019ff30();\n  }\n  lVar11 = lVar11 + *(long *)(param_4 + 0x18);\n  uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);\n  __dest = (void *)(lVar11 + uVar12);\n  memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));\n  if (*(int *)((long)param_1 + 0x15c) != 0) {\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_001a8308:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n                    \n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;\n  iVar3 = (int)param_1[0x24];\n  uVar16 = iVar3 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (undefined4 *)0x0;\n  }\n  else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar10;\n  if (uVar10 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar9 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_001a8483:\n  do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_001a8756:\n                    \n  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");\n}\n\n" (function_definition "void FUN_001a81c0(long *param_1,undefined8 param_2,long param_3,long param_4)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar13;\n  void *__dest;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  long local_a0;\n  undefined4 *local_98;\n  long local_88;\n  undefined4 *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  ulong uVar12;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_001a876e:\n                    \n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    \n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_001a86f1:\n                    \n    FUN_0019ff30();\n  }\n  lVar11 = lVar11 + *(long *)(param_4 + 0x18);\n  uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);\n  __dest = (void *)(lVar11 + uVar12);\n  memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));\n  if (*(int *)((long)param_1 + 0x15c) != 0) {\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_001a8308:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n                    \n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;\n  iVar3 = (int)param_1[0x24];\n  uVar16 = iVar3 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (undefined4 *)0x0;\n  }\n  else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar10;\n  if (uVar10 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar9 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_001a8483:\n  do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_001a8756:\n                    \n  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");\n}" primitive_type (function_declarator "FUN_001a81c0(long *param_1,undefined8 param_2,long param_3,long param_4)" identifier (parameter_list "(long *param_1,undefined8 param_2,long param_3,long param_4)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar13;\n  void *__dest;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  long local_a0;\n  undefined4 *local_98;\n  long local_88;\n  undefined4 *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  ulong uVar12;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_001a876e:\n                    \n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    \n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_001a86f1:\n                    \n    FUN_0019ff30();\n  }\n  lVar11 = lVar11 + *(long *)(param_4 + 0x18);\n  uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);\n  __dest = (void *)(lVar11 + uVar12);\n  memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));\n  if (*(int *)((long)param_1 + 0x15c) != 0) {\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_001a8308:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n                    \n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;\n  iVar3 = (int)param_1[0x24];\n  uVar16 = iVar3 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (undefined4 *)0x0;\n  }\n  else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar10;\n  if (uVar10 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar9 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_001a8483:\n  do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_001a8756:\n                    \n  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar13;" (sized_type_specifier "long" long) (pointer_declarator "*plVar13" * identifier) ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "long local_a0;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "long local_58;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (if_statement "if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }" if (parenthesized_expression "(*(int *)((long)param_1 + 0x15c) == 0)" ( (binary_expression "*(int *)((long)param_1 + 0x15c) == 0" (pointer_expression "*(int *)((long)param_1 + 0x15c)" * (cast_expression "(int *)((long)param_1 + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x15c)" ( (binary_expression "(long)param_1 + 0x15c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (*(long *)(param_3 + 0x378) == 0) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }" if (parenthesized_expression "(*(long *)(param_3 + 0x378) == 0)" ( (binary_expression "*(long *)(param_3 + 0x378) == 0" (pointer_expression "*(long *)(param_3 + 0x378)" * (cast_expression "(long *)(param_3 + 0x378)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x378)" ( (binary_expression "param_3 + 0x378" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }" { (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa01,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;) })) (expression_statement "lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);" (assignment_expression "lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68)" identifier = (pointer_expression "*(long *)(*(long *)(param_3 + 0x378) + 0x68)" * (cast_expression "(long *)(*(long *)(param_3 + 0x378) + 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_3 + 0x378) + 0x68)" ( (binary_expression "*(long *)(param_3 + 0x378) + 0x68" (pointer_expression "*(long *)(param_3 + 0x378)" * (cast_expression "(long *)(param_3 + 0x378)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x378)" ( (binary_expression "param_3 + 0x378" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_001a876e:\n                    \n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }" if (parenthesized_expression "((*(byte *)(lVar6 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x20) & 4)" ( (binary_expression "*(byte *)(lVar6 + 0x20) & 4" (pointer_expression "*(byte *)(lVar6 + 0x20)" * (cast_expression "(byte *)(lVar6 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001a876e:\n                    \n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }" { (labeled_statement "LAB_001a876e:\n                    \n    FUN_00199900("../../gold/output.h",0xe3,"offset");" statement_identifier : (expression_statement "FUN_00199900("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_00199900("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;)) })) (expression_statement "lVar11 = *(long *)(lVar6 + 0x18);" (assignment_expression "lVar11 = *(long *)(lVar6 + 0x18)" identifier = (pointer_expression "*(long *)(lVar6 + 0x18)" * (cast_expression "(long *)(lVar6 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    \n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }" if (parenthesized_expression "((*(byte *)(lVar6 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x20) & 2)" ( (binary_expression "*(byte *)(lVar6 + 0x20) & 2" (pointer_expression "*(byte *)(lVar6 + 0x20)" * (cast_expression "(byte *)(lVar6 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }" { (expression_statement "FUN_00199900("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_00199900("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) (if_statement "if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_001a86f1:\n                    \n    FUN_0019ff30();\n  }" if (parenthesized_expression "((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11))" ( (binary_expression "(lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)" (parenthesized_expression "(lVar11 < 0)" ( (binary_expression "lVar11 < 0" identifier < number_literal) )) || (parenthesized_expression "(*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)" ( (binary_expression "*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11" (pointer_expression "*(long *)(param_4 + 0x10)" * (cast_expression "(long *)(param_4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) < (binary_expression "*(long *)(lVar6 + 0x10) + lVar11" (pointer_expression "*(long *)(lVar6 + 0x10)" * (cast_expression "(long *)(lVar6 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) )))) + identifier)) ))) )) (compound_statement "{\nLAB_001a86f1:\n                    \n    FUN_0019ff30();\n  }" { (labeled_statement "LAB_001a86f1:\n                    \n    FUN_0019ff30();" statement_identifier : (expression_statement "FUN_0019ff30();" (call_expression "FUN_0019ff30()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "lVar11 = lVar11 + *(long *)(param_4 + 0x18);" (assignment_expression "lVar11 = lVar11 + *(long *)(param_4 + 0x18)" identifier = (binary_expression "lVar11 + *(long *)(param_4 + 0x18)" identifier + (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))))) ;) (expression_statement "uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);" (assignment_expression "uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18)" identifier = (call_expression "(ulong)(uint)((int)param_1[0x2c] * 0x18)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "((int)param_1[0x2c] * 0x18)" ( (binary_expression "(int)param_1[0x2c] * 0x18" (cast_expression "(int)param_1[0x2c]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) * number_literal) )))) ;) (expression_statement "__dest = (void *)(lVar11 + uVar12);" (assignment_expression "__dest = (void *)(lVar11 + uVar12)" identifier = (cast_expression "(void *)(lVar11 + uVar12)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + uVar12)" ( (binary_expression "lVar11 + uVar12" identifier + identifier) )))) ;) (expression_statement "memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));" (call_expression "memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18))" identifier (argument_list "(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18))" ( identifier , (cast_expression "(void *)param_1[0x2d]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x2d]" identifier [ number_literal ])) , (call_expression "(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(*(int *)((long)param_1 + 0x15c) * 0x18)" ( (binary_expression "*(int *)((long)param_1 + 0x15c) * 0x18" (pointer_expression "*(int *)((long)param_1 + 0x15c)" * (cast_expression "(int *)((long)param_1 + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x15c)" ( (binary_expression "(long)param_1 + 0x15c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) * number_literal) ))) ))) ;) (if_statement "if (*(int *)((long)param_1 + 0x15c) != 0) {\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }" if (parenthesized_expression "(*(int *)((long)param_1 + 0x15c) != 0)" ( (binary_expression "*(int *)((long)param_1 + 0x15c) != 0" (pointer_expression "*(int *)((long)param_1 + 0x15c)" * (cast_expression "(int *)((long)param_1 + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x15c)" ( (binary_expression "(long)param_1 + 0x15c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }" { (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8)" identifier = (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8)" * (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8)" ( (binary_expression "*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8" (pointer_expression "*(long *)(param_1[0x1f] + 0x90)" * (cast_expression "(long *)(param_1[0x1f] + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x1f] + 0x90)" ( (binary_expression "param_1[0x1f] + 0x90" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) + number_literal) )))) + (binary_expression "(ulong)*(uint *)((long)__dest + 4) * 8" (binary_expression "(ulong)*(uint *)((long)__dest + 4)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)((long)__dest + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + 4)" ( (binary_expression "(long)__dest + 4" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }" if (parenthesized_expression "(plVar13 != (long *)0x0)" ( (binary_expression "plVar13 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);" do (compound_statement "{\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      }" { (if_statement "if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }" if (parenthesized_expression "(*(code **)(*plVar13 + 0x58) == FUN_001a28d0)" ( (binary_expression "*(code **)(*plVar13 + 0x58) == FUN_001a28d0" (pointer_expression "*(code **)(*plVar13 + 0x58)" * (cast_expression "(code **)(*plVar13 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar13 + 0x58)" ( (binary_expression "*plVar13 + 0x58" (pointer_expression "*plVar13" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }" { (expression_statement "iVar3 = *(int *)((long)plVar13 + 0x7c);" (assignment_expression "iVar3 = *(int *)((long)plVar13 + 0x7c)" identifier = (pointer_expression "*(int *)((long)plVar13 + 0x7c)" * (cast_expression "(int *)((long)plVar13 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar13 + 0x7c)" ( (binary_expression "(long)plVar13 + 0x7c" (cast_expression "(long)plVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar3 == -1) goto LAB_001a86a9;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (goto_statement "goto LAB_001a86a9;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }" else (compound_statement "{\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }" { (expression_statement "iVar3 = (**(code **)(*plVar13 + 0x58))();" (assignment_expression "iVar3 = (**(code **)(*plVar13 + 0x58))()" identifier = (call_expression "(**(code **)(*plVar13 + 0x58))()" (parenthesized_expression "(**(code **)(*plVar13 + 0x58))" ( (pointer_expression "**(code **)(*plVar13 + 0x58)" * (pointer_expression "*(code **)(*plVar13 + 0x58)" * (cast_expression "(code **)(*plVar13 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar13 + 0x58)" ( (binary_expression "*plVar13 + 0x58" (pointer_expression "*plVar13" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (expression_statement "*(int *)((long)__dest + 4) = iVar3;" (assignment_expression "*(int *)((long)__dest + 4) = iVar3" (pointer_expression "*(int *)((long)__dest + 4)" * (cast_expression "(int *)((long)__dest + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + 4)" ( (binary_expression "(long)__dest + 4" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (if_statement "if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;" if (parenthesized_expression "(*(uint *)((long)param_1 + 0x15c) <= uVar16)" ( (binary_expression "*(uint *)((long)param_1 + 0x15c) <= uVar16" (pointer_expression "*(uint *)((long)param_1 + 0x15c)" * (cast_expression "(uint *)((long)param_1 + 0x15c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x15c)" ( (binary_expression "(long)param_1 + 0x15c" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_001a8308;" goto statement_identifier ;)) (expression_statement "__dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);" (assignment_expression "__dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11)" identifier = (cast_expression "(void *)(uVar16 * 0x18 + uVar12 + lVar11)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar16 * 0x18 + uVar12 + lVar11)" ( (binary_expression "uVar16 * 0x18 + uVar12 + lVar11" (binary_expression "uVar16 * 0x18 + uVar12" (binary_expression "uVar16 * 0x18" identifier * number_literal) + identifier) + identifier) )))) ;) (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8)" identifier = (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8)" * (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8)" ( (binary_expression "*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8" (pointer_expression "*(long *)(param_1[0x1f] + 0x90)" * (cast_expression "(long *)(param_1[0x1f] + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x1f] + 0x90)" ( (binary_expression "param_1[0x1f] + 0x90" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) + number_literal) )))) + (binary_expression "(ulong)*(uint *)((long)__dest + 4) * 8" (binary_expression "(ulong)*(uint *)((long)__dest + 4)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)((long)__dest + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + 4)" ( (binary_expression "(long)__dest + 4" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) * number_literal)) ))))) ;) }) while (parenthesized_expression "(plVar13 != (long *)0x0)" ( (binary_expression "plVar13 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa12,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;) })) (labeled_statement "LAB_001a8308:\n  lVar6 = *(long *)(param_3 + 0x2d0);" statement_identifier : (expression_statement "lVar6 = *(long *)(param_3 + 0x2d0);" (assignment_expression "lVar6 = *(long *)(param_3 + 0x2d0)" identifier = (pointer_expression "*(long *)(param_3 + 0x2d0)" * (cast_expression "(long *)(param_3 + 0x2d0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2d0)" ( (binary_expression "param_3 + 0x2d0" identifier + number_literal) ))))) ;)) (if_statement "if (lVar6 == 0) {\n                    \n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }" { (expression_statement "FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");" (call_expression "FUN_00199900("../../gold/layout.h",0x35a,"symtab_section")" identifier (argument_list "("../../gold/layout.h",0x35a,"symtab_section")" ( (string_literal ""../../gold/layout.h"" " string_content ") , number_literal , (string_literal ""symtab_section"" " string_content ") ))) ;) })) (if_statement "if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;" if (parenthesized_expression "((*(byte *)(lVar6 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x20) & 4)" ( (binary_expression "*(byte *)(lVar6 + 0x20) & 4" (pointer_expression "*(byte *)(lVar6 + 0x20)" * (cast_expression "(byte *)(lVar6 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001a876e;" goto statement_identifier ;)) (expression_statement "iVar3 = (int)param_1[0x24];" (assignment_expression "iVar3 = (int)param_1[0x24]" identifier = (cast_expression "(int)param_1[0x24]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x24]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = iVar3 * 0x18;" (assignment_expression "uVar16 = iVar3 * 0x18" identifier = (binary_expression "iVar3 * 0x18" identifier * number_literal)) ;) (if_statement "if (uVar16 == 0) {\n    local_68 = (undefined4 *)0x0;\n  }\n  else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    local_68 = (undefined4 *)0x0;\n  }" { (expression_statement "local_68 = (undefined4 *)0x0;" (assignment_expression "local_68 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }" else (compound_statement "{\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }" { (expression_statement "lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);" (assignment_expression "lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18)" identifier = (binary_expression "(ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18)" (binary_expression "(ulong)*(uint *)((long)param_1 + 300)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)((long)param_1 + 300)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 300)" ( (binary_expression "(long)param_1 + 300" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + (pointer_expression "*(long *)(lVar6 + 0x18)" * (cast_expression "(long *)(lVar6 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))))) ;) (if_statement "if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;" if (parenthesized_expression "((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))" ( (binary_expression "(lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16))" (parenthesized_expression "(lVar6 < 0)" ( (binary_expression "lVar6 < 0" identifier < number_literal) )) || (parenthesized_expression "(*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16))" ( (binary_expression "*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)" (pointer_expression "*(long *)(param_4 + 0x10)" * (cast_expression "(long *)(param_4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) < (cast_expression "(long)(lVar6 + (ulong)uVar16)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(lVar6 + (ulong)uVar16)" ( (binary_expression "lVar6 + (ulong)uVar16" identifier + (cast_expression "(ulong)uVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ))) )) (goto_statement "goto LAB_001a86f1;" goto statement_identifier ;)) (expression_statement "local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));" (assignment_expression "local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18))" identifier = (cast_expression "(undefined4 *)(lVar6 + *(long *)(param_4 + 0x18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + *(long *)(param_4 + 0x18))" ( (binary_expression "lVar6 + *(long *)(param_4 + 0x18)" identifier + (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) )))) ;) }))) (expression_statement "uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;" (assignment_expression "uVar10 = *(int *)((long)param_1 + 0x124) * 0x18" identifier = (binary_expression "*(int *)((long)param_1 + 0x124) * 0x18" (pointer_expression "*(int *)((long)param_1 + 0x124)" * (cast_expression "(int *)((long)param_1 + 0x124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x124)" ( (binary_expression "(long)param_1 + 0x124" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) * number_literal)) ;) (expression_statement "uVar12 = (ulong)uVar10;" (assignment_expression "uVar12 = (ulong)uVar10" identifier = (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar10 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }" { (expression_statement "lVar6 = *(long *)(param_3 + 0x2d8);" (assignment_expression "lVar6 = *(long *)(param_3 + 0x2d8)" identifier = (pointer_expression "*(long *)(param_3 + 0x2d8)" * (cast_expression "(long *)(param_3 + 0x2d8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2d8)" ( (binary_expression "param_3 + 0x2d8" identifier + number_literal) ))))) ;) (expression_statement "local_58 = *(long *)(param_3 + 0x2e8);" (assignment_expression "local_58 = *(long *)(param_3 + 0x2e8)" identifier = (pointer_expression "*(long *)(param_3 + 0x2e8)" * (cast_expression "(long *)(param_3 + 0x2e8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2e8)" ( (binary_expression "param_3 + 0x2e8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) {\n      return;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "local_98 = (undefined4 *)0x0;" (assignment_expression "local_98 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }" else (compound_statement "{\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }" { (if_statement "if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;" if (parenthesized_expression "(*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12))" ( (binary_expression "*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)" (pointer_expression "*(long *)(param_4 + 0x10)" * (cast_expression "(long *)(param_4 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x10)" ( (binary_expression "param_4 + 0x10" identifier + number_literal) )))) < (cast_expression "(long)(*(uint *)(param_1 + 0x26) + uVar12)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(*(uint *)(param_1 + 0x26) + uVar12)" ( (binary_expression "*(uint *)(param_1 + 0x26) + uVar12" (pointer_expression "*(uint *)(param_1 + 0x26)" * (cast_expression "(uint *)(param_1 + 0x26)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x26)" ( (binary_expression "param_1 + 0x26" identifier + number_literal) )))) + identifier) )))) )) (goto_statement "goto LAB_001a86f1;" goto statement_identifier ;)) (expression_statement "local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));" (assignment_expression "local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" identifier = (cast_expression "(undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" ( (binary_expression "(ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18)" (binary_expression "(ulong)*(uint *)(param_1 + 0x26)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(param_1 + 0x26)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x26)" ( (binary_expression "param_1 + 0x26" identifier + number_literal) )))) + (pointer_expression "*(long *)(param_4 + 0x18)" * (cast_expression "(long *)(param_4 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) )))) ;) (expression_statement "lVar6 = *(long *)(param_3 + 0x2d8);" (assignment_expression "lVar6 = *(long *)(param_3 + 0x2d8)" identifier = (pointer_expression "*(long *)(param_3 + 0x2d8)" * (cast_expression "(long *)(param_3 + 0x2d8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2d8)" ( (binary_expression "param_3 + 0x2d8" identifier + number_literal) ))))) ;) (expression_statement "local_58 = *(long *)(param_3 + 0x2e8);" (assignment_expression "local_58 = *(long *)(param_3 + 0x2e8)" identifier = (pointer_expression "*(long *)(param_3 + 0x2e8)" * (cast_expression "(long *)(param_3 + 0x2e8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2e8)" ( (binary_expression "param_3 + 0x2e8" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 0) goto LAB_001a8756;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001a8756;" goto statement_identifier ;)) }))) (expression_statement "local_88 = param_3 + 0x130;" (assignment_expression "local_88 = param_3 + 0x130" identifier = (binary_expression "param_3 + 0x130" identifier + number_literal)) ;) (expression_statement "local_a0 = param_3 + 0xa0;" (assignment_expression "local_a0 = param_3 + 0xa0" identifier = (binary_expression "param_3 + 0xa0" identifier + number_literal)) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = local_98;" (assignment_expression "puVar14 = local_98" identifier = identifier) ;) (expression_statement "puVar18 = local_68;" (assignment_expression "puVar18 = local_68" identifier = identifier) ;) (labeled_statement "LAB_001a8483:\n  do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));" statement_identifier : (do_statement "do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));" do (compound_statement "{\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  }" { (expression_statement "puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);" (assignment_expression "puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e])" identifier = (cast_expression "(undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e])" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)uVar9 * 0x20 + param_1[0x2e])" ( (binary_expression "(ulong)uVar9 * 0x20 + param_1[0x2e]" (binary_expression "(ulong)uVar9 * 0x20" (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) + (subscript_expression "param_1[0x2e]" identifier [ number_literal ])) )))) ;) (expression_statement "uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;" (assignment_expression "uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff" identifier = (binary_expression "*(uint *)((long)puVar7 + 0x14) & 0xfffffff" (pointer_expression "*(uint *)((long)puVar7 + 0x14)" * (cast_expression "(uint *)((long)puVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 0x14)" ( (binary_expression "(long)puVar7 + 0x14" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }" if (parenthesized_expression "(uVar8 < 0xff00)" ( (binary_expression "uVar8 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }" { (labeled_statement "LAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);" statement_identifier : (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8)" identifier = (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8)" * (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8)" ( (binary_expression "*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8" (pointer_expression "*(long *)(param_1[0x1f] + 0x90)" * (cast_expression "(long *)(param_1[0x1f] + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x1f] + 0x90)" ( (binary_expression "param_1[0x1f] + 0x90" (subscript_expression "param_1[0x1f]" identifier [ number_literal ]) + number_literal) )))) + (binary_expression "(ulong)uVar8 * 8" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;)) (expression_statement "pcVar2 = *(code **)(*plVar13 + 0x58);" (assignment_expression "pcVar2 = *(code **)(*plVar13 + 0x58)" identifier = (pointer_expression "*(code **)(*plVar13 + 0x58)" * (cast_expression "(code **)(*plVar13 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar13 + 0x58)" ( (binary_expression "*plVar13 + 0x58" (pointer_expression "*plVar13" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }" if (parenthesized_expression "(pcVar2 == FUN_001a28d0)" ( (binary_expression "pcVar2 == FUN_001a28d0" identifier == identifier) )) (compound_statement "{\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }" { (expression_statement "uVar5 = *(uint *)((long)plVar13 + 0x7c);" (assignment_expression "uVar5 = *(uint *)((long)plVar13 + 0x7c)" identifier = (pointer_expression "*(uint *)((long)plVar13 + 0x7c)" * (cast_expression "(uint *)((long)plVar13 + 0x7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar13 + 0x7c)" ( (binary_expression "(long)plVar13 + 0x7c" (cast_expression "(long)plVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }" { (labeled_statement "LAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");" statement_identifier : (expression_statement "FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx")" identifier (argument_list "("../../gold/output.h",0x1043,"do_out_shndx")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_out_shndx"" " string_content ") ))) ;)) })) }) (else_clause "else {\n        uVar5 = (*pcVar2)();\n      }" else (compound_statement "{\n        uVar5 = (*pcVar2)();\n      }" { (expression_statement "uVar5 = (*pcVar2)();" (assignment_expression "uVar5 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar8 = uVar5;" (assignment_expression "uVar8 = uVar5" identifier = identifier) ;) (if_statement "if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }" if (parenthesized_expression "(0xfeff < uVar5)" ( (binary_expression "0xfeff < uVar5" number_literal < identifier) )) (compound_statement "{\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }" { (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_40 = (int)param_1[0x25] + uVar9;" (assignment_expression "local_40 = (int)param_1[0x25] + uVar9" identifier = (binary_expression "(int)param_1[0x25] + uVar9" (cast_expression "(int)param_1[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x25]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "local_3c = uVar5;" (assignment_expression "local_3c = uVar5" identifier = identifier) ;) (expression_statement "FUN_001a7bd0(lVar6 + 0x38,&local_40);" (call_expression "FUN_001a7bd0(lVar6 + 0x38,&local_40)" identifier (argument_list "(lVar6 + 0x38,&local_40)" ( (binary_expression "lVar6 + 0x38" identifier + number_literal) , (pointer_expression "&local_40" & identifier) ))) ;) (if_statement "if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }" if (parenthesized_expression "(*(char *)((long)puVar7 + 0x1b) < '\0')" ( (binary_expression "*(char *)((long)puVar7 + 0x1b) < '\0'" (pointer_expression "*(char *)((long)puVar7 + 0x1b)" * (cast_expression "(char *)((long)puVar7 + 0x1b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 0x1b)" ( (binary_expression "(long)puVar7 + 0x1b" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }" { (expression_statement "local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;" (assignment_expression "local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff" identifier = (binary_expression "*(uint *)(puVar7 + 3) & 0x7fffffff" (pointer_expression "*(uint *)(puVar7 + 3)" * (cast_expression "(uint *)(puVar7 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 3)" ( (binary_expression "puVar7 + 3" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "local_3c = uVar5;" (assignment_expression "local_3c = uVar5" identifier = identifier) ;) (expression_statement "FUN_001a7bd0(local_58 + 0x38,&local_40);" (call_expression "FUN_001a7bd0(local_58 + 0x38,&local_40)" identifier (argument_list "(local_58 + 0x38,&local_40)" ( (binary_expression "local_58 + 0x38" identifier + number_literal) , (pointer_expression "&local_40" & identifier) ))) ;) })) })) }) (else_clause "else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }" else (if_statement "if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }" if (parenthesized_expression "(uVar8 == 0xffff)" ( (binary_expression "uVar8 == 0xffff" identifier == number_literal) )) (compound_statement "{\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }" { (expression_statement "lVar11 = param_1[8];" (assignment_expression "lVar11 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (if_statement "if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }" { (expression_statement "lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);" (assignment_expression "lVar11 = (**(code **)(*param_1 + 0xd8))(param_1)" identifier = (call_expression "(**(code **)(*param_1 + 0xd8))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 0xd8))" ( (pointer_expression "**(code **)(*param_1 + 0xd8)" * (pointer_expression "*(code **)(*param_1 + 0xd8)" * (cast_expression "(code **)(*param_1 + 0xd8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0xd8)" ( (binary_expression "*param_1 + 0xd8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "param_1[8] = lVar11;" (assignment_expression "param_1[8] = lVar11" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);" (assignment_expression "uVar8 = FUN_001c7c40(lVar11,param_1,uVar9)" identifier = (call_expression "FUN_001c7c40(lVar11,param_1,uVar9)" identifier (argument_list "(lVar11,param_1,uVar9)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_001a84aa;" goto statement_identifier ;) })))) (expression_statement "puVar17 = puVar18 + 6;" (assignment_expression "puVar17 = puVar18 + 6" identifier = (binary_expression "puVar18 + 6" identifier + number_literal)) ;) (expression_statement "uVar4 = FUN_00247a20(local_a0,puVar7[1]);" (assignment_expression "uVar4 = FUN_00247a20(local_a0,puVar7[1])" identifier = (call_expression "FUN_00247a20(local_a0,puVar7[1])" identifier (argument_list "(local_a0,puVar7[1])" ( identifier , (subscript_expression "puVar7[1]" identifier [ number_literal ]) )))) ;) (expression_statement "*puVar18 = uVar4;" (assignment_expression "*puVar18 = uVar4" (pointer_expression "*puVar18" * identifier) = identifier) ;) (expression_statement "*(undefined8 *)(puVar18 + 2) = *puVar7;" (assignment_expression "*(undefined8 *)(puVar18 + 2) = *puVar7" (pointer_expression "*(undefined8 *)(puVar18 + 2)" * (cast_expression "(undefined8 *)(puVar18 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 2)" ( (binary_expression "puVar18 + 2" identifier + number_literal) )))) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);" (assignment_expression "*(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2)" (pointer_expression "*(ulong *)(puVar18 + 4)" * (cast_expression "(ulong *)(puVar18 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 4)" ( (binary_expression "puVar18 + 4" identifier + number_literal) )))) = (binary_expression "(ulong)*(uint *)(puVar7 + 2)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(puVar7 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 2)" ( (binary_expression "puVar7 + 2" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)((long)puVar7 + 0x17);" (assignment_expression "bVar1 = *(byte *)((long)puVar7 + 0x17)" identifier = (pointer_expression "*(byte *)((long)puVar7 + 0x17)" * (cast_expression "(byte *)((long)puVar7 + 0x17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 0x17)" ( (binary_expression "(long)puVar7 + 0x17" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((long)puVar18 + 5) = 0;" (assignment_expression "*(undefined1 *)((long)puVar18 + 5) = 0" (pointer_expression "*(undefined1 *)((long)puVar18 + 5)" * (cast_expression "(undefined1 *)((long)puVar18 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar18 + 5)" ( (binary_expression "(long)puVar18 + 5" (cast_expression "(long)puVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(short *)((long)puVar18 + 6) = (short)uVar8;" (assignment_expression "*(short *)((long)puVar18 + 6) = (short)uVar8" (pointer_expression "*(short *)((long)puVar18 + 6)" * (cast_expression "(short *)((long)puVar18 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar18 + 6)" ( (binary_expression "(long)puVar18 + 6" (cast_expression "(long)puVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (cast_expression "(short)uVar8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "*(byte *)(puVar18 + 1) = bVar1 >> 4;" (assignment_expression "*(byte *)(puVar18 + 1) = bVar1 >> 4" (pointer_expression "*(byte *)(puVar18 + 1)" * (cast_expression "(byte *)(puVar18 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 1)" ( (binary_expression "puVar18 + 1" identifier + number_literal) )))) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "puVar18 = puVar17;" (assignment_expression "puVar18 = puVar17" identifier = identifier) ;) (if_statement "if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }" if (parenthesized_expression "(*(char *)((long)puVar7 + 0x1b) < '\0')" ( (binary_expression "*(char *)((long)puVar7 + 0x1b) < '\0'" (pointer_expression "*(char *)((long)puVar7 + 0x1b)" * (cast_expression "(char *)((long)puVar7 + 0x1b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 0x1b)" ( (binary_expression "(long)puVar7 + 0x1b" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }" { (if_statement "if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }" if (parenthesized_expression "((undefined4 *)((long)local_98 + uVar12) <= puVar14)" ( (binary_expression "(undefined4 *)((long)local_98 + uVar12) <= puVar14" (cast_expression "(undefined4 *)((long)local_98 + uVar12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_98 + uVar12)" ( (binary_expression "(long)local_98 + uVar12" (cast_expression "(long)local_98" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) <= identifier) )) (compound_statement "{\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }" { (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa53,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;) })) (expression_statement "puVar15 = puVar14 + 6;" (assignment_expression "puVar15 = puVar14 + 6" identifier = (binary_expression "puVar14 + 6" identifier + number_literal)) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = FUN_00247a20(local_88,puVar7[1]);" (assignment_expression "uVar4 = FUN_00247a20(local_88,puVar7[1])" identifier = (call_expression "FUN_00247a20(local_88,puVar7[1])" identifier (argument_list "(local_88,puVar7[1])" ( identifier , (subscript_expression "puVar7[1]" identifier [ number_literal ]) )))) ;) (expression_statement "*puVar14 = uVar4;" (assignment_expression "*puVar14 = uVar4" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "*(undefined8 *)(puVar14 + 2) = *puVar7;" (assignment_expression "*(undefined8 *)(puVar14 + 2) = *puVar7" (pointer_expression "*(undefined8 *)(puVar14 + 2)" * (cast_expression "(undefined8 *)(puVar14 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);" (assignment_expression "*(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2)" (pointer_expression "*(ulong *)(puVar14 + 4)" * (cast_expression "(ulong *)(puVar14 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) = (binary_expression "(ulong)*(uint *)(puVar7 + 2)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(puVar7 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 2)" ( (binary_expression "puVar7 + 2" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)((long)puVar7 + 0x17);" (assignment_expression "bVar1 = *(byte *)((long)puVar7 + 0x17)" identifier = (pointer_expression "*(byte *)((long)puVar7 + 0x17)" * (cast_expression "(byte *)((long)puVar7 + 0x17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 0x17)" ( (binary_expression "(long)puVar7 + 0x17" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((long)puVar14 + 5) = 0;" (assignment_expression "*(undefined1 *)((long)puVar14 + 5) = 0" (pointer_expression "*(undefined1 *)((long)puVar14 + 5)" * (cast_expression "(undefined1 *)((long)puVar14 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 5)" ( (binary_expression "(long)puVar14 + 5" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(short *)((long)puVar14 + 6) = (short)uVar8;" (assignment_expression "*(short *)((long)puVar14 + 6) = (short)uVar8" (pointer_expression "*(short *)((long)puVar14 + 6)" * (cast_expression "(short *)((long)puVar14 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar14 + 6)" ( (binary_expression "(long)puVar14 + 6" (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (cast_expression "(short)uVar8" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "*(byte *)(puVar14 + 1) = bVar1 >> 4;" (assignment_expression "*(byte *)(puVar14 + 1) = bVar1 >> 4" (pointer_expression "*(byte *)(puVar14 + 1)" * (cast_expression "(byte *)(puVar14 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 1)" ( (binary_expression "puVar14 + 1" identifier + number_literal) )))) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "puVar14 = puVar15;" (assignment_expression "puVar14 = puVar15" identifier = identifier) ;) (if_statement "if (*(uint *)(param_1 + 0x24) <= uVar9) break;" if (parenthesized_expression "(*(uint *)(param_1 + 0x24) <= uVar9)" ( (binary_expression "*(uint *)(param_1 + 0x24) <= uVar9" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_001a8483;" goto statement_identifier ;) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar14;" (assignment_expression "puVar15 = puVar14" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 < *(uint *)(param_1 + 0x24))" ( (binary_expression "uVar9 < *(uint *)(param_1 + 0x24)" identifier < (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) )) ;)) (if_statement "if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }" if (parenthesized_expression "((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16))" ( (binary_expression "(uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)" (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) && (parenthesized_expression "((long)puVar17 - (long)local_68 != (ulong)uVar16)" ( (binary_expression "(long)puVar17 - (long)local_68 != (ulong)uVar16" (binary_expression "(long)puVar17 - (long)local_68" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) != (cast_expression "(ulong)uVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ))) )) (compound_statement "{\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }" { (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa62,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;) })) (if_statement "if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }" if (parenthesized_expression "((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12))" ( (binary_expression "(uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)" (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "((long)puVar15 - (long)local_98 == uVar12)" ( (binary_expression "(long)puVar15 - (long)local_98 == uVar12" (binary_expression "(long)puVar15 - (long)local_98" (cast_expression "(long)puVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)local_98" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) == identifier) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_001a8756:\n                    \n  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");" statement_identifier : (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate")" identifier (argument_list "("../../gold/incremental.cc",0xa69,"do_relocate")" ( (string_literal ""../../gold/incremental.cc"" " string_content ") , number_literal , (string_literal ""do_relocate"" " string_content ") ))) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) == LIT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (expression_statement (assignment_expression IDENT = (binary_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 = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) * LIT) ))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) * 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 (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (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 (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) * LIT)) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 + 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (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) ))))) )))) ;) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) })) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) 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)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) < (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) 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)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_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 IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) != (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) == IDENT) ))) )) (compound_statement { (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })))
(function_definition "void FUN_001a81c0(long *param_1,undefined8 param_2,long param_3,long param_4)\n\n{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar13;\n  void *__dest;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  long local_a0;\n  undefined4 *local_98;\n  long local_88;\n  undefined4 *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  ulong uVar12;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_001a876e:\n                    \n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    \n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_001a86f1:\n                    \n    FUN_0019ff30();\n  }\n  lVar11 = lVar11 + *(long *)(param_4 + 0x18);\n  uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);\n  __dest = (void *)(lVar11 + uVar12);\n  memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));\n  if (*(int *)((long)param_1 + 0x15c) != 0) {\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_001a8308:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n                    \n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;\n  iVar3 = (int)param_1[0x24];\n  uVar16 = iVar3 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (undefined4 *)0x0;\n  }\n  else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar10;\n  if (uVar10 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar9 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_001a8483:\n  do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_001a8756:\n                    \n  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");\n}" (primitive_type "void") (function_declarator "FUN_001a81c0(long *param_1,undefined8 param_2,long param_3,long param_4)" (identifier "FUN_001a81c0") (parameter_list "(long *param_1,undefined8 param_2,long param_3,long param_4)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) () ")"))) (compound_statement "{\n  byte bVar1;\n  code *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  long *plVar13;\n  void *__dest;\n  undefined4 *puVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  long local_a0;\n  undefined4 *local_98;\n  long local_88;\n  undefined4 *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  ulong uVar12;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_001a876e:\n                    \n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    \n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_001a86f1:\n                    \n    FUN_0019ff30();\n  }\n  lVar11 = lVar11 + *(long *)(param_4 + 0x18);\n  uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);\n  __dest = (void *)(lVar11 + uVar12);\n  memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));\n  if (*(int *)((long)param_1 + 0x15c) != 0) {\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_001a8308:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n                    \n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;\n  iVar3 = (int)param_1[0x24];\n  uVar16 = iVar3 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (undefined4 *)0x0;\n  }\n  else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar10;\n  if (uVar10 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar9 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_001a8483:\n  do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_001a8756:\n                    \n  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "code *pcVar2;" (type_identifier "code") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "long *plVar13;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar13" (* "*") (identifier "plVar13")) (; ";")) (declaration "void *__dest;" (primitive_type "void") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined4 *puVar18;" (type_identifier "undefined4") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "long local_a0;" (sized_type_specifier "long" (long "long")) (identifier "local_a0") (; ";")) (declaration "undefined4 *local_98;" (type_identifier "undefined4") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "long local_88;" (sized_type_specifier "long" (long "long")) (identifier "local_88") (; ";")) (declaration "undefined4 *local_68;" (type_identifier "undefined4") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "long local_58;" (sized_type_specifier "long" (long "long")) (identifier "local_58") (; ";")) (declaration "uint local_40;" (type_identifier "uint") (identifier "local_40") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (if_statement "if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)((long)param_1 + 0x15c) == 0)" (( "(") (binary_expression "*(int *)((long)param_1 + 0x15c) == 0" (pointer_expression "*(int *)((long)param_1 + 0x15c)" (* "*") (cast_expression "(int *)((long)param_1 + 0x15c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x15c)" (( "(") (binary_expression "(long)param_1 + 0x15c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x15c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(long *)(param_3 + 0x378) == 0) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }" (if "if") (parenthesized_expression "(*(long *)(param_3 + 0x378) == 0)" (( "(") (binary_expression "*(long *)(param_3 + 0x378) == 0" (pointer_expression "*(long *)(param_3 + 0x378)" (* "*") (cast_expression "(long *)(param_3 + 0x378)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x378)" (( "(") (binary_expression "param_3 + 0x378" (identifier "param_3") (+ "+") (number_literal "0x378")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate")" (identifier "FUN_00199900") (argument_list "("../../gold/incremental.cc",0xa01,"do_relocate")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0xa01") (, ",") (string_literal ""do_relocate"" (" """) (string_content "do_relocate") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);" (assignment_expression "lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(*(long *)(param_3 + 0x378) + 0x68)" (* "*") (cast_expression "(long *)(*(long *)(param_3 + 0x378) + 0x68)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_3 + 0x378) + 0x68)" (( "(") (binary_expression "*(long *)(param_3 + 0x378) + 0x68" (pointer_expression "*(long *)(param_3 + 0x378)" (* "*") (cast_expression "(long *)(param_3 + 0x378)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x378)" (( "(") (binary_expression "param_3 + 0x378" (identifier "param_3") (+ "+") (number_literal "0x378")) () ")")))) (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_001a876e:\n                    \n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }" (if "if") (parenthesized_expression "((*(byte *)(lVar6 + 0x20) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(lVar6 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x20) & 4)" (( "(") (binary_expression "*(byte *)(lVar6 + 0x20) & 4" (pointer_expression "*(byte *)(lVar6 + 0x20)" (* "*") (cast_expression "(byte *)(lVar6 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001a876e:\n                    \n    FUN_00199900("../../gold/output.h",0xe3,"offset");\n  }" ({ "{") (labeled_statement "LAB_001a876e:\n                    \n    FUN_00199900("../../gold/output.h",0xe3,"offset");" (statement_identifier "LAB_001a876e") (: ":") (expression_statement "FUN_00199900("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_00199900("../../gold/output.h",0xe3,"offset")" (identifier "FUN_00199900") (argument_list "("../../gold/output.h",0xe3,"offset")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xe3") (, ",") (string_literal ""offset"" (" """) (string_content "offset") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "lVar11 = *(long *)(lVar6 + 0x18);" (assignment_expression "lVar11 = *(long *)(lVar6 + 0x18)" (identifier "lVar11") (= "=") (pointer_expression "*(long *)(lVar6 + 0x18)" (* "*") (cast_expression "(long *)(lVar6 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x18)" (( "(") (binary_expression "lVar6 + 0x18" (identifier "lVar6") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    \n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }" (if "if") (parenthesized_expression "((*(byte *)(lVar6 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(lVar6 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(lVar6 + 0x20) & 2" (pointer_expression "*(byte *)(lVar6 + 0x20)" (* "*") (cast_expression "(byte *)(lVar6 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/output.h",0xcf,"data_size");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_00199900("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_00199900") (argument_list "("../../gold/output.h",0xcf,"data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xcf") (, ",") (string_literal ""data_size"" (" """) (string_content "data_size") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_001a86f1:\n                    \n    FUN_0019ff30();\n  }" (if "if") (parenthesized_expression "((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11))" (( "(") (binary_expression "(lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)" (parenthesized_expression "(lVar11 < 0)" (( "(") (binary_expression "lVar11 < 0" (identifier "lVar11") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)" (( "(") (binary_expression "*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11" (pointer_expression "*(long *)(param_4 + 0x10)" (* "*") (cast_expression "(long *)(param_4 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))) (< "<") (binary_expression "*(long *)(lVar6 + 0x10) + lVar11" (pointer_expression "*(long *)(lVar6 + 0x10)" (* "*") (cast_expression "(long *)(lVar6 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x10)" (( "(") (binary_expression "lVar6 + 0x10" (identifier "lVar6") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "lVar11"))) () ")"))) () ")")) (compound_statement "{\nLAB_001a86f1:\n                    \n    FUN_0019ff30();\n  }" ({ "{") (labeled_statement "LAB_001a86f1:\n                    \n    FUN_0019ff30();" (statement_identifier "LAB_001a86f1") (: ":") (expression_statement "FUN_0019ff30();" (call_expression "FUN_0019ff30()" (identifier "FUN_0019ff30") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (expression_statement "lVar11 = lVar11 + *(long *)(param_4 + 0x18);" (assignment_expression "lVar11 = lVar11 + *(long *)(param_4 + 0x18)" (identifier "lVar11") (= "=") (binary_expression "lVar11 + *(long *)(param_4 + 0x18)" (identifier "lVar11") (+ "+") (pointer_expression "*(long *)(param_4 + 0x18)" (* "*") (cast_expression "(long *)(param_4 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (expression_statement "uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);" (assignment_expression "uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18)" (identifier "uVar12") (= "=") (call_expression "(ulong)(uint)((int)param_1[0x2c] * 0x18)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "((int)param_1[0x2c] * 0x18)" (( "(") (binary_expression "(int)param_1[0x2c] * 0x18" (cast_expression "(int)param_1[0x2c]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]"))) (* "*") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "__dest = (void *)(lVar11 + uVar12);" (assignment_expression "__dest = (void *)(lVar11 + uVar12)" (identifier "__dest") (= "=") (cast_expression "(void *)(lVar11 + uVar12)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar11 + uVar12)" (( "(") (binary_expression "lVar11 + uVar12" (identifier "lVar11") (+ "+") (identifier "uVar12")) () ")")))) (; ";")) (expression_statement "memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));" (call_expression "memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18))" (identifier "memcpy") (argument_list "(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18))" (( "(") (identifier "__dest") (, ",") (cast_expression "(void *)param_1[0x2d]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x2d]" (identifier "param_1") ([ "[") (number_literal "0x2d") (] "]"))) (, ",") (call_expression "(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "(*(int *)((long)param_1 + 0x15c) * 0x18)" (( "(") (binary_expression "*(int *)((long)param_1 + 0x15c) * 0x18" (pointer_expression "*(int *)((long)param_1 + 0x15c)" (* "*") (cast_expression "(int *)((long)param_1 + 0x15c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x15c)" (( "(") (binary_expression "(long)param_1 + 0x15c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x15c")) () ")")))) (* "*") (number_literal "0x18")) () ")"))) () ")"))) (; ";")) (if_statement "if (*(int *)((long)param_1 + 0x15c) != 0) {\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }" (if "if") (parenthesized_expression "(*(int *)((long)param_1 + 0x15c) != 0)" (( "(") (binary_expression "*(int *)((long)param_1 + 0x15c) != 0" (pointer_expression "*(int *)((long)param_1 + 0x15c)" (* "*") (cast_expression "(int *)((long)param_1 + 0x15c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x15c)" (( "(") (binary_expression "(long)param_1 + 0x15c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x15c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");\n  }" ({ "{") (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8)" (identifier "plVar13") (= "=") (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8)" (* "*") (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8)" (( "(") (binary_expression "*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8" (pointer_expression "*(long *)(param_1[0x1f] + 0x90)" (* "*") (cast_expression "(long *)(param_1[0x1f] + 0x90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x1f] + 0x90)" (( "(") (binary_expression "param_1[0x1f] + 0x90" (subscript_expression "param_1[0x1f]" (identifier "param_1") ([ "[") (number_literal "0x1f") (] "]")) (+ "+") (number_literal "0x90")) () ")")))) (+ "+") (binary_expression "(ulong)*(uint *)((long)__dest + 4) * 8" (binary_expression "(ulong)*(uint *)((long)__dest + 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)((long)__dest + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__dest + 4)" (( "(") (binary_expression "(long)__dest + 4" (cast_expression "(long)__dest" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__dest")) (+ "+") (number_literal "4")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }" (if "if") (parenthesized_expression "(plVar13 != (long *)0x0)" (( "(") (binary_expression "plVar13 != (long *)0x0" (identifier "plVar13") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);\n    }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      } while (plVar13 != (long *)0x0);" (do "do") (compound_statement "{\n        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }\n        *(int *)((long)__dest + 4) = iVar3;\n        uVar16 = uVar16 + 1;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);\n      }" ({ "{") (if_statement "if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }\n        else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }" (if "if") (parenthesized_expression "(*(code **)(*plVar13 + 0x58) == FUN_001a28d0)" (( "(") (binary_expression "*(code **)(*plVar13 + 0x58) == FUN_001a28d0" (pointer_expression "*(code **)(*plVar13 + 0x58)" (* "*") (cast_expression "(code **)(*plVar13 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar13 + 0x58)" (( "(") (binary_expression "*plVar13 + 0x58" (pointer_expression "*plVar13" (* "*") (identifier "plVar13")) (+ "+") (number_literal "0x58")) () ")")))) (== "==") (identifier "FUN_001a28d0")) () ")")) (compound_statement "{\n          iVar3 = *(int *)((long)plVar13 + 0x7c);\n          if (iVar3 == -1) goto LAB_001a86a9;\n        }" ({ "{") (expression_statement "iVar3 = *(int *)((long)plVar13 + 0x7c);" (assignment_expression "iVar3 = *(int *)((long)plVar13 + 0x7c)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)((long)plVar13 + 0x7c)" (* "*") (cast_expression "(int *)((long)plVar13 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar13 + 0x7c)" (( "(") (binary_expression "(long)plVar13 + 0x7c" (cast_expression "(long)plVar13" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar13")) (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (if_statement "if (iVar3 == -1) goto LAB_001a86a9;" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_001a86a9;" (goto "goto") (statement_identifier "LAB_001a86a9") (; ";"))) (} "}")) (else_clause "else {\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }" (else "else") (compound_statement "{\n          iVar3 = (**(code **)(*plVar13 + 0x58))();\n        }" ({ "{") (expression_statement "iVar3 = (**(code **)(*plVar13 + 0x58))();" (assignment_expression "iVar3 = (**(code **)(*plVar13 + 0x58))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*plVar13 + 0x58))()" (parenthesized_expression "(**(code **)(*plVar13 + 0x58))" (( "(") (pointer_expression "**(code **)(*plVar13 + 0x58)" (* "*") (pointer_expression "*(code **)(*plVar13 + 0x58)" (* "*") (cast_expression "(code **)(*plVar13 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar13 + 0x58)" (( "(") (binary_expression "*plVar13 + 0x58" (pointer_expression "*plVar13" (* "*") (identifier "plVar13")) (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "*(int *)((long)__dest + 4) = iVar3;" (assignment_expression "*(int *)((long)__dest + 4) = iVar3" (pointer_expression "*(int *)((long)__dest + 4)" (* "*") (cast_expression "(int *)((long)__dest + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__dest + 4)" (( "(") (binary_expression "(long)__dest + 4" (cast_expression "(long)__dest" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__dest")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;" (if "if") (parenthesized_expression "(*(uint *)((long)param_1 + 0x15c) <= uVar16)" (( "(") (binary_expression "*(uint *)((long)param_1 + 0x15c) <= uVar16" (pointer_expression "*(uint *)((long)param_1 + 0x15c)" (* "*") (cast_expression "(uint *)((long)param_1 + 0x15c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x15c)" (( "(") (binary_expression "(long)param_1 + 0x15c" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x15c")) () ")")))) (<= "<=") (identifier "uVar16")) () ")")) (goto_statement "goto LAB_001a8308;" (goto "goto") (statement_identifier "LAB_001a8308") (; ";"))) (expression_statement "__dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);" (assignment_expression "__dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11)" (identifier "__dest") (= "=") (cast_expression "(void *)(uVar16 * 0x18 + uVar12 + lVar11)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar16 * 0x18 + uVar12 + lVar11)" (( "(") (binary_expression "uVar16 * 0x18 + uVar12 + lVar11" (binary_expression "uVar16 * 0x18 + uVar12" (binary_expression "uVar16 * 0x18" (identifier "uVar16") (* "*") (number_literal "0x18")) (+ "+") (identifier "uVar12")) (+ "+") (identifier "lVar11")) () ")")))) (; ";")) (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8)" (identifier "plVar13") (= "=") (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8)" (* "*") (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8)" (( "(") (binary_expression "*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)*(uint *)((long)__dest + 4) * 8" (pointer_expression "*(long *)(param_1[0x1f] + 0x90)" (* "*") (cast_expression "(long *)(param_1[0x1f] + 0x90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x1f] + 0x90)" (( "(") (binary_expression "param_1[0x1f] + 0x90" (subscript_expression "param_1[0x1f]" (identifier "param_1") ([ "[") (number_literal "0x1f") (] "]")) (+ "+") (number_literal "0x90")) () ")")))) (+ "+") (binary_expression "(ulong)*(uint *)((long)__dest + 4) * 8" (binary_expression "(ulong)*(uint *)((long)__dest + 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)((long)__dest + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__dest + 4)" (( "(") (binary_expression "(long)__dest + 4" (cast_expression "(long)__dest" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__dest")) (+ "+") (number_literal "4")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar13 != (long *)0x0)" (( "(") (binary_expression "plVar13 != (long *)0x0" (identifier "plVar13") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate")" (identifier "FUN_00199900") (argument_list "("../../gold/incremental.cc",0xa12,"do_relocate")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0xa12") (, ",") (string_literal ""do_relocate"" (" """) (string_content "do_relocate") (" """)) () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_001a8308:\n  lVar6 = *(long *)(param_3 + 0x2d0);" (statement_identifier "LAB_001a8308") (: ":") (expression_statement "lVar6 = *(long *)(param_3 + 0x2d0);" (assignment_expression "lVar6 = *(long *)(param_3 + 0x2d0)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(param_3 + 0x2d0)" (* "*") (cast_expression "(long *)(param_3 + 0x2d0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2d0)" (( "(") (binary_expression "param_3 + 0x2d0" (identifier "param_3") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";"))) (if_statement "if (lVar6 == 0) {\n                    \n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }" (if "if") (parenthesized_expression "(lVar6 == 0)" (( "(") (binary_expression "lVar6 == 0" (identifier "lVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");" (call_expression "FUN_00199900("../../gold/layout.h",0x35a,"symtab_section")" (identifier "FUN_00199900") (argument_list "("../../gold/layout.h",0x35a,"symtab_section")" (( "(") (string_literal ""../../gold/layout.h"" (" """) (string_content "../../gold/layout.h") (" """)) (, ",") (number_literal "0x35a") (, ",") (string_literal ""symtab_section"" (" """) (string_content "symtab_section") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;" (if "if") (parenthesized_expression "((*(byte *)(lVar6 + 0x20) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(lVar6 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x20) & 4)" (( "(") (binary_expression "*(byte *)(lVar6 + 0x20) & 4" (pointer_expression "*(byte *)(lVar6 + 0x20)" (* "*") (cast_expression "(byte *)(lVar6 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a876e;" (goto "goto") (statement_identifier "LAB_001a876e") (; ";"))) (expression_statement "iVar3 = (int)param_1[0x24];" (assignment_expression "iVar3 = (int)param_1[0x24]" (identifier "iVar3") (= "=") (cast_expression "(int)param_1[0x24]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x24]" (identifier "param_1") ([ "[") (number_literal "0x24") (] "]")))) (; ";")) (expression_statement "uVar16 = iVar3 * 0x18;" (assignment_expression "uVar16 = iVar3 * 0x18" (identifier "uVar16") (= "=") (binary_expression "iVar3 * 0x18" (identifier "iVar3") (* "*") (number_literal "0x18"))) (; ";")) (if_statement "if (uVar16 == 0) {\n    local_68 = (undefined4 *)0x0;\n  }\n  else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }" (if "if") (parenthesized_expression "(uVar16 == 0)" (( "(") (binary_expression "uVar16 == 0" (identifier "uVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_68 = (undefined4 *)0x0;\n  }" ({ "{") (expression_statement "local_68 = (undefined4 *)0x0;" (assignment_expression "local_68 = (undefined4 *)0x0" (identifier "local_68") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }" (else "else") (compound_statement "{\n    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);\n    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;\n    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));\n  }" ({ "{") (expression_statement "lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);" (assignment_expression "lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18)" (identifier "lVar6") (= "=") (binary_expression "(ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18)" (binary_expression "(ulong)*(uint *)((long)param_1 + 300)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)((long)param_1 + 300)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 300)" (( "(") (binary_expression "(long)param_1 + 300" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "300")) () ")")))) (+ "+") (pointer_expression "*(long *)(lVar6 + 0x18)" (* "*") (cast_expression "(long *)(lVar6 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x18)" (( "(") (binary_expression "lVar6 + 0x18" (identifier "lVar6") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (if_statement "if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))\n    goto LAB_001a86f1;" (if "if") (parenthesized_expression "((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))" (( "(") (binary_expression "(lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16))" (parenthesized_expression "(lVar6 < 0)" (( "(") (binary_expression "lVar6 < 0" (identifier "lVar6") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16))" (( "(") (binary_expression "*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)" (pointer_expression "*(long *)(param_4 + 0x10)" (* "*") (cast_expression "(long *)(param_4 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))) (< "<") (cast_expression "(long)(lVar6 + (ulong)uVar16)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(lVar6 + (ulong)uVar16)" (( "(") (binary_expression "lVar6 + (ulong)uVar16" (identifier "lVar6") (+ "+") (cast_expression "(ulong)uVar16" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar16"))) () ")")))) () ")"))) () ")")) (goto_statement "goto LAB_001a86f1;" (goto "goto") (statement_identifier "LAB_001a86f1") (; ";"))) (expression_statement "local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));" (assignment_expression "local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18))" (identifier "local_68") (= "=") (cast_expression "(undefined4 *)(lVar6 + *(long *)(param_4 + 0x18))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + *(long *)(param_4 + 0x18))" (( "(") (binary_expression "lVar6 + *(long *)(param_4 + 0x18)" (identifier "lVar6") (+ "+") (pointer_expression "*(long *)(param_4 + 0x18)" (* "*") (cast_expression "(long *)(param_4 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")"))))) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;" (assignment_expression "uVar10 = *(int *)((long)param_1 + 0x124) * 0x18" (identifier "uVar10") (= "=") (binary_expression "*(int *)((long)param_1 + 0x124) * 0x18" (pointer_expression "*(int *)((long)param_1 + 0x124)" (* "*") (cast_expression "(int *)((long)param_1 + 0x124)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x124)" (( "(") (binary_expression "(long)param_1 + 0x124" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x124")) () ")")))) (* "*") (number_literal "0x18"))) (; ";")) (expression_statement "uVar12 = (ulong)uVar10;" (assignment_expression "uVar12 = (ulong)uVar10" (identifier "uVar12") (= "=") (cast_expression "(ulong)uVar10" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar10"))) (; ";")) (if_statement "if (uVar10 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) {\n      return;\n    }\n    local_98 = (undefined4 *)0x0;\n  }" ({ "{") (expression_statement "lVar6 = *(long *)(param_3 + 0x2d8);" (assignment_expression "lVar6 = *(long *)(param_3 + 0x2d8)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(param_3 + 0x2d8)" (* "*") (cast_expression "(long *)(param_3 + 0x2d8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2d8)" (( "(") (binary_expression "param_3 + 0x2d8" (identifier "param_3") (+ "+") (number_literal "0x2d8")) () ")"))))) (; ";")) (expression_statement "local_58 = *(long *)(param_3 + 0x2e8);" (assignment_expression "local_58 = *(long *)(param_3 + 0x2e8)" (identifier "local_58") (= "=") (pointer_expression "*(long *)(param_3 + 0x2e8)" (* "*") (cast_expression "(long *)(param_3 + 0x2e8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2e8)" (( "(") (binary_expression "param_3 + 0x2e8" (identifier "param_3") (+ "+") (number_literal "0x2e8")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) {\n      return;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_98 = (undefined4 *)0x0;" (assignment_expression "local_98 = (undefined4 *)0x0" (identifier "local_98") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }" (else "else") (compound_statement "{\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;\n    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar3 == 0) goto LAB_001a8756;\n  }" ({ "{") (if_statement "if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;" (if "if") (parenthesized_expression "(*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12))" (( "(") (binary_expression "*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)" (pointer_expression "*(long *)(param_4 + 0x10)" (* "*") (cast_expression "(long *)(param_4 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x10)" (( "(") (binary_expression "param_4 + 0x10" (identifier "param_4") (+ "+") (number_literal "0x10")) () ")")))) (< "<") (cast_expression "(long)(*(uint *)(param_1 + 0x26) + uVar12)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(*(uint *)(param_1 + 0x26) + uVar12)" (( "(") (binary_expression "*(uint *)(param_1 + 0x26) + uVar12" (pointer_expression "*(uint *)(param_1 + 0x26)" (* "*") (cast_expression "(uint *)(param_1 + 0x26)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x26)" (( "(") (binary_expression "param_1 + 0x26" (identifier "param_1") (+ "+") (number_literal "0x26")) () ")")))) (+ "+") (identifier "uVar12")) () ")")))) () ")")) (goto_statement "goto LAB_001a86f1;" (goto "goto") (statement_identifier "LAB_001a86f1") (; ";"))) (expression_statement "local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));" (assignment_expression "local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" (identifier "local_98") (= "=") (cast_expression "(undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" (( "(") (binary_expression "(ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18)" (binary_expression "(ulong)*(uint *)(param_1 + 0x26)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(param_1 + 0x26)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x26)" (( "(") (binary_expression "param_1 + 0x26" (identifier "param_1") (+ "+") (number_literal "0x26")) () ")")))) (+ "+") (pointer_expression "*(long *)(param_4 + 0x18)" (* "*") (cast_expression "(long *)(param_4 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")"))))) () ")")))) (; ";")) (expression_statement "lVar6 = *(long *)(param_3 + 0x2d8);" (assignment_expression "lVar6 = *(long *)(param_3 + 0x2d8)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(param_3 + 0x2d8)" (* "*") (cast_expression "(long *)(param_3 + 0x2d8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2d8)" (( "(") (binary_expression "param_3 + 0x2d8" (identifier "param_3") (+ "+") (number_literal "0x2d8")) () ")"))))) (; ";")) (expression_statement "local_58 = *(long *)(param_3 + 0x2e8);" (assignment_expression "local_58 = *(long *)(param_3 + 0x2e8)" (identifier "local_58") (= "=") (pointer_expression "*(long *)(param_3 + 0x2e8)" (* "*") (cast_expression "(long *)(param_3 + 0x2e8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2e8)" (( "(") (binary_expression "param_3 + 0x2e8" (identifier "param_3") (+ "+") (number_literal "0x2e8")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_001a8756;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a8756;" (goto "goto") (statement_identifier "LAB_001a8756") (; ";"))) (} "}")))) (expression_statement "local_88 = param_3 + 0x130;" (assignment_expression "local_88 = param_3 + 0x130" (identifier "local_88") (= "=") (binary_expression "param_3 + 0x130" (identifier "param_3") (+ "+") (number_literal "0x130"))) (; ";")) (expression_statement "local_a0 = param_3 + 0xa0;" (assignment_expression "local_a0 = param_3 + 0xa0" (identifier "local_a0") (= "=") (binary_expression "param_3 + 0xa0" (identifier "param_3") (+ "+") (number_literal "0xa0"))) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14 = local_98;" (assignment_expression "puVar14 = local_98" (identifier "puVar14") (= "=") (identifier "local_98")) (; ";")) (expression_statement "puVar18 = local_68;" (assignment_expression "puVar18 = local_68" (identifier "puVar18") (= "=") (identifier "local_68")) (; ";")) (labeled_statement "LAB_001a8483:\n  do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));" (statement_identifier "LAB_001a8483") (: ":") (do_statement "do {\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  } while (uVar9 < *(uint *)(param_1 + 0x24));" (do "do") (compound_statement "{\n    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);\n    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }\n    puVar17 = puVar18 + 6;\n    uVar4 = FUN_00247a20(local_a0,puVar7[1]);\n    *puVar18 = uVar4;\n    *(undefined8 *)(puVar18 + 2) = *puVar7;\n    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(short *)((long)puVar18 + 6) = (short)uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }\n    uVar9 = uVar9 + 1;\n    puVar15 = puVar14;\n  }" ({ "{") (expression_statement "puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);" (assignment_expression "puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e])" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e])" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)uVar9 * 0x20 + param_1[0x2e])" (( "(") (binary_expression "(ulong)uVar9 * 0x20 + param_1[0x2e]" (binary_expression "(ulong)uVar9 * 0x20" (cast_expression "(ulong)uVar9" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar9")) (* "*") (number_literal "0x20")) (+ "+") (subscript_expression "param_1[0x2e]" (identifier "param_1") ([ "[") (number_literal "0x2e") (] "]"))) () ")")))) (; ";")) (expression_statement "uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;" (assignment_expression "uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff" (identifier "uVar8") (= "=") (binary_expression "*(uint *)((long)puVar7 + 0x14) & 0xfffffff" (pointer_expression "*(uint *)((long)puVar7 + 0x14)" (* "*") (cast_expression "(uint *)((long)puVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + 0x14)" (( "(") (binary_expression "(long)puVar7 + 0x14" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0xfffffff"))) (; ";")) (if_statement "if (uVar8 < 0xff00) {\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }\n    else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }" (if "if") (parenthesized_expression "(uVar8 < 0xff00)" (( "(") (binary_expression "uVar8 < 0xff00" (identifier "uVar8") (< "<") (number_literal "0xff00")) () ")")) (compound_statement "{\nLAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);\n      pcVar2 = *(code **)(*plVar13 + 0x58);\n      if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }\n      uVar8 = uVar5;\n      if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }\n    }" ({ "{") (labeled_statement "LAB_001a84aa:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);" (statement_identifier "LAB_001a84aa") (: ":") (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8)" (identifier "plVar13") (= "=") (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8)" (* "*") (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8)" (( "(") (binary_expression "*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8" (pointer_expression "*(long *)(param_1[0x1f] + 0x90)" (* "*") (cast_expression "(long *)(param_1[0x1f] + 0x90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x1f] + 0x90)" (( "(") (binary_expression "param_1[0x1f] + 0x90" (subscript_expression "param_1[0x1f]" (identifier "param_1") ([ "[") (number_literal "0x1f") (] "]")) (+ "+") (number_literal "0x90")) () ")")))) (+ "+") (binary_expression "(ulong)uVar8 * 8" (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (* "*") (number_literal "8"))) () ")"))))) (; ";"))) (expression_statement "pcVar2 = *(code **)(*plVar13 + 0x58);" (assignment_expression "pcVar2 = *(code **)(*plVar13 + 0x58)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(*plVar13 + 0x58)" (* "*") (cast_expression "(code **)(*plVar13 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar13 + 0x58)" (( "(") (binary_expression "*plVar13 + 0x58" (pointer_expression "*plVar13" (* "*") (identifier "plVar13")) (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (if_statement "if (pcVar2 == FUN_001a28d0) {\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar5 = (*pcVar2)();\n      }" (if "if") (parenthesized_expression "(pcVar2 == FUN_001a28d0)" (( "(") (binary_expression "pcVar2 == FUN_001a28d0" (identifier "pcVar2") (== "==") (identifier "FUN_001a28d0")) () ")")) (compound_statement "{\n        uVar5 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }" ({ "{") (expression_statement "uVar5 = *(uint *)((long)plVar13 + 0x7c);" (assignment_expression "uVar5 = *(uint *)((long)plVar13 + 0x7c)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)((long)plVar13 + 0x7c)" (* "*") (cast_expression "(uint *)((long)plVar13 + 0x7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar13 + 0x7c)" (( "(") (binary_expression "(long)plVar13 + 0x7c" (cast_expression "(long)plVar13" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar13")) (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (if_statement "if (uVar5 == 0xffffffff) {\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }" (if "if") (parenthesized_expression "(uVar5 == 0xffffffff)" (( "(") (binary_expression "uVar5 == 0xffffffff" (identifier "uVar5") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\nLAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");\n        }" ({ "{") (labeled_statement "LAB_001a86a9:\n                    \n          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");" (statement_identifier "LAB_001a86a9") (: ":") (expression_statement "FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx")" (identifier "FUN_00199900") (argument_list "("../../gold/output.h",0x1043,"do_out_shndx")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x1043") (, ",") (string_literal ""do_out_shndx"" (" """) (string_content "do_out_shndx") (" """)) () ")"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n        uVar5 = (*pcVar2)();\n      }" (else "else") (compound_statement "{\n        uVar5 = (*pcVar2)();\n      }" ({ "{") (expression_statement "uVar5 = (*pcVar2)();" (assignment_expression "uVar5 = (*pcVar2)()" (identifier "uVar5") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar8 = uVar5;" (assignment_expression "uVar8 = uVar5" (identifier "uVar8") (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (0xfeff < uVar5) {\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }" (if "if") (parenthesized_expression "(0xfeff < uVar5)" (( "(") (binary_expression "0xfeff < uVar5" (number_literal "0xfeff") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n        uVar8 = 0xffffffff;\n        local_40 = (int)param_1[0x25] + uVar9;\n        local_3c = uVar5;\n        FUN_001a7bd0(lVar6 + 0x38,&local_40);\n        if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }\n      }" ({ "{") (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" (identifier "uVar8") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_40 = (int)param_1[0x25] + uVar9;" (assignment_expression "local_40 = (int)param_1[0x25] + uVar9" (identifier "local_40") (= "=") (binary_expression "(int)param_1[0x25] + uVar9" (cast_expression "(int)param_1[0x25]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x25]" (identifier "param_1") ([ "[") (number_literal "0x25") (] "]"))) (+ "+") (identifier "uVar9"))) (; ";")) (expression_statement "local_3c = uVar5;" (assignment_expression "local_3c = uVar5" (identifier "local_3c") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "FUN_001a7bd0(lVar6 + 0x38,&local_40);" (call_expression "FUN_001a7bd0(lVar6 + 0x38,&local_40)" (identifier "FUN_001a7bd0") (argument_list "(lVar6 + 0x38,&local_40)" (( "(") (binary_expression "lVar6 + 0x38" (identifier "lVar6") (+ "+") (number_literal "0x38")) (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")"))) (; ";")) (if_statement "if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }" (if "if") (parenthesized_expression "(*(char *)((long)puVar7 + 0x1b) < '\0')" (( "(") (binary_expression "*(char *)((long)puVar7 + 0x1b) < '\0'" (pointer_expression "*(char *)((long)puVar7 + 0x1b)" (* "*") (cast_expression "(char *)((long)puVar7 + 0x1b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + 0x1b)" (( "(") (binary_expression "(long)puVar7 + 0x1b" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x1b")) () ")")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;\n          local_3c = uVar5;\n          FUN_001a7bd0(local_58 + 0x38,&local_40);\n        }" ({ "{") (expression_statement "local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;" (assignment_expression "local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff" (identifier "local_40") (= "=") (binary_expression "*(uint *)(puVar7 + 3) & 0x7fffffff" (pointer_expression "*(uint *)(puVar7 + 3)" (* "*") (cast_expression "(uint *)(puVar7 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 3)" (( "(") (binary_expression "puVar7 + 3" (identifier "puVar7") (+ "+") (number_literal "3")) () ")")))) (& "&") (number_literal "0x7fffffff"))) (; ";")) (expression_statement "local_3c = uVar5;" (assignment_expression "local_3c = uVar5" (identifier "local_3c") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "FUN_001a7bd0(local_58 + 0x38,&local_40);" (call_expression "FUN_001a7bd0(local_58 + 0x38,&local_40)" (identifier "FUN_001a7bd0") (argument_list "(local_58 + 0x38,&local_40)" (( "(") (binary_expression "local_58 + 0x38" (identifier "local_58") (+ "+") (number_literal "0x38")) (, ",") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }" (else "else") (if_statement "if (uVar8 == 0xffff) {\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }" (if "if") (parenthesized_expression "(uVar8 == 0xffff)" (( "(") (binary_expression "uVar8 == 0xffff" (identifier "uVar8") (== "==") (number_literal "0xffff")) () ")")) (compound_statement "{\n      lVar11 = param_1[8];\n      if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }\n      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);\n      goto LAB_001a84aa;\n    }" ({ "{") (expression_statement "lVar11 = param_1[8];" (assignment_expression "lVar11 = param_1[8]" (identifier "lVar11") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (if_statement "if (lVar11 == 0) {\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);\n        param_1[8] = lVar11;\n      }" ({ "{") (expression_statement "lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);" (assignment_expression "lVar11 = (**(code **)(*param_1 + 0xd8))(param_1)" (identifier "lVar11") (= "=") (call_expression "(**(code **)(*param_1 + 0xd8))(param_1)" (parenthesized_expression "(**(code **)(*param_1 + 0xd8))" (( "(") (pointer_expression "**(code **)(*param_1 + 0xd8)" (* "*") (pointer_expression "*(code **)(*param_1 + 0xd8)" (* "*") (cast_expression "(code **)(*param_1 + 0xd8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0xd8)" (( "(") (binary_expression "*param_1 + 0xd8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0xd8")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "param_1[8] = lVar11;" (assignment_expression "param_1[8] = lVar11" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "lVar11")) (; ";")) (} "}"))) (expression_statement "uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);" (assignment_expression "uVar8 = FUN_001c7c40(lVar11,param_1,uVar9)" (identifier "uVar8") (= "=") (call_expression "FUN_001c7c40(lVar11,param_1,uVar9)" (identifier "FUN_001c7c40") (argument_list "(lVar11,param_1,uVar9)" (( "(") (identifier "lVar11") (, ",") (identifier "param_1") (, ",") (identifier "uVar9") () ")")))) (; ";")) (goto_statement "goto LAB_001a84aa;" (goto "goto") (statement_identifier "LAB_001a84aa") (; ";")) (} "}"))))) (expression_statement "puVar17 = puVar18 + 6;" (assignment_expression "puVar17 = puVar18 + 6" (identifier "puVar17") (= "=") (binary_expression "puVar18 + 6" (identifier "puVar18") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "uVar4 = FUN_00247a20(local_a0,puVar7[1]);" (assignment_expression "uVar4 = FUN_00247a20(local_a0,puVar7[1])" (identifier "uVar4") (= "=") (call_expression "FUN_00247a20(local_a0,puVar7[1])" (identifier "FUN_00247a20") (argument_list "(local_a0,puVar7[1])" (( "(") (identifier "local_a0") (, ",") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (expression_statement "*puVar18 = uVar4;" (assignment_expression "*puVar18 = uVar4" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined8 *)(puVar18 + 2) = *puVar7;" (assignment_expression "*(undefined8 *)(puVar18 + 2) = *puVar7" (pointer_expression "*(undefined8 *)(puVar18 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar18 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 2)" (( "(") (binary_expression "puVar18 + 2" (identifier "puVar18") (+ "+") (number_literal "2")) () ")")))) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "*(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);" (assignment_expression "*(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2)" (pointer_expression "*(ulong *)(puVar18 + 4)" (* "*") (cast_expression "(ulong *)(puVar18 + 4)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 4)" (( "(") (binary_expression "puVar18 + 4" (identifier "puVar18") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "(ulong)*(uint *)(puVar7 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(puVar7 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 2)" (( "(") (binary_expression "puVar7 + 2" (identifier "puVar7") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "bVar1 = *(byte *)((long)puVar7 + 0x17);" (assignment_expression "bVar1 = *(byte *)((long)puVar7 + 0x17)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((long)puVar7 + 0x17)" (* "*") (cast_expression "(byte *)((long)puVar7 + 0x17)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + 0x17)" (( "(") (binary_expression "(long)puVar7 + 0x17" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x17")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)((long)puVar18 + 5) = 0;" (assignment_expression "*(undefined1 *)((long)puVar18 + 5) = 0" (pointer_expression "*(undefined1 *)((long)puVar18 + 5)" (* "*") (cast_expression "(undefined1 *)((long)puVar18 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar18 + 5)" (( "(") (binary_expression "(long)puVar18 + 5" (cast_expression "(long)puVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar18")) (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(short *)((long)puVar18 + 6) = (short)uVar8;" (assignment_expression "*(short *)((long)puVar18 + 6) = (short)uVar8" (pointer_expression "*(short *)((long)puVar18 + 6)" (* "*") (cast_expression "(short *)((long)puVar18 + 6)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar18 + 6)" (( "(") (binary_expression "(long)puVar18 + 6" (cast_expression "(long)puVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar18")) (+ "+") (number_literal "6")) () ")")))) (= "=") (cast_expression "(short)uVar8" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar8"))) (; ";")) (expression_statement "*(byte *)(puVar18 + 1) = bVar1 >> 4;" (assignment_expression "*(byte *)(puVar18 + 1) = bVar1 >> 4" (pointer_expression "*(byte *)(puVar18 + 1)" (* "*") (cast_expression "(byte *)(puVar18 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 1)" (( "(") (binary_expression "puVar18 + 1" (identifier "puVar18") (+ "+") (number_literal "1")) () ")")))) (= "=") (binary_expression "bVar1 >> 4" (identifier "bVar1") (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "puVar18 = puVar17;" (assignment_expression "puVar18 = puVar17" (identifier "puVar18") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }" (if "if") (parenthesized_expression "(*(char *)((long)puVar7 + 0x1b) < '\0')" (( "(") (binary_expression "*(char *)((long)puVar7 + 0x1b) < '\0'" (pointer_expression "*(char *)((long)puVar7 + 0x1b)" (* "*") (cast_expression "(char *)((long)puVar7 + 0x1b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + 0x1b)" (( "(") (binary_expression "(long)puVar7 + 0x1b" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x1b")) () ")")))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }\n      puVar15 = puVar14 + 6;\n      uVar9 = uVar9 + 1;\n      uVar4 = FUN_00247a20(local_88,puVar7[1]);\n      *puVar14 = uVar4;\n      *(undefined8 *)(puVar14 + 2) = *puVar7;\n      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);\n      bVar1 = *(byte *)((long)puVar7 + 0x17);\n      *(undefined1 *)((long)puVar14 + 5) = 0;\n      *(short *)((long)puVar14 + 6) = (short)uVar8;\n      *(byte *)(puVar14 + 1) = bVar1 >> 4;\n      puVar14 = puVar15;\n      if (*(uint *)(param_1 + 0x24) <= uVar9) break;\n      goto LAB_001a8483;\n    }" ({ "{") (if_statement "if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }" (if "if") (parenthesized_expression "((undefined4 *)((long)local_98 + uVar12) <= puVar14)" (( "(") (binary_expression "(undefined4 *)((long)local_98 + uVar12) <= puVar14" (cast_expression "(undefined4 *)((long)local_98 + uVar12)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_98 + uVar12)" (( "(") (binary_expression "(long)local_98 + uVar12" (cast_expression "(long)local_98" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_98")) (+ "+") (identifier "uVar12")) () ")"))) (<= "<=") (identifier "puVar14")) () ")")) (compound_statement "{\n                    \n        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");\n      }" ({ "{") (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate")" (identifier "FUN_00199900") (argument_list "("../../gold/incremental.cc",0xa53,"do_relocate")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0xa53") (, ",") (string_literal ""do_relocate"" (" """) (string_content "do_relocate") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar15 = puVar14 + 6;" (assignment_expression "puVar15 = puVar14 + 6" (identifier "puVar15") (= "=") (binary_expression "puVar14 + 6" (identifier "puVar14") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = FUN_00247a20(local_88,puVar7[1]);" (assignment_expression "uVar4 = FUN_00247a20(local_88,puVar7[1])" (identifier "uVar4") (= "=") (call_expression "FUN_00247a20(local_88,puVar7[1])" (identifier "FUN_00247a20") (argument_list "(local_88,puVar7[1])" (( "(") (identifier "local_88") (, ",") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (expression_statement "*puVar14 = uVar4;" (assignment_expression "*puVar14 = uVar4" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(undefined8 *)(puVar14 + 2) = *puVar7;" (assignment_expression "*(undefined8 *)(puVar14 + 2) = *puVar7" (pointer_expression "*(undefined8 *)(puVar14 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar14 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 2)" (( "(") (binary_expression "puVar14 + 2" (identifier "puVar14") (+ "+") (number_literal "2")) () ")")))) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "*(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);" (assignment_expression "*(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2)" (pointer_expression "*(ulong *)(puVar14 + 4)" (* "*") (cast_expression "(ulong *)(puVar14 + 4)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 4)" (( "(") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "(ulong)*(uint *)(puVar7 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(puVar7 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 2)" (( "(") (binary_expression "puVar7 + 2" (identifier "puVar7") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "bVar1 = *(byte *)((long)puVar7 + 0x17);" (assignment_expression "bVar1 = *(byte *)((long)puVar7 + 0x17)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((long)puVar7 + 0x17)" (* "*") (cast_expression "(byte *)((long)puVar7 + 0x17)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + 0x17)" (( "(") (binary_expression "(long)puVar7 + 0x17" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (number_literal "0x17")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)((long)puVar14 + 5) = 0;" (assignment_expression "*(undefined1 *)((long)puVar14 + 5) = 0" (pointer_expression "*(undefined1 *)((long)puVar14 + 5)" (* "*") (cast_expression "(undefined1 *)((long)puVar14 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar14 + 5)" (( "(") (binary_expression "(long)puVar14 + 5" (cast_expression "(long)puVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar14")) (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(short *)((long)puVar14 + 6) = (short)uVar8;" (assignment_expression "*(short *)((long)puVar14 + 6) = (short)uVar8" (pointer_expression "*(short *)((long)puVar14 + 6)" (* "*") (cast_expression "(short *)((long)puVar14 + 6)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar14 + 6)" (( "(") (binary_expression "(long)puVar14 + 6" (cast_expression "(long)puVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar14")) (+ "+") (number_literal "6")) () ")")))) (= "=") (cast_expression "(short)uVar8" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar8"))) (; ";")) (expression_statement "*(byte *)(puVar14 + 1) = bVar1 >> 4;" (assignment_expression "*(byte *)(puVar14 + 1) = bVar1 >> 4" (pointer_expression "*(byte *)(puVar14 + 1)" (* "*") (cast_expression "(byte *)(puVar14 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 1)" (( "(") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1")) () ")")))) (= "=") (binary_expression "bVar1 >> 4" (identifier "bVar1") (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "puVar14 = puVar15;" (assignment_expression "puVar14 = puVar15" (identifier "puVar14") (= "=") (identifier "puVar15")) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x24) <= uVar9) break;" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x24) <= uVar9)" (( "(") (binary_expression "*(uint *)(param_1 + 0x24) <= uVar9" (pointer_expression "*(uint *)(param_1 + 0x24)" (* "*") (cast_expression "(uint *)(param_1 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (<= "<=") (identifier "uVar9")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_001a8483;" (goto "goto") (statement_identifier "LAB_001a8483") (; ";")) (} "}"))) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar14;" (assignment_expression "puVar15 = puVar14" (identifier "puVar15") (= "=") (identifier "puVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 < *(uint *)(param_1 + 0x24))" (( "(") (binary_expression "uVar9 < *(uint *)(param_1 + 0x24)" (identifier "uVar9") (< "<") (pointer_expression "*(uint *)(param_1 + 0x24)" (* "*") (cast_expression "(uint *)(param_1 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (; ";"))) (if_statement "if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }" (if "if") (parenthesized_expression "((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16))" (( "(") (binary_expression "(uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)" (parenthesized_expression "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((long)puVar17 - (long)local_68 != (ulong)uVar16)" (( "(") (binary_expression "(long)puVar17 - (long)local_68 != (ulong)uVar16" (binary_expression "(long)puVar17 - (long)local_68" (cast_expression "(long)puVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar17")) (- "-") (cast_expression "(long)local_68" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_68"))) (!= "!=") (cast_expression "(ulong)uVar16" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar16"))) () ")"))) () ")")) (compound_statement "{\n                    \n    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");\n  }" ({ "{") (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate")" (identifier "FUN_00199900") (argument_list "("../../gold/incremental.cc",0xa62,"do_relocate")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0xa62") (, ",") (string_literal ""do_relocate"" (" """) (string_content "do_relocate") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }" (if "if") (parenthesized_expression "((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12))" (( "(") (binary_expression "(uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)" (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((long)puVar15 - (long)local_98 == uVar12)" (( "(") (binary_expression "(long)puVar15 - (long)local_98 == uVar12" (binary_expression "(long)puVar15 - (long)local_98" (cast_expression "(long)puVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar15")) (- "-") (cast_expression "(long)local_98" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_98"))) (== "==") (identifier "uVar12")) () ")"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_001a8756:\n                    \n  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");" (statement_identifier "LAB_001a8756") (: ":") (expression_statement "FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");" (call_expression "FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate")" (identifier "FUN_00199900") (argument_list "("../../gold/incremental.cc",0xa69,"do_relocate")" (( "(") (string_literal ""../../gold/incremental.cc"" (" """) (string_content "../../gold/incremental.cc") (" """)) (, ",") (number_literal "0xa69") (, ",") (string_literal ""do_relocate"" (" """) (string_content "do_relocate") (" """)) () ")"))) (; ";"))) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void do_relocate(Sized_relobj_incr<64,_false> * this, Symbol_table *
   param_1, Layout * layout, Output_file * of) */

void __thiscall
var_11::var_1<64,var_19>::do_relocate
          (var_1<64,var_19> *this,Symbol_table *param_1,Layout *layout,type_7 *of)

{
  byte var_5;
  type_1 *pOVar2;
  type_2 *var_16;
  type_3 var_17;
  type_3 var_23;
  int iVar6;
  type_4 *pOVar7;
  type_5 sVar8;
  type_6 extraout_var;
  type_7 *pOVar9;
  type_7 *this_1;
  type_8 pLVar10;
  size_t var_6;
  type_3 var_22;
  type_3 var_20;
  type_7 *__src;
  type_9 *var_15;
  var_1<64,var_19> *var_33;
  type_10 *var_14;
  type_10 *puVar16;
  type_3 var_18;
  type_10 *var_32;
  type_10 *var_8;
  type_11 *local_a0;
  type_10 *var_31;
  type_11 *local_88;
  type_10 *local_68;
  type_4 *local_58;
  var_2<var_3,var_24> local_40 [2];
  type_12 *var_25;
  type_13 var_9;
  
  if (this->incr_reloc_count_ == 0) {
    return;
  }
  if (layout->incremental_inputs_ == (type_14 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/incremental.cc",0xa01,"do_relocate");
  }
  pOVar2 = layout->incremental_inputs_->relocs_section_;
  var_5 = (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.
          field_0x20;
  if ((var_5 & 4) == 0) {
LAB_001a876e:
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/output.h",0xe3,"offset");
  }
  __src = (type_7 *)
          (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.
          offset_;
  if ((var_5 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/output.h",0xcf,"data_size");
  }
  var_6 = (pOVar2->super_Output_section_data_build).super_Output_section_data.super_Output_data.
         data_size_;
  this_1 = (type_7 *)(type_13)(var_5 & 2);
  var_33 = this;
  if (((long)__src < 0) ||
     (var_6 = (long)&__src->name_ + var_6, this_1 = of, of->file_size_ < (long)var_6)) {
LAB_001a86f1:
                    /* WARNING: Subroutine does not return */
    Output_file::var_7((type_7 *)var_33,(type_15)__src,var_6,this_1);
  }
  var_8 = (type_10 *)((long)&__src->name_ + (long)of->base_);
  var_9 = (type_13)(this->incr_reloc_output_index_ * 0x18);
  var_14 = var_8 + var_9;
  __src = (type_7 *)this->incr_relocs_;
  var_10(var_14,__src,(type_13)(this->incr_reloc_count_ * 0x18));
  if (this->incr_reloc_count_ != 0) {
    var_15 = (this->ibase_->section_map_).
              super__Vector_base<var_11::type_9*,var_12::allocator<var_11::type_9*>var_13>.
              _M_impl._M_start[*(type_3 *)(var_14 + 4)];
    if (var_15 != (type_9 *)0x0) {
      var_18 = 0;
      do {
        var_16 = (var_15->super_Output_data)._vptr_Output_data[0xb];
        if (var_16 == type_9::do_out_shndx) {
          var_17 = var_15->out_shndx_;
          if (var_17 == 0xffffffff) goto LAB_001a86a9;
        }
        else {
          var_17 = (*var_16)();
        }
        *(type_3 *)(var_14 + 4) = var_17;
        var_18 = var_18 + 1;
        if (this->incr_reloc_count_ <= var_18) goto LAB_001a8308;
        var_14 = var_8 + var_18 * 0x18 + var_9;
        var_15 = (this->ibase_->section_map_).
                  super__Vector_base<var_11::type_9*,var_12::allocator<var_11::type_9*>var_13>.
                  _M_impl._M_start[*(type_3 *)(var_14 + 4)];
      } while (var_15 != (type_9 *)0x0);
    }
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/incremental.cc",0xa12,"do_relocate");
  }
LAB_001a8308:
  var_15 = layout->symtab_section_;
  if (var_15 == (type_9 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/layout.h",0x35a,"symtab_section");
  }
  if (((var_15->super_Output_data).field_0x20 & 4) == 0) goto LAB_001a876e;
  var_17 = this->local_symbol_count_;
  var_6 = (size_t)var_17;
  var_18 = var_17 * 0x18;
  var_33 = (var_1<64,var_19> *)(type_13)var_18;
  if (var_18 == 0) {
    local_68 = (type_10 *)0x0;
  }
  else {
    pOVar9 = (type_7 *)
             ((type_13)this->local_symbol_offset_ + (var_15->super_Output_data).offset_);
    this_1 = pOVar9;
    if (((long)pOVar9 < 0) ||
       (this_1 = (type_7 *)((long)&pOVar9->name_ + (long)var_33), __src = of,
       of->file_size_ < (long)this_1)) goto LAB_001a86f1;
    local_68 = (type_10 *)((long)&pOVar9->name_ + (long)of->base_);
  }
  var_20 = this->output_local_dynsym_count_ * 0x18;
  var_9 = (type_13)var_20;
  if (var_20 == 0) {
    pOVar7 = layout->symtab_xindex_;
    local_58 = layout->dynsym_xindex_;
    if (var_17 == 0) {
      return;
    }
    var_31 = (type_10 *)0x0;
  }
  else {
    this_1 = (type_7 *)(type_13)this->local_dynsym_offset_;
    __src = of;
    if (of->file_size_ < (long)((long)&this_1->name_ + var_9)) goto LAB_001a86f1;
    var_31 = (type_10 *)((long)&this_1->name_ + (long)of->base_);
    pOVar7 = layout->symtab_xindex_;
    local_58 = layout->dynsym_xindex_;
    if (var_17 == 0) goto LAB_001a8756;
  }
  local_88 = &layout->dynpool_;
  local_a0 = &layout->sympool_;
  var_17 = 0;
  var_14 = var_31;
  var_8 = local_68;
LAB_001a8483:
  do {
    pLVar10 = (this->local_symbols_).
              super__Vector_base<var_11::var_1<64,var_19>::var_21,var_12::allocator<var_11::var_1<64,var_19>::var_21>var_13>
              ._M_impl._M_start + var_17;
    var_22 = *(type_3 *)&pLVar10->field_0x14 & 0xfffffff;
    if (var_22 < 0xff00) {
LAB_001a84aa:
      var_15 = (this->ibase_->section_map_).
                super__Vector_base<var_11::type_9*,var_12::allocator<var_11::type_9*>var_13>.
                _M_impl._M_start[var_22];
      var_16 = (var_15->super_Output_data)._vptr_Output_data[0xb];
      if (var_16 == type_9::do_out_shndx) {
        var_23 = var_15->out_shndx_;
        if (var_23 == 0xffffffff) {
LAB_001a86a9:
                    /* WARNING: Subroutine does not return */
          var_4("../../gold/output.h",0x1043,"do_out_shndx");
        }
      }
      else {
        var_23 = (*var_16)();
      }
      var_22 = var_23;
      if (0xfeff < var_23) {
        var_22 = 0xffffffff;
        local_40[0].first = this->local_symbol_index_ + var_17;
        local_40[0].second = var_23;
        std::
        vector<std::var_2<var_3,var_24>,var_12::allocator<std::var_2<var_3,var_24>var_13>var_13>
        ::emplace_back<std::var_2<var_3,var_24>var_13>(&pOVar7->entries_,local_40);
        if ((char)pLVar10->field_0x1b < '\0') {
          local_40[0].first = *(type_3 *)&pLVar10->field_0x18 & 0x7fffffff;
          local_40[0].second = var_23;
          std::
          vector<std::var_2<var_3,var_24>,var_12::allocator<std::var_2<var_3,var_24>var_13>var_13>
          ::emplace_back<std::var_2<var_3,var_24>var_13>(&local_58->entries_,local_40);
        }
      }
    }
    else if (var_22 == 0xffff) {
      var_25 = (this->super_Sized_relobj<64,var_19>).super_Relobj.super_Object.xindex_;
      if (var_25 == (type_12 *)0x0) {
        iVar6 = (*(this->super_Sized_relobj<64,var_19>).super_Relobj.super_Object._vptr_Object[0x1b]
                )(this);
        var_25 = (type_12 *)var_26(extraout_var,iVar6);
        (this->super_Sized_relobj<64,var_19>).super_Relobj.super_Object.xindex_ = var_25;
      }
      var_22 = type_12::var_27(var_25,(type_16 *)this,var_17);
      goto LAB_001a84aa;
    }
    var_32 = var_8 + 0x18;
    sVar8 = var_28<var_29>::var_30(local_a0,pLVar10->name);
    *(int *)var_8 = (int)sVar8;
    *(type_17 *)(var_8 + 8) = pLVar10->st_value;
    *(type_13 *)(var_8 + 0x10) = (type_13)pLVar10->st_size;
    var_5 = pLVar10->field_0x17;
    var_8[5] = '\0';
    *(short *)(var_8 + 6) = (short)var_22;
    var_8[4] = var_5 >> 4;
    var_8 = var_32;
    if ((char)pLVar10->field_0x1b < '\0') {
      if (var_31 + var_9 <= var_14) {
                    /* WARNING: Subroutine does not return */
        var_4("../../gold/incremental.cc",0xa53,"do_relocate");
      }
      puVar16 = var_14 + 0x18;
      var_17 = var_17 + 1;
      sVar8 = var_28<var_29>::var_30(local_88,pLVar10->name);
      *(int *)var_14 = (int)sVar8;
      *(type_17 *)(var_14 + 8) = pLVar10->st_value;
      *(type_13 *)(var_14 + 0x10) = (type_13)pLVar10->st_size;
      var_5 = pLVar10->field_0x17;
      var_14[5] = '\0';
      *(short *)(var_14 + 6) = (short)var_22;
      var_14[4] = var_5 >> 4;
      var_14 = puVar16;
      if (this->local_symbol_count_ <= var_17) break;
      goto LAB_001a8483;
    }
    var_17 = var_17 + 1;
    puVar16 = var_14;
  } while (var_17 < this->local_symbol_count_);
  if ((var_18 != 0) && ((var_1<64,var_19> *)(var_32 + -(long)local_68) != var_33)) {
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/incremental.cc",0xa62,"do_relocate");
  }
  if ((var_20 == 0) || ((long)puVar16 - (long)var_31 == var_9)) {
    return;
  }
LAB_001a8756:
                    /* WARNING: Subroutine does not return */
  var_4("../../gold/incremental.cc",0xa69,"do_relocate");
}


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

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

{
  byte bVar1;
  code *pcVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  long lVar6;
  undefined8 *puVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  long lVar11;
  long *plVar13;
  void *__dest;
  undefined4 *puVar14;
  undefined4 *puVar15;
  uint uVar16;
  undefined4 *puVar17;
  undefined4 *puVar18;
  long local_a0;
  undefined4 *local_98;
  long local_88;
  undefined4 *local_68;
  long local_58;
  uint local_40;
  uint local_3c;
  ulong uVar12;
  
  if (*(int *)((long)param_1 + 0x15c) == 0) {
    return;
  }
  if (*(long *)(param_3 + 0x378) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/incremental.cc",0xa01,"do_relocate");
  }
  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);
  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {
LAB_001a876e:
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/output.h",0xe3,"offset");
  }
  lVar11 = *(long *)(lVar6 + 0x18);
  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/output.h",0xcf,"data_size");
  }
  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {
LAB_001a86f1:
                    /* WARNING: Subroutine does not return */
    FUN_0019ff30();
  }
  lVar11 = lVar11 + *(long *)(param_4 + 0x18);
  uVar12 = (ulong)(uint)((int)param_1[0x2c] * 0x18);
  __dest = (void *)(lVar11 + uVar12);
  memcpy(__dest,(void *)param_1[0x2d],(ulong)(uint)(*(int *)((long)param_1 + 0x15c) * 0x18));
  if (*(int *)((long)param_1 + 0x15c) != 0) {
    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)*(uint *)((long)__dest + 4) * 8);
    if (plVar13 != (long *)0x0) {
      uVar16 = 0;
      do {
        if (*(code **)(*plVar13 + 0x58) == FUN_001a28d0) {
          iVar3 = *(int *)((long)plVar13 + 0x7c);
          if (iVar3 == -1) goto LAB_001a86a9;
        }
        else {
          iVar3 = (**(code **)(*plVar13 + 0x58))();
        }
        *(int *)((long)__dest + 4) = iVar3;
        uVar16 = uVar16 + 1;
        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_001a8308;
        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);
        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +
                            (ulong)*(uint *)((long)__dest + 4) * 8);
      } while (plVar13 != (long *)0x0);
    }
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/incremental.cc",0xa12,"do_relocate");
  }
LAB_001a8308:
  lVar6 = *(long *)(param_3 + 0x2d0);
  if (lVar6 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/layout.h",0x35a,"symtab_section");
  }
  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_001a876e;
  iVar3 = (int)param_1[0x24];
  uVar16 = iVar3 * 0x18;
  if (uVar16 == 0) {
    local_68 = (undefined4 *)0x0;
  }
  else {
    lVar6 = (ulong)*(uint *)((long)param_1 + 300) + *(long *)(lVar6 + 0x18);
    if ((lVar6 < 0) || (*(long *)(param_4 + 0x10) < (long)(lVar6 + (ulong)uVar16)))
    goto LAB_001a86f1;
    local_68 = (undefined4 *)(lVar6 + *(long *)(param_4 + 0x18));
  }
  uVar10 = *(int *)((long)param_1 + 0x124) * 0x18;
  uVar12 = (ulong)uVar10;
  if (uVar10 == 0) {
    lVar6 = *(long *)(param_3 + 0x2d8);
    local_58 = *(long *)(param_3 + 0x2e8);
    if (iVar3 == 0) {
      return;
    }
    local_98 = (undefined4 *)0x0;
  }
  else {
    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_001a86f1;
    local_98 = (undefined4 *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));
    lVar6 = *(long *)(param_3 + 0x2d8);
    local_58 = *(long *)(param_3 + 0x2e8);
    if (iVar3 == 0) goto LAB_001a8756;
  }
  local_88 = param_3 + 0x130;
  local_a0 = param_3 + 0xa0;
  uVar9 = 0;
  puVar14 = local_98;
  puVar18 = local_68;
LAB_001a8483:
  do {
    puVar7 = (undefined8 *)((ulong)uVar9 * 0x20 + param_1[0x2e]);
    uVar8 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;
    if (uVar8 < 0xff00) {
LAB_001a84aa:
      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar8 * 8);
      pcVar2 = *(code **)(*plVar13 + 0x58);
      if (pcVar2 == FUN_001a28d0) {
        uVar5 = *(uint *)((long)plVar13 + 0x7c);
        if (uVar5 == 0xffffffff) {
LAB_001a86a9:
                    /* WARNING: Subroutine does not return */
          FUN_00199900("../../gold/output.h",0x1043,"do_out_shndx");
        }
      }
      else {
        uVar5 = (*pcVar2)();
      }
      uVar8 = uVar5;
      if (0xfeff < uVar5) {
        uVar8 = 0xffffffff;
        local_40 = (int)param_1[0x25] + uVar9;
        local_3c = uVar5;
        FUN_001a7bd0(lVar6 + 0x38,&local_40);
        if (*(char *)((long)puVar7 + 0x1b) < '\0') {
          local_40 = *(uint *)(puVar7 + 3) & 0x7fffffff;
          local_3c = uVar5;
          FUN_001a7bd0(local_58 + 0x38,&local_40);
        }
      }
    }
    else if (uVar8 == 0xffff) {
      lVar11 = param_1[8];
      if (lVar11 == 0) {
        lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);
        param_1[8] = lVar11;
      }
      uVar8 = FUN_001c7c40(lVar11,param_1,uVar9);
      goto LAB_001a84aa;
    }
    puVar17 = puVar18 + 6;
    uVar4 = FUN_00247a20(local_a0,puVar7[1]);
    *puVar18 = uVar4;
    *(undefined8 *)(puVar18 + 2) = *puVar7;
    *(ulong *)(puVar18 + 4) = (ulong)*(uint *)(puVar7 + 2);
    bVar1 = *(byte *)((long)puVar7 + 0x17);
    *(undefined1 *)((long)puVar18 + 5) = 0;
    *(short *)((long)puVar18 + 6) = (short)uVar8;
    *(byte *)(puVar18 + 1) = bVar1 >> 4;
    puVar18 = puVar17;
    if (*(char *)((long)puVar7 + 0x1b) < '\0') {
      if ((undefined4 *)((long)local_98 + uVar12) <= puVar14) {
                    /* WARNING: Subroutine does not return */
        FUN_00199900("../../gold/incremental.cc",0xa53,"do_relocate");
      }
      puVar15 = puVar14 + 6;
      uVar9 = uVar9 + 1;
      uVar4 = FUN_00247a20(local_88,puVar7[1]);
      *puVar14 = uVar4;
      *(undefined8 *)(puVar14 + 2) = *puVar7;
      *(ulong *)(puVar14 + 4) = (ulong)*(uint *)(puVar7 + 2);
      bVar1 = *(byte *)((long)puVar7 + 0x17);
      *(undefined1 *)((long)puVar14 + 5) = 0;
      *(short *)((long)puVar14 + 6) = (short)uVar8;
      *(byte *)(puVar14 + 1) = bVar1 >> 4;
      puVar14 = puVar15;
      if (*(uint *)(param_1 + 0x24) <= uVar9) break;
      goto LAB_001a8483;
    }
    uVar9 = uVar9 + 1;
    puVar15 = puVar14;
  } while (uVar9 < *(uint *)(param_1 + 0x24));
  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {
                    /* WARNING: Subroutine does not return */
    FUN_00199900("../../gold/incremental.cc",0xa62,"do_relocate");
  }
  if ((uVar10 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {
    return;
  }
LAB_001a8756:
                    /* WARNING: Subroutine does not return */
  FUN_00199900("../../gold/incremental.cc",0xa69,"do_relocate");
}

