
/* 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,_true> * this, Symbol_table *
   param_1, Layout * layout, Output_file * of) */

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

{
  byte bVar1;
  Output_data_space *pOVar2;
  Output_section *pOVar3;
  _func_int_varargs *p_Var4;
  uint uVar5;
  int iVar6;
  Output_symtab_xindex *pOVar7;
  section_offset_type sVar8;
  ulong uVar9;
  undefined4 extraout_var;
  Output_file *pOVar10;
  Output_file *this_1;
  pointer pLVar11;
  size_t size;
  ushort uVar12;
  uint uVar13;
  uint uVar14;
  uchar *puVar15;
  Output_file *__src;
  Layout *this_01;
  Sized_relobj_incr<64,_true> *this_02;
  Layout *__dest;
  uint *puVar17;
  uint *puVar18;
  uint uVar19;
  uint *puVar20;
  uint *puVar21;
  Stringpool *local_a0;
  uint *local_98;
  Stringpool *local_88;
  uint *local_68;
  Output_symtab_xindex *local_58;
  pair<unsigned_int,_unsigned_int> local_40 [2];
  Xindex *this_00;
  ulong uVar16;
  
  if (this->incr_reloc_count_ == 0) {
    return;
  }
  if (layout->incremental_inputs_ == (Incremental_inputs *)0x0) {
LAB_00190e93:
                    /* 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_00190ef3:
                    /* 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_02 = this;
  if (((long)__src < 0) ||
     (size = (long)&__src->name_ + size, this_1 = of, of->file_size_ < (long)size)) {
LAB_00190e89:
                    /* WARNING: Subroutine does not return */
    Output_file::get_output_view((Output_file *)this_02,(off_t)__src,size,this_1);
  }
  puVar15 = (uchar *)((long)&__src->name_ + (long)of->base_);
  uVar16 = (ulong)(this->incr_reloc_output_index_ * 0x18);
  __dest = (Layout *)(puVar15 + uVar16);
  __src = (Output_file *)this->incr_relocs_;
  this_01 = __dest;
  memcpy(__dest,__src,(ulong)(this->incr_reloc_count_ * 0x18));
  if (this->incr_reloc_count_ != 0) {
    uVar19 = *(uint *)&__dest->field_0x4;
    this_01 = (Layout *)
              (this->ibase_->section_map_).
              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
              _M_impl._M_start
              [uVar19 >> 0x18 | (uVar19 & 0xff0000) >> 8 | (uVar19 & 0xff00) << 8 | uVar19 << 0x18];
    if (this_01 != (Layout *)0x0) {
      uVar19 = 0;
      do {
        if (*(code **)(*(long *)this_01 + 0x58) == Output_section::do_out_shndx) {
          uVar5 = *(uint *)((long)&(this_01->namepool_).strings_.
                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>
                                   ._M_impl._M_node._M_size + 4);
          if (uVar5 == 0xffffffff) goto LAB_00190e41;
        }
        else {
          uVar5 = (**(code **)(*(long *)this_01 + 0x58))();
        }
        uVar19 = uVar19 + 1;
        *(uint *)&__dest->field_0x4 =
             uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;
        if (this->incr_reloc_count_ <= uVar19) goto LAB_00190a88;
        __dest = (Layout *)(puVar15 + uVar19 * 0x18 + uVar16);
        uVar5 = *(uint *)&__dest->field_0x4;
        this_01 = (Layout *)
                  (this->ibase_->section_map_).
                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
                  _M_impl._M_start
                  [uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18];
      } while (this_01 != (Layout *)0x0);
    }
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/incremental.cc",0xa12,"do_relocate");
  }
LAB_00190a88:
  pOVar3 = layout->symtab_section_;
  if (pOVar3 == (Output_section *)0x0) {
    Layout::symtab_section(this_01);
    goto LAB_00190e93;
  }
  if (((pOVar3->super_Output_data).field_0x20 & 4) == 0) goto LAB_00190ef3;
  uVar5 = this->local_symbol_count_;
  size = (size_t)uVar5;
  uVar19 = uVar5 * 0x18;
  this_02 = (Sized_relobj_incr<64,_true> *)(ulong)uVar19;
  if (uVar19 == 0) {
    local_68 = (uint *)0x0;
  }
  else {
    pOVar10 = (Output_file *)
              ((ulong)this->local_symbol_offset_ + (pOVar3->super_Output_data).offset_);
    this_1 = pOVar10;
    if (((long)pOVar10 < 0) ||
       (this_1 = (Output_file *)((long)&pOVar10->name_ + (long)this_02), __src = of,
       of->file_size_ < (long)this_1)) goto LAB_00190e89;
    local_68 = (uint *)((long)&pOVar10->name_ + (long)of->base_);
  }
  uVar14 = this->output_local_dynsym_count_ * 0x18;
  uVar16 = (ulong)uVar14;
  if (uVar14 == 0) {
    pOVar7 = layout->symtab_xindex_;
    local_58 = layout->dynsym_xindex_;
    if (uVar5 == 0) {
      return;
    }
    local_98 = (uint *)0x0;
  }
  else {
    this_1 = (Output_file *)(ulong)this->local_dynsym_offset_;
    __src = of;
    if (of->file_size_ < (long)((long)&this_1->name_ + uVar16)) goto LAB_00190e89;
    local_98 = (uint *)((long)&this_1->name_ + (long)of->base_);
    pOVar7 = layout->symtab_xindex_;
    local_58 = layout->dynsym_xindex_;
    if (uVar5 == 0) goto LAB_00190edb;
  }
  local_88 = &layout->dynpool_;
  local_a0 = &layout->sympool_;
  uVar5 = 0;
  puVar17 = local_98;
  puVar21 = local_68;
LAB_00190c0f:
  do {
    pLVar11 = (this->local_symbols_).
              super__Vector_base<gold::Sized_relobj_incr<64,_true>::Local_symbol,_std::allocator<gold::Sized_relobj_incr<64,_true>::Local_symbol>_>
              ._M_impl._M_start + uVar5;
    uVar13 = *(uint *)&pLVar11->field_0x14 & 0xfffffff;
    if (uVar13 < 0xff00) {
LAB_00190c36:
      pOVar3 = (this->ibase_->section_map_).
               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
               _M_impl._M_start[uVar13];
      p_Var4 = (pOVar3->super_Output_data)._vptr_Output_data[0xb];
      if (p_Var4 == Output_section::do_out_shndx) {
        uVar13 = pOVar3->out_shndx_;
        if (uVar13 == 0xffffffff) {
LAB_00190e41:
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");
        }
      }
      else {
        uVar13 = (*p_Var4)();
      }
      if (uVar13 < 0xff00) goto LAB_00190bac;
      uVar12 = 0xffff;
      local_40[0].first = this->local_symbol_index_ + uVar5;
      local_40[0].second = uVar13;
      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)pLVar11->field_0x1b < '\0') {
        local_40[0].first = *(uint *)&pLVar11->field_0x18 & 0x7fffffff;
        local_40[0].second = uVar13;
        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 (uVar13 == 0xffff) {
        this_00 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_;
        if (this_00 == (Xindex *)0x0) {
          iVar6 = (*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object
                    [0x1b])(this);
          this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);
          (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_ = this_00;
        }
        uVar13 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar5);
        goto LAB_00190c36;
      }
LAB_00190bac:
      uVar12 = (ushort)uVar13 << 8 | (ushort)uVar13 >> 8;
    }
    puVar20 = puVar21 + 6;
    sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar11->name);
    uVar13 = (uint)sVar8;
    *puVar21 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;
    uVar9 = pLVar11->st_value;
    *(ulong *)(puVar21 + 2) =
         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |
         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |
         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;
    uVar9 = (ulong)pLVar11->st_size;
    *(ulong *)(puVar21 + 4) =
         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |
         uVar9 << 0x38;
    bVar1 = pLVar11->field_0x17;
    *(undefined1 *)((long)puVar21 + 5) = 0;
    *(ushort *)((long)puVar21 + 6) = uVar12;
    *(byte *)(puVar21 + 1) = bVar1 >> 4;
    puVar21 = puVar20;
    if (-1 < (char)pLVar11->field_0x1b) {
      uVar5 = uVar5 + 1;
      puVar18 = puVar17;
      if (this->local_symbol_count_ <= uVar5) break;
      goto LAB_00190c0f;
    }
    if ((uint *)((long)local_98 + uVar16) <= puVar17) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");
    }
    puVar18 = puVar17 + 6;
    uVar5 = uVar5 + 1;
    sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar11->name);
    uVar13 = (uint)sVar8;
    *puVar17 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;
    uVar9 = pLVar11->st_value;
    *(ulong *)(puVar17 + 2) =
         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |
         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |
         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;
    uVar9 = (ulong)pLVar11->st_size;
    *(ulong *)(puVar17 + 4) =
         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |
         uVar9 << 0x38;
    bVar1 = pLVar11->field_0x17;
    *(undefined1 *)((long)puVar17 + 5) = 0;
    *(ushort *)((long)puVar17 + 6) = uVar12;
    *(byte *)(puVar17 + 1) = bVar1 >> 4;
    puVar17 = puVar18;
  } while (uVar5 < this->local_symbol_count_);
  if ((uVar19 != 0) && ((Sized_relobj_incr<64,_true> *)((long)puVar20 - (long)local_68) != this_02))
  {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/incremental.cc",0xa62,"do_relocate");
  }
  if ((uVar14 == 0) || ((long)puVar18 - (long)local_98 == uVar16)) {
    return;
  }
LAB_00190edb:
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/incremental.cc",0xa69,"do_relocate");
}



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

{
  byte bVar1;
  int iVar2;
  code *pcVar3;
  uint uVar4;
  ulong uVar5;
  long lVar6;
  ulong *puVar7;
  ushort uVar8;
  uint uVar9;
  uint uVar10;
  long lVar11;
  ulong uVar12;
  long *plVar13;
  void *__dest;
  uint *puVar14;
  uint *puVar15;
  uint uVar16;
  uint *puVar17;
  uint *puVar18;
  long local_a0;
  uint *local_98;
  long local_88;
  uint *local_68;
  long local_58;
  uint local_40;
  uint local_3c;
  
  if (*(int *)((long)param_1 + 0x15c) == 0) {
    return;
  }
  if (*(long *)(param_3 + 0x378) == 0) {
LAB_00190e93:
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");
  }
  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);
  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {
LAB_00190ef3:
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/output.h",0xe3,"offset");
  }
  lVar11 = *(long *)(lVar6 + 0x18);
  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/output.h",0xcf,"data_size");
  }
  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {
LAB_00190e89:
                    /* WARNING: Subroutine does not return */
    FUN_00182e30();
  }
  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) {
    uVar16 = *(uint *)((long)__dest + 4);
    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +
                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                               uVar16 << 0x18) * 8);
    if (plVar13 != (long *)0x0) {
      uVar16 = 0;
      do {
        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {
          uVar4 = *(uint *)((long)plVar13 + 0x7c);
          if (uVar4 == 0xffffffff) goto LAB_00190e41;
        }
        else {
          uVar4 = (**(code **)(*plVar13 + 0x58))();
        }
        uVar16 = uVar16 + 1;
        *(uint *)((long)__dest + 4) =
             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;
        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;
        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);
        uVar4 = *(uint *)((long)__dest + 4);
        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +
                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8
                                   | uVar4 << 0x18) * 8);
      } while (plVar13 != (long *)0x0);
    }
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");
  }
LAB_00190a88:
  lVar6 = *(long *)(param_3 + 0x2d0);
  if (lVar6 == 0) {
    FUN_00182e10();
    goto LAB_00190e93;
  }
  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;
  iVar2 = (int)param_1[0x24];
  uVar16 = iVar2 * 0x18;
  if (uVar16 == 0) {
    local_68 = (uint *)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_00190e89;
    local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));
  }
  uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;
  uVar12 = (ulong)uVar4;
  if (uVar4 == 0) {
    lVar6 = *(long *)(param_3 + 0x2d8);
    local_58 = *(long *)(param_3 + 0x2e8);
    if (iVar2 == 0) {
      return;
    }
    local_98 = (uint *)0x0;
  }
  else {
    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;
    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));
    lVar6 = *(long *)(param_3 + 0x2d8);
    local_58 = *(long *)(param_3 + 0x2e8);
    if (iVar2 == 0) goto LAB_00190edb;
  }
  local_88 = param_3 + 0x130;
  local_a0 = param_3 + 0xa0;
  uVar10 = 0;
  puVar14 = local_98;
  puVar18 = local_68;
LAB_00190c0f:
  do {
    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);
    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;
    if (uVar9 < 0xff00) {
LAB_00190c36:
      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);
      pcVar3 = *(code **)(*plVar13 + 0x58);
      if (pcVar3 == FUN_001869e0) {
        uVar9 = *(uint *)((long)plVar13 + 0x7c);
        if (uVar9 == 0xffffffff) {
LAB_00190e41:
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");
        }
      }
      else {
        uVar9 = (*pcVar3)();
      }
      if (uVar9 < 0xff00) goto LAB_00190bac;
      uVar8 = 0xffff;
      local_40 = (int)param_1[0x25] + uVar10;
      local_3c = uVar9;
      FUN_0018f7c0(lVar6 + 0x38,&local_40);
      if (*(char *)((long)puVar7 + 0x1b) < '\0') {
        local_40 = (uint)puVar7[3] & 0x7fffffff;
        local_3c = uVar9;
        FUN_0018f7c0(local_58 + 0x38,&local_40);
      }
    }
    else {
      if (uVar9 == 0xffff) {
        lVar11 = param_1[8];
        if (lVar11 == 0) {
          lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);
          param_1[8] = lVar11;
        }
        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);
        goto LAB_00190c36;
      }
LAB_00190bac:
      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;
    }
    puVar17 = puVar18 + 6;
    uVar9 = FUN_0026df00(local_a0,puVar7[1]);
    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
    uVar5 = *puVar7;
    *(ulong *)(puVar18 + 2) =
         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |
         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |
         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;
    uVar5 = (ulong)(uint)puVar7[2];
    *(ulong *)(puVar18 + 4) =
         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |
         uVar5 << 0x38;
    bVar1 = *(byte *)((long)puVar7 + 0x17);
    *(undefined1 *)((long)puVar18 + 5) = 0;
    *(ushort *)((long)puVar18 + 6) = uVar8;
    *(byte *)(puVar18 + 1) = bVar1 >> 4;
    puVar18 = puVar17;
    if (-1 < *(char *)((long)puVar7 + 0x1b)) {
      uVar10 = uVar10 + 1;
      puVar15 = puVar14;
      if (*(uint *)(param_1 + 0x24) <= uVar10) break;
      goto LAB_00190c0f;
    }
    if ((uint *)((long)local_98 + uVar12) <= puVar14) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");
    }
    puVar15 = puVar14 + 6;
    uVar10 = uVar10 + 1;
    uVar9 = FUN_0026df00(local_88,puVar7[1]);
    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
    uVar5 = *puVar7;
    *(ulong *)(puVar14 + 2) =
         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |
         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |
         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;
    uVar5 = (ulong)(uint)puVar7[2];
    *(ulong *)(puVar14 + 4) =
         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |
         uVar5 << 0x38;
    bVar1 = *(byte *)((long)puVar7 + 0x17);
    *(undefined1 *)((long)puVar14 + 5) = 0;
    *(ushort *)((long)puVar14 + 6) = uVar8;
    *(byte *)(puVar14 + 1) = bVar1 >> 4;
    puVar14 = puVar15;
  } while (uVar10 < *(uint *)(param_1 + 0x24));
  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");
  }
  if ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {
    return;
  }
LAB_00190edb:
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");
}


MOV EAX,dword ptr [RDI + 0x15c]
TEST EAX,EAX
JZ 0x00190df0
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 0x00190e93
MOV RDX,qword ptr [RDX + 0x68]
MOVZX ECX,byte ptr [RDX + 0x20]
TEST CL,0x4
JZ 0x00190ef3
AND ECX,0x2
MOV RSI,qword ptr [RDX + 0x18]
JZ 0x00190eab
MOV RDX,qword ptr [RDX + 0x10]
TEST RSI,RSI
JS 0x00190e89
MOV RCX,qword ptr [RSP + 0x8]
ADD RDX,RSI
CMP qword ptr [RCX + 0x10],RDX
JL 0x00190e89
MOV EDX,dword ptr [RDI + 0x160]
MOV RCX,qword ptr [RSP + 0x8]
LEA R13D,[RDX + RDX*0x2]
ADD RSI,qword ptr [RCX + 0x18]
LEA EDX,[RAX + RAX*0x2]
SHL R13D,0x3
MOV RBX,RSI
SHL EDX,0x3
LEA R12,[RSI + R13*0x1]
MOV RSI,qword ptr [RDI + 0x168]
MOV RDI,R12
CALL 0x00147aa0
MOV ECX,dword ptr [R14 + 0x15c]
TEST ECX,ECX
JZ 0x00190a88
MOV RDX,qword ptr [R14 + 0xf8]
MOV EAX,dword ptr [R12 + 0x4]
MOV RDX,qword ptr [RDX + 0x90]
BSWAP EAX
MOV EAX,EAX
MOV RDI,qword ptr [RDX + RAX*0x8]
TEST RDI,RDI
JZ 0x00190e59
XOR R15D,R15D
LEA RBP,[0x1869e0]
JMP 0x00190a72
MOV EAX,dword ptr [RDI + 0x7c]
CMP EAX,-0x1
JZ 0x00190e41
BSWAP EAX
ADD R15D,0x1
MOV dword ptr [R12 + 0x4],EAX
CMP dword ptr [R14 + 0x15c],R15D
JBE 0x00190a88
LEA R12D,[R15 + R15*0x2]
MOV RDX,qword ptr [R14 + 0xf8]
SHL R12D,0x3
ADD R12,R13
MOV RDX,qword ptr [RDX + 0x90]
ADD R12,RBX
MOV EAX,dword ptr [R12 + 0x4]
BSWAP EAX
MOV EAX,EAX
MOV RDI,qword ptr [RDX + RAX*0x8]
TEST RDI,RDI
JZ 0x00190e59
MOV RAX,qword ptr [RDI]
MOV RAX,qword ptr [RAX + 0x58]
CMP RAX,RBP
JZ 0x00190a20
CALL RAX
JMP 0x00190a2c
MOV RAX,qword ptr [RSP + 0x20]
MOV RAX,qword ptr [RAX + 0x2d0]
TEST RAX,RAX
JZ 0x00190e8e
TEST byte ptr [RAX + 0x20],0x4
JZ 0x00190ef3
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 0x00190c80
MOV ECX,dword ptr [R14 + 0x12c]
ADD RCX,qword ptr [RAX + 0x18]
MOV RAX,RCX
JS 0x00190e89
MOV RSI,qword ptr [RSP + 0x8]
LEA RCX,[RCX + RDI*0x1]
CMP RCX,qword ptr [RSI + 0x10]
JG 0x00190e89
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 0x00190df8
MOV ECX,dword ptr [R14 + 0x130]
LEA RAX,[RCX + RSI*0x1]
MOV RSI,qword ptr [RSP + 0x8]
CMP RAX,qword ptr [RSI + 0x10]
JG 0x00190e89
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 0x00190edb
LEA RCX,[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],RCX
MOV qword ptr [RSP + 0x38],RAX
JMP 0x00190c0f
CMP EBX,0xffff
JZ 0x00190d40
ROL BX,0x8
MOV RSI,qword ptr [R13 + 0x8]
MOV RDI,qword ptr [RSP + 0x8]
ADD R15,0x18
CALL 0x0026df00
BSWAP EAX
MOV dword ptr [R15 + -0x18],EAX
MOV RAX,qword ptr [R13]
BSWAP RAX
MOV qword ptr [R15 + -0x10],RAX
MOV EAX,dword ptr [R13 + 0x10]
BSWAP RAX
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 0x00190c90
ADD EBP,0x1
CMP dword ptr [R14 + 0x120],EBP
JBE 0x00190cfd
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 0x00190ba0
MOV RDX,qword ptr [R14 + 0xf8]
MOV EAX,EAX
LEA RSI,[0x1869e0]
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 0x00190dc8
MOV EAX,dword ptr [RDI + 0x7c]
CMP EAX,-0x1
JZ 0x00190e41
CMP EAX,0xfeff
JA 0x00190d60
MOV EBX,EAX
JMP 0x00190bac
MOV qword ptr [RSP + 0x40],0x0
JMP 0x00190af9
MOV RAX,qword ptr [RSP + 0x10]
ADD RAX,qword ptr [RSP + 0x18]
CMP R12,RAX
JNC 0x00190e71
MOV RSI,qword ptr [R13 + 0x8]
MOV RDI,qword ptr [RSP + 0x20]
ADD R12,0x18
ADD EBP,0x1
CALL 0x0026df00
BSWAP EAX
MOV dword ptr [R12 + -0x18],EAX
MOV RAX,qword ptr [R13]
BSWAP RAX
MOV qword ptr [R12 + -0x10],RAX
MOV EAX,dword ptr [R13 + 0x10]
BSWAP RAX
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 0x00190c0f
MOV EDX,dword ptr [RSP + 0x48]
TEST EDX,EDX
JZ 0x00190d18
MOV R8,R15
SUB R8,qword ptr [RSP + 0x40]
CMP R8,qword ptr [RSP + 0x58]
JNZ 0x00190ec3
MOV EAX,dword ptr [RSP + 0x4c]
TEST EAX,EAX
JZ 0x00190d30
SUB R12,qword ptr [RSP + 0x10]
CMP R12,qword ptr [RSP + 0x18]
JNZ 0x00190edb
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 0x00190dd0
MOV EDX,EBP
MOV RSI,R14
CALL 0x001bd230
JMP 0x00190c36
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 0x0018f7c0
CMP byte ptr [R13 + 0x1b],0x0
MOV EAX,dword ptr [RSP + 0x2c]
JNS 0x00190bb0
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 0x0018f7c0
JMP 0x00190bb0
CALL RAX
JMP 0x00190c6d
MOV RAX,qword ptr [R14]
MOV RDI,R14
CALL qword ptr [RAX + 0xd8]
MOV RDI,RAX
MOV qword ptr [R14 + 0x40],RAX
JMP 0x00190d4d
RET
MOV RAX,qword ptr [RSP + 0x20]
LEA RCX,[RAX + 0xa0]
LEA RSI,[RAX + 0x130]
MOV qword ptr [RSP + 0x8],RCX
MOV RCX,RAX
MOV RAX,qword ptr [RAX + 0x2d8]
MOV RCX,qword ptr [RCX + 0x2e8]
MOV qword ptr [RSP + 0x20],RSI
MOV qword ptr [RSP + 0x50],RCX
TEST EDX,EDX
JZ 0x00190d30
MOV qword ptr [RSP + 0x10],0x0
JMP 0x00190b76
LEA RDX,[0x375440]
MOV ESI,0x1043
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x373bd0]
MOV ESI,0xa12
LEA RDI,[0x373468]
CALL 0x0017c650
LEA RDX,[0x373bd0]
MOV ESI,0xa53
LEA RDI,[0x373468]
CALL 0x0017c650
CALL 0x00182e30
CALL 0x00182e10
LEA RDX,[0x373bd0]
MOV ESI,0xa01
LEA RDI,[0x373468]
CALL 0x0017c650
LEA RDX,[0x375338]
MOV ESI,0xcf
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x373bd0]
MOV ESI,0xa62
LEA RDI,[0x373468]
CALL 0x0017c650
LEA RDX,[0x373bd0]
MOV ESI,0xa69
LEA RDI,[0x373468]
CALL 0x0017c650
LEA RDX,[0x375342]
MOV ESI,0xe3
LEA RDI,[0x373454]
CALL 0x0017c650
(translation_unit "void FUN_00190930(long *param_1,undefined8 param_2,long param_3,long param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  code *pcVar3;\n  uint uVar4;\n  ulong uVar5;\n  long lVar6;\n  ulong *puVar7;\n  ushort uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  ulong uVar12;\n  long *plVar13;\n  void *__dest;\n  uint *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint *puVar18;\n  long local_a0;\n  uint *local_98;\n  long local_88;\n  uint *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\nLAB_00190e93:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_00190ef3:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../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_0017c650("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_00190e89:\n                    /* WARNING: Subroutine does not return */\n    FUN_00182e30();\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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_00190a88:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n    FUN_00182e10();\n    goto LAB_00190e93;\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;\n  iVar2 = (int)param_1[0x24];\n  uVar16 = iVar2 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (uint *)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_00190e89;\n    local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar4;\n  if (uVar4 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar10 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_00190c0f:\n  do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_00190edb:\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");\n}\n\n" (function_definition "void FUN_00190930(long *param_1,undefined8 param_2,long param_3,long param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  code *pcVar3;\n  uint uVar4;\n  ulong uVar5;\n  long lVar6;\n  ulong *puVar7;\n  ushort uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  ulong uVar12;\n  long *plVar13;\n  void *__dest;\n  uint *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint *puVar18;\n  long local_a0;\n  uint *local_98;\n  long local_88;\n  uint *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\nLAB_00190e93:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_00190ef3:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../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_0017c650("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_00190e89:\n                    /* WARNING: Subroutine does not return */\n    FUN_00182e30();\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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_00190a88:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n    FUN_00182e10();\n    goto LAB_00190e93;\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;\n  iVar2 = (int)param_1[0x24];\n  uVar16 = iVar2 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (uint *)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_00190e89;\n    local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar4;\n  if (uVar4 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar10 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_00190c0f:\n  do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_00190edb:\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");\n}" primitive_type (function_declarator "FUN_00190930(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  int iVar2;\n  code *pcVar3;\n  uint uVar4;\n  ulong uVar5;\n  long lVar6;\n  ulong *puVar7;\n  ushort uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  ulong uVar12;\n  long *plVar13;\n  void *__dest;\n  uint *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint *puVar18;\n  long local_a0;\n  uint *local_98;\n  long local_88;\n  uint *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\nLAB_00190e93:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_00190ef3:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../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_0017c650("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_00190e89:\n                    /* WARNING: Subroutine does not return */\n    FUN_00182e30();\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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_00190a88:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n    FUN_00182e10();\n    goto LAB_00190e93;\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;\n  iVar2 = (int)param_1[0x24];\n  uVar16 = iVar2 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (uint *)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_00190e89;\n    local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar4;\n  if (uVar4 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar10 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_00190c0f:\n  do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_00190edb:\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "ushort 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 "ulong uVar12;" type_identifier identifier ;) (declaration "long *plVar13;" (sized_type_specifier "long" long) (pointer_declarator "*plVar13" * identifier) ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "long local_a0;" (sized_type_specifier "long" long) identifier ;) (declaration "uint *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "uint *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 ;) (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) {\nLAB_00190e93:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../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 "{\nLAB_00190e93:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");\n  }" { (labeled_statement "LAB_00190e93:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");" (call_expression "FUN_0017c650("../../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_00190ef3:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../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_00190ef3:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/output.h",0xe3,"offset");\n  }" { (labeled_statement "LAB_00190ef3:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/output.h",0xe3,"offset");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_0017c650("../../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_0017c650("../../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_0017c650("../../gold/output.h",0xcf,"data_size");\n  }" { comment (expression_statement "FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0017c650("../../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_00190e89:\n                    /* WARNING: Subroutine does not return */\n    FUN_00182e30();\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_00190e89:\n                    /* WARNING: Subroutine does not return */\n    FUN_00182e30();\n  }" { (labeled_statement "LAB_00190e89:\n                    /* WARNING: Subroutine does not return */\n    FUN_00182e30();" statement_identifier : comment (expression_statement "FUN_00182e30();" (call_expression "FUN_00182e30()" 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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");\n  }" { (expression_statement "uVar16 = *(uint *)((long)__dest + 4);" (assignment_expression "uVar16 = *(uint *)((long)__dest + 4)" identifier = (pointer_expression "*(uint *)((long)__dest + 4)" * (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) ))))) ;) (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8)" identifier = (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8)" * (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8)" ( (binary_expression "*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 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)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8" (call_expression "(ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18)" ( (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal)) ))) * number_literal)) ))))) ;) (if_statement "if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 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_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 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_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);" do (compound_statement "{\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      }" { (if_statement "if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }" if (parenthesized_expression "(*(code **)(*plVar13 + 0x58) == FUN_001869e0)" ( (binary_expression "*(code **)(*plVar13 + 0x58) == FUN_001869e0" (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          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }" { (expression_statement "uVar4 = *(uint *)((long)plVar13 + 0x7c);" (assignment_expression "uVar4 = *(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 (uVar4 == 0xffffffff) goto LAB_00190e41;" if (parenthesized_expression "(uVar4 == 0xffffffff)" ( (binary_expression "uVar4 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00190e41;" goto statement_identifier ;)) }) (else_clause "else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }" else (compound_statement "{\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }" { (expression_statement "uVar4 = (**(code **)(*plVar13 + 0x58))();" (assignment_expression "uVar4 = (**(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 "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "*(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (pointer_expression "*(uint *)((long)__dest + 4)" * (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) )))) = (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;" 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_00190a88;" 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 "uVar4 = *(uint *)((long)__dest + 4);" (assignment_expression "uVar4 = *(uint *)((long)__dest + 4)" identifier = (pointer_expression "*(uint *)((long)__dest + 4)" * (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) ))))) ;) (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8)" identifier = (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8)" * (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8)" ( (binary_expression "*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 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)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8" (call_expression "(ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18)" ( (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" 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_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");" (call_expression "FUN_0017c650("../../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_00190a88:\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    FUN_00182e10();\n    goto LAB_00190e93;\n  }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00182e10();\n    goto LAB_00190e93;\n  }" { (expression_statement "FUN_00182e10();" (call_expression "FUN_00182e10()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00190e93;" goto statement_identifier ;) })) (if_statement "if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;" 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_00190ef3;" goto statement_identifier ;)) (expression_statement "iVar2 = (int)param_1[0x24];" (assignment_expression "iVar2 = (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 = iVar2 * 0x18;" (assignment_expression "uVar16 = iVar2 * 0x18" identifier = (binary_expression "iVar2 * 0x18" identifier * number_literal)) ;) (if_statement "if (uVar16 == 0) {\n    local_68 = (uint *)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_00190e89;\n    local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));\n  }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    local_68 = (uint *)0x0;\n  }" { (expression_statement "local_68 = (uint *)0x0;" (assignment_expression "local_68 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" 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_00190e89;\n    local_68 = (uint *)(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_00190e89;\n    local_68 = (uint *)(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_00190e89;" 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_00190e89;" goto statement_identifier ;)) (expression_statement "local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));" (assignment_expression "local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18))" identifier = (cast_expression "(uint *)(lVar6 + *(long *)(param_4 + 0x18))" ( (type_descriptor "uint *" 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 "uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;" (assignment_expression "uVar4 = *(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)uVar4;" (assignment_expression "uVar12 = (ulong)uVar4" identifier = (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar4 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)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 (iVar2 == 0) {\n      return;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "local_98 = (uint *)0x0;" (assignment_expression "local_98 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }" else (compound_statement "{\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }" { (if_statement "if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;" 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_00190e89;" goto statement_identifier ;)) (expression_statement "local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));" (assignment_expression "local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" identifier = (cast_expression "(uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" ( (type_descriptor "uint *" 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 (iVar2 == 0) goto LAB_00190edb;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00190edb;" 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 "uVar10 = 0;" (assignment_expression "uVar10 = 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_00190c0f:\n  do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));" statement_identifier : (do_statement "do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));" do (compound_statement "{\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  }" { (expression_statement "puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);" (assignment_expression "puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e])" identifier = (cast_expression "(ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e])" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)uVar10 * 0x20 + param_1[0x2e])" ( (binary_expression "(ulong)uVar10 * 0x20 + param_1[0x2e]" (binary_expression "(ulong)uVar10 * 0x20" (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) + (subscript_expression "param_1[0x2e]" identifier [ number_literal ])) )))) ;) (expression_statement "uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;" (assignment_expression "uVar9 = *(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 (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }" if (parenthesized_expression "(uVar9 < 0xff00)" ( (binary_expression "uVar9 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }" { (labeled_statement "LAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);" statement_identifier : (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8)" identifier = (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8)" * (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8)" ( (binary_expression "*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 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)uVar9 * 8" (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;)) (expression_statement "pcVar3 = *(code **)(*plVar13 + 0x58);" (assignment_expression "pcVar3 = *(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 (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }" if (parenthesized_expression "(pcVar3 == FUN_001869e0)" ( (binary_expression "pcVar3 == FUN_001869e0" identifier == identifier) )) (compound_statement "{\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }" { (expression_statement "uVar9 = *(uint *)((long)plVar13 + 0x7c);" (assignment_expression "uVar9 = *(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 (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }" if (parenthesized_expression "(uVar9 == 0xffffffff)" ( (binary_expression "uVar9 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }" { (labeled_statement "LAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "FUN_0017c650("../../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        uVar9 = (*pcVar3)();\n      }" else (compound_statement "{\n        uVar9 = (*pcVar3)();\n      }" { (expression_statement "uVar9 = (*pcVar3)();" (assignment_expression "uVar9 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (uVar9 < 0xff00) goto LAB_00190bac;" if (parenthesized_expression "(uVar9 < 0xff00)" ( (binary_expression "uVar9 < 0xff00" identifier < number_literal) )) (goto_statement "goto LAB_00190bac;" goto statement_identifier ;)) (expression_statement "uVar8 = 0xffff;" (assignment_expression "uVar8 = 0xffff" identifier = number_literal) ;) (expression_statement "local_40 = (int)param_1[0x25] + uVar10;" (assignment_expression "local_40 = (int)param_1[0x25] + uVar10" identifier = (binary_expression "(int)param_1[0x25] + uVar10" (cast_expression "(int)param_1[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x25]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "local_3c = uVar9;" (assignment_expression "local_3c = uVar9" identifier = identifier) ;) (expression_statement "FUN_0018f7c0(lVar6 + 0x38,&local_40);" (call_expression "FUN_0018f7c0(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 = uVar9;\n        FUN_0018f7c0(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 = uVar9;\n        FUN_0018f7c0(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" (cast_expression "(uint)puVar7[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar7[3]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "local_3c = uVar9;" (assignment_expression "local_3c = uVar9" identifier = identifier) ;) (expression_statement "FUN_0018f7c0(local_58 + 0x38,&local_40);" (call_expression "FUN_0018f7c0(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 {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }" else (compound_statement "{\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }" { (if_statement "if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }" if (parenthesized_expression "(uVar9 == 0xffff)" ( (binary_expression "uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\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 "uVar9 = FUN_001bd230(lVar11,param_1,uVar10);" (assignment_expression "uVar9 = FUN_001bd230(lVar11,param_1,uVar10)" identifier = (call_expression "FUN_001bd230(lVar11,param_1,uVar10)" identifier (argument_list "(lVar11,param_1,uVar10)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_00190c36;" goto statement_identifier ;) })) (labeled_statement "LAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;" statement_identifier : (expression_statement "uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;" (assignment_expression "uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8" identifier = (binary_expression "(ushort)uVar9 << 8 | (ushort)uVar9 >> 8" (binary_expression "(ushort)uVar9 << 8" (cast_expression "(ushort)uVar9" ( (type_descriptor "ushort" type_identifier) ) identifier) << number_literal) | (binary_expression "(ushort)uVar9 >> 8" (cast_expression "(ushort)uVar9" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal))) ;)) }))) (expression_statement "puVar17 = puVar18 + 6;" (assignment_expression "puVar17 = puVar18 + 6" identifier = (binary_expression "puVar18 + 6" identifier + number_literal)) ;) (expression_statement "uVar9 = FUN_0026df00(local_a0,puVar7[1]);" (assignment_expression "uVar9 = FUN_0026df00(local_a0,puVar7[1])" identifier = (call_expression "FUN_0026df00(local_a0,puVar7[1])" identifier (argument_list "(local_a0,puVar7[1])" ( identifier , (subscript_expression "puVar7[1]" identifier [ number_literal ]) )))) ;) (expression_statement "*puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "*puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (pointer_expression "*puVar18" * identifier) = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;" (assignment_expression "*(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (pointer_expression "*(ulong *)(puVar18 + 2)" * (cast_expression "(ulong *)(puVar18 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 2)" ( (binary_expression "puVar18 + 2" identifier + number_literal) )))) = (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28" (binary_expression "uVar5 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar5 & 0xff000000000000)" ( (binary_expression "uVar5 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar5 & 0xff0000000000)" ( (binary_expression "uVar5 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00000000) >> 8" (parenthesized_expression "(uVar5 & 0xff00000000)" ( (binary_expression "uVar5 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" ( (binary_expression "uVar5 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar5 = (ulong)(uint)puVar7[2];" (assignment_expression "uVar5 = (ulong)(uint)puVar7[2]" identifier = (cast_expression "(ulong)(uint)puVar7[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)puVar7[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar7[2]" identifier [ number_literal ])))) ;) (expression_statement "*(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;" (assignment_expression "*(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38" (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 "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38" (binary_expression "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28" (binary_expression "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" ( (binary_expression "uVar5 & 0xff000000" identifier & number_literal) )) << number_literal) | (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x38" 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 "*(ushort *)((long)puVar18 + 6) = uVar8;" (assignment_expression "*(ushort *)((long)puVar18 + 6) = uVar8" (pointer_expression "*(ushort *)((long)puVar18 + 6)" * (cast_expression "(ushort *)((long)puVar18 + 6)" ( (type_descriptor "ushort *" type_identifier (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) )))) = 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 (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }" if (parenthesized_expression "(-1 < *(char *)((long)puVar7 + 0x1b))" ( (binary_expression "-1 < *(char *)((long)puVar7 + 0x1b)" number_literal < (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) ))))) )) (compound_statement "{\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }" { (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar14;" (assignment_expression "puVar15 = puVar14" identifier = identifier) ;) (if_statement "if (*(uint *)(param_1 + 0x24) <= uVar10) break;" if (parenthesized_expression "(*(uint *)(param_1 + 0x24) <= uVar10)" ( (binary_expression "*(uint *)(param_1 + 0x24) <= uVar10" (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_00190c0f;" goto statement_identifier ;) })) (if_statement "if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }" if (parenthesized_expression "((uint *)((long)local_98 + uVar12) <= puVar14)" ( (binary_expression "(uint *)((long)local_98 + uVar12) <= puVar14" (cast_expression "(uint *)((long)local_98 + uVar12)" ( (type_descriptor "uint *" 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_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }" { comment (expression_statement "FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");" (call_expression "FUN_0017c650("../../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 "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = FUN_0026df00(local_88,puVar7[1]);" (assignment_expression "uVar9 = FUN_0026df00(local_88,puVar7[1])" identifier = (call_expression "FUN_0026df00(local_88,puVar7[1])" identifier (argument_list "(local_88,puVar7[1])" ( identifier , (subscript_expression "puVar7[1]" identifier [ number_literal ]) )))) ;) (expression_statement "*puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "*puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (pointer_expression "*puVar14" * identifier) = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;" (assignment_expression "*(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (pointer_expression "*(ulong *)(puVar14 + 2)" * (cast_expression "(ulong *)(puVar14 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) = (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28" (binary_expression "uVar5 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar5 & 0xff000000000000)" ( (binary_expression "uVar5 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar5 & 0xff0000000000)" ( (binary_expression "uVar5 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00000000) >> 8" (parenthesized_expression "(uVar5 & 0xff00000000)" ( (binary_expression "uVar5 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" ( (binary_expression "uVar5 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar5 = (ulong)(uint)puVar7[2];" (assignment_expression "uVar5 = (ulong)(uint)puVar7[2]" identifier = (cast_expression "(ulong)(uint)puVar7[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)puVar7[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar7[2]" identifier [ number_literal ])))) ;) (expression_statement "*(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;" (assignment_expression "*(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38" (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 "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38" (binary_expression "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28" (binary_expression "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" ( (binary_expression "uVar5 & 0xff000000" identifier & number_literal) )) << number_literal) | (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x38" 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 "*(ushort *)((long)puVar14 + 6) = uVar8;" (assignment_expression "*(ushort *)((long)puVar14 + 6) = uVar8" (pointer_expression "*(ushort *)((long)puVar14 + 6)" * (cast_expression "(ushort *)((long)puVar14 + 6)" ( (type_descriptor "ushort *" type_identifier (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) )))) = 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) ;) }) while (parenthesized_expression "(uVar10 < *(uint *)(param_1 + 0x24))" ( (binary_expression "uVar10 < *(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_0017c650("../../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_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");\n  }" { comment (expression_statement "FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");" (call_expression "FUN_0017c650("../../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 ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }" if (parenthesized_expression "((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12))" ( (binary_expression "(uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)" (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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_00190edb:\n                    /* WARNING: Subroutine does not return */\n  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");" (call_expression "FUN_0017c650("../../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,_true> * this, Symbol_table *\n   param_1, Layout * layout, Output_file * of) */\n\nvoid __thiscall\ngold::Sized_relobj_incr<64,_true>::do_relocate\n          (Sized_relobj_incr<64,_true> *this,Symbol_table *param_1,Layout *layout,Output_file *of)\n\n{\n  byte bVar1;\n  Output_data_space *pOVar2;\n  Output_section *pOVar3;\n  _func_int_varargs *p_Var4;\n  uint uVar5;\n  int iVar6;\n  Output_symtab_xindex *pOVar7;\n  section_offset_type sVar8;\n  ulong uVar9;\n  undefined4 extraout_var;\n  Output_file *pOVar10;\n  Output_file *this_1;\n  pointer pLVar11;\n  size_t size;\n  ushort uVar12;\n  uint uVar13;\n  uint uVar14;\n  uchar *puVar15;\n  Output_file *__src;\n  Layout *this_01;\n  Sized_relobj_incr<64,_true> *this_02;\n  Layout *__dest;\n  uint *puVar17;\n  uint *puVar18;\n  uint uVar19;\n  uint *puVar20;\n  uint *puVar21;\n  Stringpool *local_a0;\n  uint *local_98;\n  Stringpool *local_88;\n  uint *local_68;\n  Output_symtab_xindex *local_58;\n  pair<unsigned_int,_unsigned_int> local_40 [2];\n  Xindex *this_00;\n  ulong uVar16;\n  \n  if (this->incr_reloc_count_ == 0) {\n    return;\n  }\n  if (layout->incremental_inputs_ == (Incremental_inputs *)0x0) {\nLAB_00190e93:\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_00190ef3:\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_02 = this;\n  if (((long)__src < 0) ||\n     (size = (long)&__src->name_ + size, this_1 = of, of->file_size_ < (long)size)) {\nLAB_00190e89:\n                    /* WARNING: Subroutine does not return */\n    Output_file::get_output_view((Output_file *)this_02,(off_t)__src,size,this_1);\n  }\n  puVar15 = (uchar *)((long)&__src->name_ + (long)of->base_);\n  uVar16 = (ulong)(this->incr_reloc_output_index_ * 0x18);\n  __dest = (Layout *)(puVar15 + uVar16);\n  __src = (Output_file *)this->incr_relocs_;\n  this_01 = __dest;\n  memcpy(__dest,__src,(ulong)(this->incr_reloc_count_ * 0x18));\n  if (this->incr_reloc_count_ != 0) {\n    uVar19 = *(uint *)&__dest->field_0x4;\n    this_01 = (Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl._M_start\n              [uVar19 >> 0x18 | (uVar19 & 0xff0000) >> 8 | (uVar19 & 0xff00) << 8 | uVar19 << 0x18];\n    if (this_01 != (Layout *)0x0) {\n      uVar19 = 0;\n      do {\n        if (*(code **)(*(long *)this_01 + 0x58) == Output_section::do_out_shndx) {\n          uVar5 = *(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4);\n          if (uVar5 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar5 = (**(code **)(*(long *)this_01 + 0x58))();\n        }\n        uVar19 = uVar19 + 1;\n        *(uint *)&__dest->field_0x4 =\n             uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        if (this->incr_reloc_count_ <= uVar19) goto LAB_00190a88;\n        __dest = (Layout *)(puVar15 + uVar19 * 0x18 + uVar16);\n        uVar5 = *(uint *)&__dest->field_0x4;\n        this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start\n                  [uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18];\n      } while (this_01 != (Layout *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_00190a88:\n  pOVar3 = layout->symtab_section_;\n  if (pOVar3 == (Output_section *)0x0) {\n    Layout::symtab_section(this_01);\n    goto LAB_00190e93;\n  }\n  if (((pOVar3->super_Output_data).field_0x20 & 4) == 0) goto LAB_00190ef3;\n  uVar5 = this->local_symbol_count_;\n  size = (size_t)uVar5;\n  uVar19 = uVar5 * 0x18;\n  this_02 = (Sized_relobj_incr<64,_true> *)(ulong)uVar19;\n  if (uVar19 == 0) {\n    local_68 = (uint *)0x0;\n  }\n  else {\n    pOVar10 = (Output_file *)\n              ((ulong)this->local_symbol_offset_ + (pOVar3->super_Output_data).offset_);\n    this_1 = pOVar10;\n    if (((long)pOVar10 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar10->name_ + (long)this_02), __src = of,\n       of->file_size_ < (long)this_1)) goto LAB_00190e89;\n    local_68 = (uint *)((long)&pOVar10->name_ + (long)of->base_);\n  }\n  uVar14 = this->output_local_dynsym_count_ * 0x18;\n  uVar16 = (ulong)uVar14;\n  if (uVar14 == 0) {\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar5 == 0) {\n      return;\n    }\n    local_98 = (uint *)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_ + uVar16)) goto LAB_00190e89;\n    local_98 = (uint *)((long)&this_1->name_ + (long)of->base_);\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar5 == 0) goto LAB_00190edb;\n  }\n  local_88 = &layout->dynpool_;\n  local_a0 = &layout->sympool_;\n  uVar5 = 0;\n  puVar17 = local_98;\n  puVar21 = local_68;\nLAB_00190c0f:\n  do {\n    pLVar11 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64,_true>::Local_symbol,_std::allocator<gold::Sized_relobj_incr<64,_true>::Local_symbol>_>\n              ._M_impl._M_start + uVar5;\n    uVar13 = *(uint *)&pLVar11->field_0x14 & 0xfffffff;\n    if (uVar13 < 0xff00) {\nLAB_00190c36:\n      pOVar3 = (this->ibase_->section_map_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start[uVar13];\n      p_Var4 = (pOVar3->super_Output_data)._vptr_Output_data[0xb];\n      if (p_Var4 == Output_section::do_out_shndx) {\n        uVar13 = pOVar3->out_shndx_;\n        if (uVar13 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar13 = (*p_Var4)();\n      }\n      if (uVar13 < 0xff00) goto LAB_00190bac;\n      uVar12 = 0xffff;\n      local_40[0].first = this->local_symbol_index_ + uVar5;\n      local_40[0].second = uVar13;\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)pLVar11->field_0x1b < '\0') {\n        local_40[0].first = *(uint *)&pLVar11->field_0x18 & 0x7fffffff;\n        local_40[0].second = uVar13;\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    else {\n      if (uVar13 == 0xffff) {\n        this_00 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_;\n        if (this_00 == (Xindex *)0x0) {\n          iVar6 = (*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this);\n          this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n          (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_ = this_00;\n        }\n        uVar13 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar5);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar12 = (ushort)uVar13 << 8 | (ushort)uVar13 >> 8;\n    }\n    puVar20 = puVar21 + 6;\n    sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar11->name);\n    uVar13 = (uint)sVar8;\n    *puVar21 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;\n    uVar9 = pLVar11->st_value;\n    *(ulong *)(puVar21 + 2) =\n         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n    uVar9 = (ulong)pLVar11->st_size;\n    *(ulong *)(puVar21 + 4) =\n         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38;\n    bVar1 = pLVar11->field_0x17;\n    *(undefined1 *)((long)puVar21 + 5) = 0;\n    *(ushort *)((long)puVar21 + 6) = uVar12;\n    *(byte *)(puVar21 + 1) = bVar1 >> 4;\n    puVar21 = puVar20;\n    if (-1 < (char)pLVar11->field_0x1b) {\n      uVar5 = uVar5 + 1;\n      puVar18 = puVar17;\n      if (this->local_symbol_count_ <= uVar5) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar16) <= puVar17) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar18 = puVar17 + 6;\n    uVar5 = uVar5 + 1;\n    sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar11->name);\n    uVar13 = (uint)sVar8;\n    *puVar17 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;\n    uVar9 = pLVar11->st_value;\n    *(ulong *)(puVar17 + 2) =\n         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n    uVar9 = (ulong)pLVar11->st_size;\n    *(ulong *)(puVar17 + 4) =\n         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38;\n    bVar1 = pLVar11->field_0x17;\n    *(undefined1 *)((long)puVar17 + 5) = 0;\n    *(ushort *)((long)puVar17 + 6) = uVar12;\n    *(byte *)(puVar17 + 1) = bVar1 >> 4;\n    puVar17 = puVar18;\n  } while (uVar5 < this->local_symbol_count_);\n  if ((uVar19 != 0) && ((Sized_relobj_incr<64,_true> *)((long)puVar20 - (long)local_68) != this_02))\n  {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar14 == 0) || ((long)puVar18 - (long)local_98 == uVar16)) {\n    return;\n  }\nLAB_00190edb:\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,_true>::do_relocate\n          (Sized_relobj_incr<64,_true> *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 "_true>::do_relocate\n          (Sized_relobj_incr<64,_true> *this,Symbol_table *param_1,Layout *layout,Output_file *of)\n\n{\n  byte" identifier > : : (function_declarator "do_relocate\n          (Sized_relobj_incr<64,_true> *this,Symbol_table *param_1,Layout *layout,Output_file *of)" identifier (parameter_list "(Sized_relobj_incr<64,_true> *this,Symbol_table *param_1,Layout *layout,Output_file *of)" ( (parameter_declaration "Sized_relobj_incr" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *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 "Output_section *pOVar3;" type_identifier (pointer_declarator "*pOVar3" * identifier) ;) (declaration "_func_int_varargs *p_Var4;" type_identifier (pointer_declarator "*p_Var4" * 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 "ulong uVar9;" type_identifier identifier ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (declaration "Output_file *pOVar10;" type_identifier (pointer_declarator "*pOVar10" * identifier) ;) (declaration "Output_file *this_1;" type_identifier (pointer_declarator "*this_1" * identifier) ;) (declaration "pointer pLVar11;" type_identifier identifier ;) (declaration "size_t size;" primitive_type identifier ;) (declaration "ushort uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uchar *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "Output_file *__src;" type_identifier (pointer_declarator "*__src" * identifier) ;) (declaration "Layout *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (expression_statement "Sized_relobj_incr<64,_true> *this_02;" (update_expression "Sized_relobj_incr<64,_true> *this_02" (binary_expression "Sized_relobj_incr<64,_true> *this_02" (binary_expression "Sized_relobj_incr<64" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*this_02" * identifier)) --) ;) (declaration "Layout *__dest;" type_identifier (pointer_declarator "*__dest" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "Stringpool *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "uint *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "Stringpool *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "uint *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 uVar16;" 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) {\nLAB_00190e93:\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 "{\nLAB_00190e93:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa01,"do_relocate");\n  }" { (labeled_statement "LAB_00190e93:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa01,"do_relocate");" statement_identifier : 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_00190ef3:\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_00190ef3:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n  }" { (labeled_statement "LAB_00190ef3:\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_02 = this;" (assignment_expression "this_02 = this" identifier = identifier) ;) (if_statement "if (((long)__src < 0) ||\n     (size = (long)&__src->name_ + size, this_1 = of, of->file_size_ < (long)size)) {\nLAB_00190e89:\n                    /* WARNING: Subroutine does not return */\n    Output_file::get_output_view((Output_file *)this_02,(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_00190e89:\n                    /* WARNING: Subroutine does not return */\n    Output_file::get_output_view((Output_file *)this_02,(off_t)__src,size,this_1);\n  }" { (labeled_statement "LAB_00190e89:\n                    /* WARNING: Subroutine does not return */\n    Output_file::get_output_view((Output_file *)this_02,(off_t)__src,size,this_1);" statement_identifier : comment (labeled_statement "Output_file::get_output_view((Output_file *)this_02,(off_t)__src,size,this_1);" statement_identifier : (ERROR ":" :) (expression_statement "get_output_view((Output_file *)this_02,(off_t)__src,size,this_1);" (call_expression "get_output_view((Output_file *)this_02,(off_t)__src,size,this_1)" identifier (argument_list "((Output_file *)this_02,(off_t)__src,size,this_1)" ( (cast_expression "(Output_file *)this_02" ( (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 "puVar15 = (uchar *)((long)&__src->name_ + (long)of->base_);" (assignment_expression "puVar15 = (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 "uVar16 = (ulong)(this->incr_reloc_output_index_ * 0x18);" (assignment_expression "uVar16 = (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 "__dest = (Layout *)(puVar15 + uVar16);" (assignment_expression "__dest = (Layout *)(puVar15 + uVar16)" identifier = (cast_expression "(Layout *)(puVar15 + uVar16)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + uVar16)" ( (binary_expression "puVar15 + uVar16" 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 "this_01 = __dest;" (assignment_expression "this_01 = __dest" identifier = identifier) ;) (expression_statement "memcpy(__dest,__src,(ulong)(this->incr_reloc_count_ * 0x18));" (call_expression "memcpy(__dest,__src,(ulong)(this->incr_reloc_count_ * 0x18))" identifier (argument_list "(__dest,__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    uVar19 = *(uint *)&__dest->field_0x4;\n    this_01 = (Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl._M_start\n              [uVar19 >> 0x18 | (uVar19 & 0xff0000) >> 8 | (uVar19 & 0xff00) << 8 | uVar19 << 0x18];\n    if (this_01 != (Layout *)0x0) {\n      uVar19 = 0;\n      do {\n        if (*(code **)(*(long *)this_01 + 0x58) == Output_section::do_out_shndx) {\n          uVar5 = *(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4);\n          if (uVar5 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar5 = (**(code **)(*(long *)this_01 + 0x58))();\n        }\n        uVar19 = uVar19 + 1;\n        *(uint *)&__dest->field_0x4 =\n             uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        if (this->incr_reloc_count_ <= uVar19) goto LAB_00190a88;\n        __dest = (Layout *)(puVar15 + uVar19 * 0x18 + uVar16);\n        uVar5 = *(uint *)&__dest->field_0x4;\n        this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start\n                  [uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18];\n      } while (this_01 != (Layout *)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    uVar19 = *(uint *)&__dest->field_0x4;\n    this_01 = (Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl._M_start\n              [uVar19 >> 0x18 | (uVar19 & 0xff0000) >> 8 | (uVar19 & 0xff00) << 8 | uVar19 << 0x18];\n    if (this_01 != (Layout *)0x0) {\n      uVar19 = 0;\n      do {\n        if (*(code **)(*(long *)this_01 + 0x58) == Output_section::do_out_shndx) {\n          uVar5 = *(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4);\n          if (uVar5 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar5 = (**(code **)(*(long *)this_01 + 0x58))();\n        }\n        uVar19 = uVar19 + 1;\n        *(uint *)&__dest->field_0x4 =\n             uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        if (this->incr_reloc_count_ <= uVar19) goto LAB_00190a88;\n        __dest = (Layout *)(puVar15 + uVar19 * 0x18 + uVar16);\n        uVar5 = *(uint *)&__dest->field_0x4;\n        this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start\n                  [uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18];\n      } while (this_01 != (Layout *)0x0);\n    }\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa12,"do_relocate");\n  }" { (expression_statement "uVar19 = *(uint *)&__dest->field_0x4;" (assignment_expression "uVar19 = *(uint *)&__dest->field_0x4" identifier = (pointer_expression "*(uint *)&__dest->field_0x4" * (cast_expression "(uint *)&__dest->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__dest->field_0x4" & (field_expression "__dest->field_0x4" identifier -> field_identifier))))) ;) (expression_statement "this_01 = (Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl._M_start\n              [uVar19 >> 0x18 | (uVar19 & 0xff0000) >> 8 | (uVar19 & 0xff00) << 8 | uVar19 << 0x18];" (subscript_expression "this_01 = (Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl._M_start\n              [uVar19 >> 0x18 | (uVar19 & 0xff0000) >> 8 | (uVar19 & 0xff00) << 8 | uVar19 << 0x18]" (field_expression "this_01 = (Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl._M_start" (field_expression "this_01 = (Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n              _M_impl" (binary_expression "this_01 = (Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "this_01 = (Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "this_01 = (Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base<gold::Output_section*,_std" (assignment_expression "this_01 = (Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base<gold" identifier = (binary_expression "(Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base<gold" (cast_expression "(Layout *)\n              (this->ibase_->section_map_).\n              super__Vector_base" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (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) [ (binary_expression "uVar19 >> 0x18 | (uVar19 & 0xff0000) >> 8 | (uVar19 & 0xff00) << 8 | uVar19 << 0x18" (binary_expression "uVar19 >> 0x18 | (uVar19 & 0xff0000) >> 8 | (uVar19 & 0xff00) << 8" (binary_expression "uVar19 >> 0x18 | (uVar19 & 0xff0000) >> 8" (binary_expression "uVar19 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar19 & 0xff0000) >> 8" (parenthesized_expression "(uVar19 & 0xff0000)" ( (binary_expression "uVar19 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar19 & 0xff00) << 8" (parenthesized_expression "(uVar19 & 0xff00)" ( (binary_expression "uVar19 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar19 << 0x18" identifier << number_literal)) ]) ;) (if_statement "if (this_01 != (Layout *)0x0) {\n      uVar19 = 0;\n      do {\n        if (*(code **)(*(long *)this_01 + 0x58) == Output_section::do_out_shndx) {\n          uVar5 = *(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4);\n          if (uVar5 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar5 = (**(code **)(*(long *)this_01 + 0x58))();\n        }\n        uVar19 = uVar19 + 1;\n        *(uint *)&__dest->field_0x4 =\n             uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        if (this->incr_reloc_count_ <= uVar19) goto LAB_00190a88;\n        __dest = (Layout *)(puVar15 + uVar19 * 0x18 + uVar16);\n        uVar5 = *(uint *)&__dest->field_0x4;\n        this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start\n                  [uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18];\n      } while (this_01 != (Layout *)0x0);\n    }" if (parenthesized_expression "(this_01 != (Layout *)0x0)" ( (binary_expression "this_01 != (Layout *)0x0" identifier != (cast_expression "(Layout *)0x0" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar19 = 0;\n      do {\n        if (*(code **)(*(long *)this_01 + 0x58) == Output_section::do_out_shndx) {\n          uVar5 = *(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4);\n          if (uVar5 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar5 = (**(code **)(*(long *)this_01 + 0x58))();\n        }\n        uVar19 = uVar19 + 1;\n        *(uint *)&__dest->field_0x4 =\n             uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        if (this->incr_reloc_count_ <= uVar19) goto LAB_00190a88;\n        __dest = (Layout *)(puVar15 + uVar19 * 0x18 + uVar16);\n        uVar5 = *(uint *)&__dest->field_0x4;\n        this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start\n                  [uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18];\n      } while (this_01 != (Layout *)0x0);\n    }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (*(code **)(*(long *)this_01 + 0x58) == Output_section::do_out_shndx) {\n          uVar5 = *(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4);\n          if (uVar5 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar5 = (**(code **)(*(long *)this_01 + 0x58))();\n        }\n        uVar19 = uVar19 + 1;\n        *(uint *)&__dest->field_0x4 =\n             uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        if (this->incr_reloc_count_ <= uVar19) goto LAB_00190a88;\n        __dest = (Layout *)(puVar15 + uVar19 * 0x18 + uVar16);\n        uVar5 = *(uint *)&__dest->field_0x4;\n        this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start\n                  [uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18];\n      } while (this_01 != (Layout *)0x0);" do (compound_statement "{\n        if (*(code **)(*(long *)this_01 + 0x58) == Output_section::do_out_shndx) {\n          uVar5 = *(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4);\n          if (uVar5 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar5 = (**(code **)(*(long *)this_01 + 0x58))();\n        }\n        uVar19 = uVar19 + 1;\n        *(uint *)&__dest->field_0x4 =\n             uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;\n        if (this->incr_reloc_count_ <= uVar19) goto LAB_00190a88;\n        __dest = (Layout *)(puVar15 + uVar19 * 0x18 + uVar16);\n        uVar5 = *(uint *)&__dest->field_0x4;\n        this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start\n                  [uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18];\n      }" { (if_statement "if (*(code **)(*(long *)this_01 + 0x58) == Output_section::do_out_shndx) {\n          uVar5 = *(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4);\n          if (uVar5 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar5 = (**(code **)(*(long *)this_01 + 0x58))();\n        }" if (parenthesized_expression "(*(code **)(*(long *)this_01 + 0x58) == Output_section::do_out_shndx)" ( (binary_expression "*(code **)(*(long *)this_01 + 0x58) == Output_section" (pointer_expression "*(code **)(*(long *)this_01 + 0x58)" * (cast_expression "(code **)(*(long *)this_01 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)this_01 + 0x58)" ( (binary_expression "*(long *)this_01 + 0x58" (pointer_expression "*(long *)this_01" * (cast_expression "(long *)this_01" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) (ERROR "::do_out_shndx" : : identifier) )) (compound_statement "{\n          uVar5 = *(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4);\n          if (uVar5 == 0xffffffff) goto LAB_00190e41;\n        }" { (expression_statement "uVar5 = *(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4);" (assignment_expression "uVar5 = *(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4)" identifier = (pointer_expression "*(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4)" * (cast_expression "(uint *)((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4)" ( (ERROR "(long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std::allocator<gold::" (comma_expression "(long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata*,_std" (binary_expression "(long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char>::Stringdata" (binary_expression "(long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold::Stringpool_template<char" (binary_expression "(long)&(this_01->namepool_).strings_.\n                                   super__List_base<gold" (cast_expression "(long)&(this_01->namepool_).strings_.\n                                   super__List_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(this_01->namepool_).strings_.\n                                   super__List_base" & (field_expression "(this_01->namepool_).strings_.\n                                   super__List_base" (field_expression "(this_01->namepool_).strings_" (parenthesized_expression "(this_01->namepool_)" ( (field_expression "this_01->namepool_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) < identifier) (ERROR "::Stringpool_template" : : identifier) < identifier) > (ERROR "::" : :) identifier) (ERROR "*" *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size + 4" (field_expression "Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node._M_size" (field_expression "Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl._M_node" (field_expression "Stringpool_template<char>::Stringdata*>_>\n                                   ._M_impl" (binary_expression "Stringpool_template<char>::Stringdata*>_" (binary_expression "Stringpool_template<char>::Stringdata" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) identifier) (ERROR "*" *) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) + number_literal) ))))) ;) (if_statement "if (uVar5 == 0xffffffff) goto LAB_00190e41;" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00190e41;" goto statement_identifier ;)) }) (else_clause "else {\n          uVar5 = (**(code **)(*(long *)this_01 + 0x58))();\n        }" else (compound_statement "{\n          uVar5 = (**(code **)(*(long *)this_01 + 0x58))();\n        }" { (expression_statement "uVar5 = (**(code **)(*(long *)this_01 + 0x58))();" (assignment_expression "uVar5 = (**(code **)(*(long *)this_01 + 0x58))()" identifier = (call_expression "(**(code **)(*(long *)this_01 + 0x58))()" (parenthesized_expression "(**(code **)(*(long *)this_01 + 0x58))" ( (pointer_expression "**(code **)(*(long *)this_01 + 0x58)" * (pointer_expression "*(code **)(*(long *)this_01 + 0x58)" * (cast_expression "(code **)(*(long *)this_01 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)this_01 + 0x58)" ( (binary_expression "*(long *)this_01 + 0x58" (pointer_expression "*(long *)this_01" * (cast_expression "(long *)this_01" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar19 = uVar19 + 1;" (assignment_expression "uVar19 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)&__dest->field_0x4 =\n             uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18;" (assignment_expression "*(uint *)&__dest->field_0x4 =\n             uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (pointer_expression "*(uint *)&__dest->field_0x4" * (cast_expression "(uint *)&__dest->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__dest->field_0x4" & (field_expression "__dest->field_0x4" identifier -> field_identifier)))) = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal))) ;) (if_statement "if (this->incr_reloc_count_ <= uVar19) goto LAB_00190a88;" if (parenthesized_expression "(this->incr_reloc_count_ <= uVar19)" ( (binary_expression "this->incr_reloc_count_ <= uVar19" (field_expression "this->incr_reloc_count_" identifier -> field_identifier) <= identifier) )) (goto_statement "goto LAB_00190a88;" goto statement_identifier ;)) (expression_statement "__dest = (Layout *)(puVar15 + uVar19 * 0x18 + uVar16);" (assignment_expression "__dest = (Layout *)(puVar15 + uVar19 * 0x18 + uVar16)" identifier = (cast_expression "(Layout *)(puVar15 + uVar19 * 0x18 + uVar16)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + uVar19 * 0x18 + uVar16)" ( (binary_expression "puVar15 + uVar19 * 0x18 + uVar16" (binary_expression "puVar15 + uVar19 * 0x18" identifier + (binary_expression "uVar19 * 0x18" identifier * number_literal)) + identifier) )))) ;) (expression_statement "uVar5 = *(uint *)&__dest->field_0x4;" (assignment_expression "uVar5 = *(uint *)&__dest->field_0x4" identifier = (pointer_expression "*(uint *)&__dest->field_0x4" * (cast_expression "(uint *)&__dest->field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__dest->field_0x4" & (field_expression "__dest->field_0x4" identifier -> field_identifier))))) ;) (expression_statement "this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start\n                  [uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18];" (subscript_expression "this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start\n                  [uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18]" (field_expression "this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_start" (field_expression "this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl" (binary_expression "this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold::Output_section*,_std" (assignment_expression "this_01 = (Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold" identifier = (binary_expression "(Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base<gold" (cast_expression "(Layout *)\n                  (this->ibase_->section_map_).\n                  super__Vector_base" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (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) [ (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar5 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x18" identifier << number_literal)) ]) ;) }) while (parenthesized_expression "(this_01 != (Layout *)0x0)" ( (binary_expression "this_01 != (Layout *)0x0" identifier != (cast_expression "(Layout *)0x0" ( (type_descriptor "Layout *" 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_00190a88:\n  pOVar3 = layout->symtab_section_;" statement_identifier : (expression_statement "pOVar3 = layout->symtab_section_;" (assignment_expression "pOVar3 = layout->symtab_section_" identifier = (field_expression "layout->symtab_section_" identifier -> field_identifier)) ;)) (if_statement "if (pOVar3 == (Output_section *)0x0) {\n    Layout::symtab_section(this_01);\n    goto LAB_00190e93;\n  }" if (parenthesized_expression "(pOVar3 == (Output_section *)0x0)" ( (binary_expression "pOVar3 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    Layout::symtab_section(this_01);\n    goto LAB_00190e93;\n  }" { (labeled_statement "Layout::symtab_section(this_01);" statement_identifier : (ERROR ":" :) (expression_statement "symtab_section(this_01);" (call_expression "symtab_section(this_01)" identifier (argument_list "(this_01)" ( identifier ))) ;)) (goto_statement "goto LAB_00190e93;" goto statement_identifier ;) })) (if_statement "if (((pOVar3->super_Output_data).field_0x20 & 4) == 0) goto LAB_00190ef3;" if (parenthesized_expression "(((pOVar3->super_Output_data).field_0x20 & 4) == 0)" ( (binary_expression "((pOVar3->super_Output_data).field_0x20 & 4) == 0" (parenthesized_expression "((pOVar3->super_Output_data).field_0x20 & 4)" ( (binary_expression "(pOVar3->super_Output_data).field_0x20 & 4" (field_expression "(pOVar3->super_Output_data).field_0x20" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00190ef3;" goto statement_identifier ;)) (expression_statement "uVar5 = this->local_symbol_count_;" (assignment_expression "uVar5 = this->local_symbol_count_" identifier = (field_expression "this->local_symbol_count_" identifier -> field_identifier)) ;) (expression_statement "size = (size_t)uVar5;" (assignment_expression "size = (size_t)uVar5" identifier = (cast_expression "(size_t)uVar5" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "uVar19 = uVar5 * 0x18;" (assignment_expression "uVar19 = uVar5 * 0x18" identifier = (binary_expression "uVar5 * 0x18" identifier * number_literal)) ;) (expression_statement "this_02 = (Sized_relobj_incr<64,_true> *)(ulong)uVar19;" (assignment_expression "this_02 = (Sized_relobj_incr<64,_true> *)(ulong)" identifier = (call_expression "(Sized_relobj_incr<64,_true> *)(ulong)" (parenthesized_expression "(Sized_relobj_incr<64,_true> *)" ( (comma_expression "Sized_relobj_incr<64,_true> *" (binary_expression "Sized_relobj_incr<64" identifier < number_literal) , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(ulong)" ( identifier )))) (ERROR "uVar19" identifier) ;) (if_statement "if (uVar19 == 0) {\n    local_68 = (uint *)0x0;\n  }\n  else {\n    pOVar10 = (Output_file *)\n              ((ulong)this->local_symbol_offset_ + (pOVar3->super_Output_data).offset_);\n    this_1 = pOVar10;\n    if (((long)pOVar10 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar10->name_ + (long)this_02), __src = of,\n       of->file_size_ < (long)this_1)) goto LAB_00190e89;\n    local_68 = (uint *)((long)&pOVar10->name_ + (long)of->base_);\n  }" if (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) (compound_statement "{\n    local_68 = (uint *)0x0;\n  }" { (expression_statement "local_68 = (uint *)0x0;" (assignment_expression "local_68 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pOVar10 = (Output_file *)\n              ((ulong)this->local_symbol_offset_ + (pOVar3->super_Output_data).offset_);\n    this_1 = pOVar10;\n    if (((long)pOVar10 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar10->name_ + (long)this_02), __src = of,\n       of->file_size_ < (long)this_1)) goto LAB_00190e89;\n    local_68 = (uint *)((long)&pOVar10->name_ + (long)of->base_);\n  }" else (compound_statement "{\n    pOVar10 = (Output_file *)\n              ((ulong)this->local_symbol_offset_ + (pOVar3->super_Output_data).offset_);\n    this_1 = pOVar10;\n    if (((long)pOVar10 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar10->name_ + (long)this_02), __src = of,\n       of->file_size_ < (long)this_1)) goto LAB_00190e89;\n    local_68 = (uint *)((long)&pOVar10->name_ + (long)of->base_);\n  }" { (expression_statement "pOVar10 = (Output_file *)\n              ((ulong)this->local_symbol_offset_ + (pOVar3->super_Output_data).offset_);" (assignment_expression "pOVar10 = (Output_file *)\n              ((ulong)this->local_symbol_offset_ + (pOVar3->super_Output_data).offset_)" identifier = (cast_expression "(Output_file *)\n              ((ulong)this->local_symbol_offset_ + (pOVar3->super_Output_data).offset_)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)this->local_symbol_offset_ + (pOVar3->super_Output_data).offset_)" ( (binary_expression "(ulong)this->local_symbol_offset_ + (pOVar3->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 "(pOVar3->super_Output_data).offset_" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier)) )))) ;) (expression_statement "this_1 = pOVar10;" (assignment_expression "this_1 = pOVar10" identifier = identifier) ;) (if_statement "if (((long)pOVar10 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar10->name_ + (long)this_02), __src = of,\n       of->file_size_ < (long)this_1)) goto LAB_00190e89;" if (parenthesized_expression "(((long)pOVar10 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar10->name_ + (long)this_02), __src = of,\n       of->file_size_ < (long)this_1))" ( (binary_expression "((long)pOVar10 < 0) ||\n       (this_1 = (Output_file *)((long)&pOVar10->name_ + (long)this_02), __src = of,\n       of->file_size_ < (long)this_1)" (parenthesized_expression "((long)pOVar10 < 0)" ( (binary_expression "(long)pOVar10 < 0" (cast_expression "(long)pOVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) || (parenthesized_expression "(this_1 = (Output_file *)((long)&pOVar10->name_ + (long)this_02), __src = of,\n       of->file_size_ < (long)this_1)" ( (comma_expression "this_1 = (Output_file *)((long)&pOVar10->name_ + (long)this_02), __src = of,\n       of->file_size_ < (long)this_1" (assignment_expression "this_1 = (Output_file *)((long)&pOVar10->name_ + (long)this_02)" identifier = (cast_expression "(Output_file *)((long)&pOVar10->name_ + (long)this_02)" ( (type_descriptor "Output_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pOVar10->name_ + (long)this_02)" ( (binary_expression "(long)&pOVar10->name_ + (long)this_02" (cast_expression "(long)&pOVar10->name_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pOVar10->name_" & (field_expression "pOVar10->name_" identifier -> field_identifier))) + (cast_expression "(long)this_02" ( (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_00190e89;" goto statement_identifier ;)) (expression_statement "local_68 = (uint *)((long)&pOVar10->name_ + (long)of->base_);" (assignment_expression "local_68 = (uint *)((long)&pOVar10->name_ + (long)of->base_)" identifier = (cast_expression "(uint *)((long)&pOVar10->name_ + (long)of->base_)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&pOVar10->name_ + (long)of->base_)" ( (binary_expression "(long)&pOVar10->name_ + (long)of->base_" (cast_expression "(long)&pOVar10->name_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&pOVar10->name_" & (field_expression "pOVar10->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 "uVar14 = this->output_local_dynsym_count_ * 0x18;" (assignment_expression "uVar14 = 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 "uVar16 = (ulong)uVar14;" (assignment_expression "uVar16 = (ulong)uVar14" identifier = (cast_expression "(ulong)uVar14" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar14 == 0) {\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar5 == 0) {\n      return;\n    }\n    local_98 = (uint *)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_ + uVar16)) goto LAB_00190e89;\n    local_98 = (uint *)((long)&this_1->name_ + (long)of->base_);\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar5 == 0) goto LAB_00190edb;\n  }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar5 == 0) {\n      return;\n    }\n    local_98 = (uint *)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 (uVar5 == 0) {\n      return;\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "local_98 = (uint *)0x0;" (assignment_expression "local_98 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" 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_ + uVar16)) goto LAB_00190e89;\n    local_98 = (uint *)((long)&this_1->name_ + (long)of->base_);\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar5 == 0) goto LAB_00190edb;\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_ + uVar16)) goto LAB_00190e89;\n    local_98 = (uint *)((long)&this_1->name_ + (long)of->base_);\n    pOVar7 = layout->symtab_xindex_;\n    local_58 = layout->dynsym_xindex_;\n    if (uVar5 == 0) goto LAB_00190edb;\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_ + uVar16)) goto LAB_00190e89;" if (parenthesized_expression "(of->file_size_ < (long)((long)&this_1->name_ + uVar16))" ( (binary_expression "of->file_size_ < (long)((long)&this_1->name_ + uVar16)" (field_expression "of->file_size_" identifier -> field_identifier) < (cast_expression "(long)((long)&this_1->name_ + uVar16)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((long)&this_1->name_ + uVar16)" ( (binary_expression "(long)&this_1->name_ + uVar16" (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_00190e89;" goto statement_identifier ;)) (expression_statement "local_98 = (uint *)((long)&this_1->name_ + (long)of->base_);" (assignment_expression "local_98 = (uint *)((long)&this_1->name_ + (long)of->base_)" identifier = (cast_expression "(uint *)((long)&this_1->name_ + (long)of->base_)" ( (type_descriptor "uint *" 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 (uVar5 == 0) goto LAB_00190edb;" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00190edb;" 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 "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "puVar17 = local_98;" (assignment_expression "puVar17 = local_98" identifier = identifier) ;) (expression_statement "puVar21 = local_68;" (assignment_expression "puVar21 = local_68" identifier = identifier) ;) (labeled_statement "LAB_00190c0f:\n  do {\n    pLVar11 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64,_true>::Local_symbol,_std::allocator<gold::Sized_relobj_incr<64,_true>::Local_symbol>_>\n              ._M_impl._M_start + uVar5;\n    uVar13 = *(uint *)&pLVar11->field_0x14 & 0xfffffff;\n    if (uVar13 < 0xff00) {\nLAB_00190c36:\n      pOVar3 = (this->ibase_->section_map_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start[uVar13];\n      p_Var4 = (pOVar3->super_Output_data)._vptr_Output_data[0xb];\n      if (p_Var4 == Output_section::do_out_shndx) {\n        uVar13 = pOVar3->out_shndx_;\n        if (uVar13 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar13 = (*p_Var4)();\n      }\n      if (uVar13 < 0xff00) goto LAB_00190bac;\n      uVar12 = 0xffff;\n      local_40[0].first = this->local_symbol_index_ + uVar5;\n      local_40[0].second = uVar13;\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)pLVar11->field_0x1b < '\0') {\n        local_40[0].first = *(uint *)&pLVar11->field_0x18 & 0x7fffffff;\n        local_40[0].second = uVar13;\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    else {\n      if (uVar13 == 0xffff) {\n        this_00 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_;\n        if (this_00 == (Xindex *)0x0) {\n          iVar6 = (*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this);\n          this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n          (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_ = this_00;\n        }\n        uVar13 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar5);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar12 = (ushort)uVar13 << 8 | (ushort)uVar13 >> 8;\n    }\n    puVar20 = puVar21 + 6;\n    sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar11->name);\n    uVar13 = (uint)sVar8;\n    *puVar21 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;\n    uVar9 = pLVar11->st_value;\n    *(ulong *)(puVar21 + 2) =\n         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n    uVar9 = (ulong)pLVar11->st_size;\n    *(ulong *)(puVar21 + 4) =\n         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38;\n    bVar1 = pLVar11->field_0x17;\n    *(undefined1 *)((long)puVar21 + 5) = 0;\n    *(ushort *)((long)puVar21 + 6) = uVar12;\n    *(byte *)(puVar21 + 1) = bVar1 >> 4;\n    puVar21 = puVar20;\n    if (-1 < (char)pLVar11->field_0x1b) {\n      uVar5 = uVar5 + 1;\n      puVar18 = puVar17;\n      if (this->local_symbol_count_ <= uVar5) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar16) <= puVar17) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar18 = puVar17 + 6;\n    uVar5 = uVar5 + 1;\n    sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar11->name);\n    uVar13 = (uint)sVar8;\n    *puVar17 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;\n    uVar9 = pLVar11->st_value;\n    *(ulong *)(puVar17 + 2) =\n         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n    uVar9 = (ulong)pLVar11->st_size;\n    *(ulong *)(puVar17 + 4) =\n         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38;\n    bVar1 = pLVar11->field_0x17;\n    *(undefined1 *)((long)puVar17 + 5) = 0;\n    *(ushort *)((long)puVar17 + 6) = uVar12;\n    *(byte *)(puVar17 + 1) = bVar1 >> 4;\n    puVar17 = puVar18;\n  } while (uVar5 < this->local_symbol_count_);" statement_identifier : (do_statement "do {\n    pLVar11 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64,_true>::Local_symbol,_std::allocator<gold::Sized_relobj_incr<64,_true>::Local_symbol>_>\n              ._M_impl._M_start + uVar5;\n    uVar13 = *(uint *)&pLVar11->field_0x14 & 0xfffffff;\n    if (uVar13 < 0xff00) {\nLAB_00190c36:\n      pOVar3 = (this->ibase_->section_map_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start[uVar13];\n      p_Var4 = (pOVar3->super_Output_data)._vptr_Output_data[0xb];\n      if (p_Var4 == Output_section::do_out_shndx) {\n        uVar13 = pOVar3->out_shndx_;\n        if (uVar13 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar13 = (*p_Var4)();\n      }\n      if (uVar13 < 0xff00) goto LAB_00190bac;\n      uVar12 = 0xffff;\n      local_40[0].first = this->local_symbol_index_ + uVar5;\n      local_40[0].second = uVar13;\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)pLVar11->field_0x1b < '\0') {\n        local_40[0].first = *(uint *)&pLVar11->field_0x18 & 0x7fffffff;\n        local_40[0].second = uVar13;\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    else {\n      if (uVar13 == 0xffff) {\n        this_00 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_;\n        if (this_00 == (Xindex *)0x0) {\n          iVar6 = (*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this);\n          this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n          (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_ = this_00;\n        }\n        uVar13 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar5);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar12 = (ushort)uVar13 << 8 | (ushort)uVar13 >> 8;\n    }\n    puVar20 = puVar21 + 6;\n    sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar11->name);\n    uVar13 = (uint)sVar8;\n    *puVar21 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;\n    uVar9 = pLVar11->st_value;\n    *(ulong *)(puVar21 + 2) =\n         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n    uVar9 = (ulong)pLVar11->st_size;\n    *(ulong *)(puVar21 + 4) =\n         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38;\n    bVar1 = pLVar11->field_0x17;\n    *(undefined1 *)((long)puVar21 + 5) = 0;\n    *(ushort *)((long)puVar21 + 6) = uVar12;\n    *(byte *)(puVar21 + 1) = bVar1 >> 4;\n    puVar21 = puVar20;\n    if (-1 < (char)pLVar11->field_0x1b) {\n      uVar5 = uVar5 + 1;\n      puVar18 = puVar17;\n      if (this->local_symbol_count_ <= uVar5) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar16) <= puVar17) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar18 = puVar17 + 6;\n    uVar5 = uVar5 + 1;\n    sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar11->name);\n    uVar13 = (uint)sVar8;\n    *puVar17 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;\n    uVar9 = pLVar11->st_value;\n    *(ulong *)(puVar17 + 2) =\n         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n    uVar9 = (ulong)pLVar11->st_size;\n    *(ulong *)(puVar17 + 4) =\n         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38;\n    bVar1 = pLVar11->field_0x17;\n    *(undefined1 *)((long)puVar17 + 5) = 0;\n    *(ushort *)((long)puVar17 + 6) = uVar12;\n    *(byte *)(puVar17 + 1) = bVar1 >> 4;\n    puVar17 = puVar18;\n  } while (uVar5 < this->local_symbol_count_);" do (compound_statement "{\n    pLVar11 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64,_true>::Local_symbol,_std::allocator<gold::Sized_relobj_incr<64,_true>::Local_symbol>_>\n              ._M_impl._M_start + uVar5;\n    uVar13 = *(uint *)&pLVar11->field_0x14 & 0xfffffff;\n    if (uVar13 < 0xff00) {\nLAB_00190c36:\n      pOVar3 = (this->ibase_->section_map_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start[uVar13];\n      p_Var4 = (pOVar3->super_Output_data)._vptr_Output_data[0xb];\n      if (p_Var4 == Output_section::do_out_shndx) {\n        uVar13 = pOVar3->out_shndx_;\n        if (uVar13 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar13 = (*p_Var4)();\n      }\n      if (uVar13 < 0xff00) goto LAB_00190bac;\n      uVar12 = 0xffff;\n      local_40[0].first = this->local_symbol_index_ + uVar5;\n      local_40[0].second = uVar13;\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)pLVar11->field_0x1b < '\0') {\n        local_40[0].first = *(uint *)&pLVar11->field_0x18 & 0x7fffffff;\n        local_40[0].second = uVar13;\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    else {\n      if (uVar13 == 0xffff) {\n        this_00 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_;\n        if (this_00 == (Xindex *)0x0) {\n          iVar6 = (*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this);\n          this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n          (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_ = this_00;\n        }\n        uVar13 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar5);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar12 = (ushort)uVar13 << 8 | (ushort)uVar13 >> 8;\n    }\n    puVar20 = puVar21 + 6;\n    sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar11->name);\n    uVar13 = (uint)sVar8;\n    *puVar21 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;\n    uVar9 = pLVar11->st_value;\n    *(ulong *)(puVar21 + 2) =\n         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n    uVar9 = (ulong)pLVar11->st_size;\n    *(ulong *)(puVar21 + 4) =\n         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38;\n    bVar1 = pLVar11->field_0x17;\n    *(undefined1 *)((long)puVar21 + 5) = 0;\n    *(ushort *)((long)puVar21 + 6) = uVar12;\n    *(byte *)(puVar21 + 1) = bVar1 >> 4;\n    puVar21 = puVar20;\n    if (-1 < (char)pLVar11->field_0x1b) {\n      uVar5 = uVar5 + 1;\n      puVar18 = puVar17;\n      if (this->local_symbol_count_ <= uVar5) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar16) <= puVar17) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar18 = puVar17 + 6;\n    uVar5 = uVar5 + 1;\n    sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar11->name);\n    uVar13 = (uint)sVar8;\n    *puVar17 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;\n    uVar9 = pLVar11->st_value;\n    *(ulong *)(puVar17 + 2) =\n         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n    uVar9 = (ulong)pLVar11->st_size;\n    *(ulong *)(puVar17 + 4) =\n         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38;\n    bVar1 = pLVar11->field_0x17;\n    *(undefined1 *)((long)puVar17 + 5) = 0;\n    *(ushort *)((long)puVar17 + 6) = uVar12;\n    *(byte *)(puVar17 + 1) = bVar1 >> 4;\n    puVar17 = puVar18;\n  }" { (ERROR "pLVar11 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64,_true>::Local_symbol,_std::allocator<gold::" (comma_expression "pLVar11 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64,_true>::Local_symbol,_std" (binary_expression "pLVar11 = (this->local_symbols_).\n              super__Vector_base<gold::Sized_relobj_incr<64" (assignment_expression "pLVar11 = (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 "_true>::Local_symbol,_std" (binary_expression "_true>::Local_symbol" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Sized_relobj_incr<64,_true>::Local_symbol>_>\n              ._M_impl._M_start + uVar5;" (comma_expression "Sized_relobj_incr<64,_true>::Local_symbol>_>\n              ._M_impl._M_start + uVar5" (binary_expression "Sized_relobj_incr<64" identifier < number_literal) , (binary_expression "_true>::Local_symbol>_>\n              ._M_impl._M_start + uVar5" (field_expression "_true>::Local_symbol>_>\n              ._M_impl._M_start" (field_expression "_true>::Local_symbol>_>\n              ._M_impl" (binary_expression "_true>::Local_symbol>_" (binary_expression "_true>::Local_symbol" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + identifier)) ;) (expression_statement "uVar13 = *(uint *)&pLVar11->field_0x14 & 0xfffffff;" (assignment_expression "uVar13 = *(uint *)&pLVar11->field_0x14 & 0xfffffff" identifier = (binary_expression "*(uint *)&pLVar11->field_0x14 & 0xfffffff" (pointer_expression "*(uint *)&pLVar11->field_0x14" * (cast_expression "(uint *)&pLVar11->field_0x14" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pLVar11->field_0x14" & (field_expression "pLVar11->field_0x14" identifier -> field_identifier)))) & number_literal)) ;) (if_statement "if (uVar13 < 0xff00) {\nLAB_00190c36:\n      pOVar3 = (this->ibase_->section_map_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start[uVar13];\n      p_Var4 = (pOVar3->super_Output_data)._vptr_Output_data[0xb];\n      if (p_Var4 == Output_section::do_out_shndx) {\n        uVar13 = pOVar3->out_shndx_;\n        if (uVar13 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar13 = (*p_Var4)();\n      }\n      if (uVar13 < 0xff00) goto LAB_00190bac;\n      uVar12 = 0xffff;\n      local_40[0].first = this->local_symbol_index_ + uVar5;\n      local_40[0].second = uVar13;\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)pLVar11->field_0x1b < '\0') {\n        local_40[0].first = *(uint *)&pLVar11->field_0x18 & 0x7fffffff;\n        local_40[0].second = uVar13;\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    else {\n      if (uVar13 == 0xffff) {\n        this_00 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_;\n        if (this_00 == (Xindex *)0x0) {\n          iVar6 = (*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this);\n          this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n          (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_ = this_00;\n        }\n        uVar13 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar5);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar12 = (ushort)uVar13 << 8 | (ushort)uVar13 >> 8;\n    }" if (parenthesized_expression "(uVar13 < 0xff00)" ( (binary_expression "uVar13 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_00190c36:\n      pOVar3 = (this->ibase_->section_map_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start[uVar13];\n      p_Var4 = (pOVar3->super_Output_data)._vptr_Output_data[0xb];\n      if (p_Var4 == Output_section::do_out_shndx) {\n        uVar13 = pOVar3->out_shndx_;\n        if (uVar13 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar13 = (*p_Var4)();\n      }\n      if (uVar13 < 0xff00) goto LAB_00190bac;\n      uVar12 = 0xffff;\n      local_40[0].first = this->local_symbol_index_ + uVar5;\n      local_40[0].second = uVar13;\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)pLVar11->field_0x1b < '\0') {\n        local_40[0].first = *(uint *)&pLVar11->field_0x18 & 0x7fffffff;\n        local_40[0].second = uVar13;\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    }" { (labeled_statement "LAB_00190c36:\n      pOVar3 = (this->ibase_->section_map_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start[uVar13];" statement_identifier : (ERROR "pOVar3 = (this->ibase_->section_map_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::" (comma_expression "pOVar3 = (this->ibase_->section_map_).\n               super__Vector_base<gold::Output_section*,_std" (binary_expression "pOVar3 = (this->ibase_->section_map_).\n               super__Vector_base<gold::Output_section*" (assignment_expression "pOVar3 = (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[uVar13];" (subscript_expression "Output_section*>_>.\n               _M_impl._M_start[uVar13]" (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_Var4 = (pOVar3->super_Output_data)._vptr_Output_data[0xb];" (assignment_expression "p_Var4 = (pOVar3->super_Output_data)._vptr_Output_data[0xb]" identifier = (subscript_expression "(pOVar3->super_Output_data)._vptr_Output_data[0xb]" (field_expression "(pOVar3->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar3->super_Output_data)" ( (field_expression "pOVar3->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var4 == Output_section::do_out_shndx) {\n        uVar13 = pOVar3->out_shndx_;\n        if (uVar13 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar13 = (*p_Var4)();\n      }" if (parenthesized_expression "(p_Var4 == Output_section::do_out_shndx)" ( (binary_expression "p_Var4 == Output_section" identifier == identifier) (ERROR "::do_out_shndx" : : identifier) )) (compound_statement "{\n        uVar13 = pOVar3->out_shndx_;\n        if (uVar13 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }" { (expression_statement "uVar13 = pOVar3->out_shndx_;" (assignment_expression "uVar13 = pOVar3->out_shndx_" identifier = (field_expression "pOVar3->out_shndx_" identifier -> field_identifier)) ;) (if_statement "if (uVar13 == 0xffffffff) {\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }" if (parenthesized_expression "(uVar13 == 0xffffffff)" ( (binary_expression "uVar13 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\nLAB_00190e41:\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x1043,"do_out_shndx");\n        }" { (labeled_statement "LAB_00190e41:\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        uVar13 = (*p_Var4)();\n      }" else (compound_statement "{\n        uVar13 = (*p_Var4)();\n      }" { (expression_statement "uVar13 = (*p_Var4)();" (assignment_expression "uVar13 = (*p_Var4)()" identifier = (call_expression "(*p_Var4)()" (parenthesized_expression "(*p_Var4)" ( (pointer_expression "*p_Var4" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (uVar13 < 0xff00) goto LAB_00190bac;" if (parenthesized_expression "(uVar13 < 0xff00)" ( (binary_expression "uVar13 < 0xff00" identifier < number_literal) )) (goto_statement "goto LAB_00190bac;" goto statement_identifier ;)) (expression_statement "uVar12 = 0xffff;" (assignment_expression "uVar12 = 0xffff" identifier = number_literal) ;) (expression_statement "local_40[0].first = this->local_symbol_index_ + uVar5;" (assignment_expression "local_40[0].first = this->local_symbol_index_ + uVar5" (field_expression "local_40[0].first" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) = (binary_expression "this->local_symbol_index_ + uVar5" (field_expression "this->local_symbol_index_" identifier -> field_identifier) + identifier)) ;) (expression_statement "local_40[0].second = uVar13;" (assignment_expression "local_40[0].second = uVar13" (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)pLVar11->field_0x1b < '\0') {\n        local_40[0].first = *(uint *)&pLVar11->field_0x18 & 0x7fffffff;\n        local_40[0].second = uVar13;\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)pLVar11->field_0x1b < '\0')" ( (binary_expression "(char)pLVar11->field_0x1b < '\0'" (cast_expression "(char)pLVar11->field_0x1b" ( (type_descriptor "char" primitive_type) ) (field_expression "pLVar11->field_0x1b" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_40[0].first = *(uint *)&pLVar11->field_0x18 & 0x7fffffff;\n        local_40[0].second = uVar13;\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 *)&pLVar11->field_0x18 & 0x7fffffff;" (assignment_expression "local_40[0].first = *(uint *)&pLVar11->field_0x18 & 0x7fffffff" (field_expression "local_40[0].first" (subscript_expression "local_40[0]" identifier [ number_literal ]) . field_identifier) = (binary_expression "*(uint *)&pLVar11->field_0x18 & 0x7fffffff" (pointer_expression "*(uint *)&pLVar11->field_0x18" * (cast_expression "(uint *)&pLVar11->field_0x18" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pLVar11->field_0x18" & (field_expression "pLVar11->field_0x18" identifier -> field_identifier)))) & number_literal)) ;) (expression_statement "local_40[0].second = uVar13;" (assignment_expression "local_40[0].second = uVar13" (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 {\n      if (uVar13 == 0xffff) {\n        this_00 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_;\n        if (this_00 == (Xindex *)0x0) {\n          iVar6 = (*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this);\n          this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n          (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_ = this_00;\n        }\n        uVar13 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar5);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar12 = (ushort)uVar13 << 8 | (ushort)uVar13 >> 8;\n    }" else (compound_statement "{\n      if (uVar13 == 0xffff) {\n        this_00 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_;\n        if (this_00 == (Xindex *)0x0) {\n          iVar6 = (*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this);\n          this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n          (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_ = this_00;\n        }\n        uVar13 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar5);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar12 = (ushort)uVar13 << 8 | (ushort)uVar13 >> 8;\n    }" { (if_statement "if (uVar13 == 0xffff) {\n        this_00 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_;\n        if (this_00 == (Xindex *)0x0) {\n          iVar6 = (*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this);\n          this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n          (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_ = this_00;\n        }\n        uVar13 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar5);\n        goto LAB_00190c36;\n      }" if (parenthesized_expression "(uVar13 == 0xffff)" ( (binary_expression "uVar13 == 0xffff" identifier == number_literal) )) (compound_statement "{\n        this_00 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_;\n        if (this_00 == (Xindex *)0x0) {\n          iVar6 = (*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this);\n          this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n          (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_ = this_00;\n        }\n        uVar13 = Xindex::sym_xindex_to_shndx(this_00,(Object *)this,uVar5);\n        goto LAB_00190c36;\n      }" { (expression_statement "this_00 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_;" (assignment_expression "this_00 = (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_" identifier = (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (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,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this);\n          this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n          (this->super_Sized_relobj<64,_true>).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,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this);\n          this_00 = (Xindex *)CONCAT44(extraout_var,iVar6);\n          (this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_ = this_00;\n        }" { (expression_statement "iVar6 = (*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this);" (assignment_expression "iVar6 = (*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this)" identifier = (call_expression "(*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])(this)" (parenthesized_expression "(*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b])" ( (pointer_expression "*(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b]" * (subscript_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object\n                    [0x1b]" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (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,_true>).super_Relobj.super_Object.xindex_ = this_00;" (assignment_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_ = this_00" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object.xindex_" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(this->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(this->super_Sized_relobj<64,_true>)" ( (comma_expression "this->super_Sized_relobj<64,_true" (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 "uVar13 = Xindex::" (assignment_expression "uVar13 = Xindex" identifier = identifier) : :) (expression_statement "sym_xindex_to_shndx(this_00,(Object *)this,uVar5);" (call_expression "sym_xindex_to_shndx(this_00,(Object *)this,uVar5)" identifier (argument_list "(this_00,(Object *)this,uVar5)" ( identifier , (cast_expression "(Object *)this" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (goto_statement "goto LAB_00190c36;" goto statement_identifier ;) })) (labeled_statement "LAB_00190bac:\n      uVar12 = (ushort)uVar13 << 8 | (ushort)uVar13 >> 8;" statement_identifier : (expression_statement "uVar12 = (ushort)uVar13 << 8 | (ushort)uVar13 >> 8;" (assignment_expression "uVar12 = (ushort)uVar13 << 8 | (ushort)uVar13 >> 8" identifier = (binary_expression "(ushort)uVar13 << 8 | (ushort)uVar13 >> 8" (binary_expression "(ushort)uVar13 << 8" (cast_expression "(ushort)uVar13" ( (type_descriptor "ushort" type_identifier) ) identifier) << number_literal) | (binary_expression "(ushort)uVar13 >> 8" (cast_expression "(ushort)uVar13" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal))) ;)) }))) (expression_statement "puVar20 = puVar21 + 6;" (assignment_expression "puVar20 = puVar21 + 6" identifier = (binary_expression "puVar21 + 6" identifier + number_literal)) ;) (expression_statement "sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar11->name);" (assignment_expression "sVar8 = Stringpool_template<char>::get_offset(local_a0,pLVar11->name)" identifier = (binary_expression "Stringpool_template<char>::get_offset(local_a0,pLVar11->name)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "get_offset(local_a0,pLVar11->name)" identifier (argument_list "(local_a0,pLVar11->name)" ( identifier , (field_expression "pLVar11->name" identifier -> field_identifier) ))))) ;) (expression_statement "uVar13 = (uint)sVar8;" (assignment_expression "uVar13 = (uint)sVar8" identifier = (cast_expression "(uint)sVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar21 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;" (assignment_expression "*puVar21 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18" (pointer_expression "*puVar21" * identifier) = (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8" (binary_expression "uVar13 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar13 & 0xff0000) >> 8" (parenthesized_expression "(uVar13 & 0xff0000)" ( (binary_expression "uVar13 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar13 & 0xff00) << 8" (parenthesized_expression "(uVar13 & 0xff00)" ( (binary_expression "uVar13 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar13 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar9 = pLVar11->st_value;" (assignment_expression "uVar9 = pLVar11->st_value" identifier = (field_expression "pLVar11->st_value" identifier -> field_identifier)) ;) (expression_statement "*(ulong *)(puVar21 + 2) =\n         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;" (assignment_expression "*(ulong *)(puVar21 + 2) =\n         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (pointer_expression "*(ulong *)(puVar21 + 2)" * (cast_expression "(ulong *)(puVar21 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 2)" ( (binary_expression "puVar21 + 2" identifier + number_literal) )))) = (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" ( (binary_expression "uVar9 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" ( (binary_expression "uVar9 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" ( (binary_expression "uVar9 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar9 = (ulong)pLVar11->st_size;" (assignment_expression "uVar9 = (ulong)pLVar11->st_size" identifier = (cast_expression "(ulong)pLVar11->st_size" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pLVar11->st_size" identifier -> field_identifier))) ;) (expression_statement "*(ulong *)(puVar21 + 4) =\n         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38;" (assignment_expression "*(ulong *)(puVar21 + 4) =\n         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38" (pointer_expression "*(ulong *)(puVar21 + 4)" * (cast_expression "(ulong *)(puVar21 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 4)" ( (binary_expression "puVar21 + 4" identifier + number_literal) )))) = (binary_expression "(uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38" (binary_expression "(uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28" (binary_expression "(uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" ( (binary_expression "uVar9 & 0xff000000" identifier & number_literal) )) << number_literal) | (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x38" identifier << number_literal))) ;) (expression_statement "bVar1 = pLVar11->field_0x17;" (assignment_expression "bVar1 = pLVar11->field_0x17" identifier = (field_expression "pLVar11->field_0x17" identifier -> field_identifier)) ;) (expression_statement "*(undefined1 *)((long)puVar21 + 5) = 0;" (assignment_expression "*(undefined1 *)((long)puVar21 + 5) = 0" (pointer_expression "*(undefined1 *)((long)puVar21 + 5)" * (cast_expression "(undefined1 *)((long)puVar21 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar21 + 5)" ( (binary_expression "(long)puVar21 + 5" (cast_expression "(long)puVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(ushort *)((long)puVar21 + 6) = uVar12;" (assignment_expression "*(ushort *)((long)puVar21 + 6) = uVar12" (pointer_expression "*(ushort *)((long)puVar21 + 6)" * (cast_expression "(ushort *)((long)puVar21 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar21 + 6)" ( (binary_expression "(long)puVar21 + 6" (cast_expression "(long)puVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(puVar21 + 1) = bVar1 >> 4;" (assignment_expression "*(byte *)(puVar21 + 1) = bVar1 >> 4" (pointer_expression "*(byte *)(puVar21 + 1)" * (cast_expression "(byte *)(puVar21 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 1)" ( (binary_expression "puVar21 + 1" identifier + number_literal) )))) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "puVar21 = puVar20;" (assignment_expression "puVar21 = puVar20" identifier = identifier) ;) (if_statement "if (-1 < (char)pLVar11->field_0x1b) {\n      uVar5 = uVar5 + 1;\n      puVar18 = puVar17;\n      if (this->local_symbol_count_ <= uVar5) break;\n      goto LAB_00190c0f;\n    }" if (parenthesized_expression "(-1 < (char)pLVar11->field_0x1b)" ( (binary_expression "-1 < (char)pLVar11->field_0x1b" number_literal < (cast_expression "(char)pLVar11->field_0x1b" ( (type_descriptor "char" primitive_type) ) (field_expression "pLVar11->field_0x1b" identifier -> field_identifier))) )) (compound_statement "{\n      uVar5 = uVar5 + 1;\n      puVar18 = puVar17;\n      if (this->local_symbol_count_ <= uVar5) break;\n      goto LAB_00190c0f;\n    }" { (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "puVar18 = puVar17;" (assignment_expression "puVar18 = puVar17" identifier = identifier) ;) (if_statement "if (this->local_symbol_count_ <= uVar5) break;" if (parenthesized_expression "(this->local_symbol_count_ <= uVar5)" ( (binary_expression "this->local_symbol_count_ <= uVar5" (field_expression "this->local_symbol_count_" identifier -> field_identifier) <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_00190c0f;" goto statement_identifier ;) })) (if_statement "if ((uint *)((long)local_98 + uVar16) <= puVar17) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/incremental.cc",0xa53,"do_relocate");\n    }" if (parenthesized_expression "((uint *)((long)local_98 + uVar16) <= puVar17)" ( (binary_expression "(uint *)((long)local_98 + uVar16) <= puVar17" (cast_expression "(uint *)((long)local_98 + uVar16)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_98 + uVar16)" ( (binary_expression "(long)local_98 + uVar16" (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      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 "puVar18 = puVar17 + 6;" (assignment_expression "puVar18 = puVar17 + 6" identifier = (binary_expression "puVar17 + 6" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar11->name);" (assignment_expression "sVar8 = Stringpool_template<char>::get_offset(local_88,pLVar11->name)" identifier = (binary_expression "Stringpool_template<char>::get_offset(local_88,pLVar11->name)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "get_offset(local_88,pLVar11->name)" identifier (argument_list "(local_88,pLVar11->name)" ( identifier , (field_expression "pLVar11->name" identifier -> field_identifier) ))))) ;) (expression_statement "uVar13 = (uint)sVar8;" (assignment_expression "uVar13 = (uint)sVar8" identifier = (cast_expression "(uint)sVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar17 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18;" (assignment_expression "*puVar17 = uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18" (pointer_expression "*puVar17" * identifier) = (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8 | uVar13 << 0x18" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8 | (uVar13 & 0xff00) << 8" (binary_expression "uVar13 >> 0x18 | (uVar13 & 0xff0000) >> 8" (binary_expression "uVar13 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar13 & 0xff0000) >> 8" (parenthesized_expression "(uVar13 & 0xff0000)" ( (binary_expression "uVar13 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar13 & 0xff00) << 8" (parenthesized_expression "(uVar13 & 0xff00)" ( (binary_expression "uVar13 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar13 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar9 = pLVar11->st_value;" (assignment_expression "uVar9 = pLVar11->st_value" identifier = (field_expression "pLVar11->st_value" identifier -> field_identifier)) ;) (expression_statement "*(ulong *)(puVar17 + 2) =\n         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;" (assignment_expression "*(ulong *)(puVar17 + 2) =\n         uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (pointer_expression "*(ulong *)(puVar17 + 2)" * (cast_expression "(ulong *)(puVar17 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 2)" ( (binary_expression "puVar17 + 2" identifier + number_literal) )))) = (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n         (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18 |\n         (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" ( (binary_expression "uVar9 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" ( (binary_expression "uVar9 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" ( (binary_expression "uVar9 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar9 = (ulong)pLVar11->st_size;" (assignment_expression "uVar9 = (ulong)pLVar11->st_size" identifier = (cast_expression "(ulong)pLVar11->st_size" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pLVar11->st_size" identifier -> field_identifier))) ;) (expression_statement "*(ulong *)(puVar17 + 4) =\n         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38;" (assignment_expression "*(ulong *)(puVar17 + 4) =\n         (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38" (pointer_expression "*(ulong *)(puVar17 + 4)" * (cast_expression "(ulong *)(puVar17 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 4)" ( (binary_expression "puVar17 + 4" identifier + number_literal) )))) = (binary_expression "(uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n         uVar9 << 0x38" (binary_expression "(uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28" (binary_expression "(uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" ( (binary_expression "uVar9 & 0xff000000" identifier & number_literal) )) << number_literal) | (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x38" identifier << number_literal))) ;) (expression_statement "bVar1 = pLVar11->field_0x17;" (assignment_expression "bVar1 = pLVar11->field_0x17" identifier = (field_expression "pLVar11->field_0x17" identifier -> field_identifier)) ;) (expression_statement "*(undefined1 *)((long)puVar17 + 5) = 0;" (assignment_expression "*(undefined1 *)((long)puVar17 + 5) = 0" (pointer_expression "*(undefined1 *)((long)puVar17 + 5)" * (cast_expression "(undefined1 *)((long)puVar17 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + 5)" ( (binary_expression "(long)puVar17 + 5" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(ushort *)((long)puVar17 + 6) = uVar12;" (assignment_expression "*(ushort *)((long)puVar17 + 6) = uVar12" (pointer_expression "*(ushort *)((long)puVar17 + 6)" * (cast_expression "(ushort *)((long)puVar17 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + 6)" ( (binary_expression "(long)puVar17 + 6" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(puVar17 + 1) = bVar1 >> 4;" (assignment_expression "*(byte *)(puVar17 + 1) = bVar1 >> 4" (pointer_expression "*(byte *)(puVar17 + 1)" * (cast_expression "(byte *)(puVar17 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 1)" ( (binary_expression "puVar17 + 1" identifier + number_literal) )))) = (binary_expression "bVar1 >> 4" identifier >> number_literal)) ;) (expression_statement "puVar17 = puVar18;" (assignment_expression "puVar17 = puVar18" identifier = identifier) ;) }) while (parenthesized_expression "(uVar5 < this->local_symbol_count_)" ( (binary_expression "uVar5 < this->local_symbol_count_" identifier < (field_expression "this->local_symbol_count_" identifier -> field_identifier)) )) ;)) (if_statement "if ((uVar19 != 0) && ((Sized_relobj_incr<64,_true> *)((long)puVar20 - (long)local_68) != this_02))\n  {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/incremental.cc",0xa62,"do_relocate");\n  }" if (parenthesized_expression "((uVar19 != 0) && ((Sized_relobj_incr<64,_true> *)((long)puVar20 - (long)local_68) != this_02))" ( (binary_expression "(uVar19 != 0) && ((Sized_relobj_incr<64,_true> *)((long)puVar20 - (long)local_68) != this_02)" (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) && (parenthesized_expression "((Sized_relobj_incr<64,_true> *)((long)puVar20 - (long)local_68) != this_02)" ( (binary_expression "(Sized_relobj_incr<64,_true> *)((long)puVar20 - (long)local_68) != this_02" (call_expression "(Sized_relobj_incr<64,_true> *)((long)puVar20 - (long)local_68)" (parenthesized_expression "(Sized_relobj_incr<64,_true> *)" ( (comma_expression "Sized_relobj_incr<64,_true> *" (binary_expression "Sized_relobj_incr<64" identifier < number_literal) , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "((long)puVar20 - (long)local_68)" ( (binary_expression "(long)puVar20 - (long)local_68" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (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 ((uVar14 == 0) || ((long)puVar18 - (long)local_98 == uVar16)) {\n    return;\n  }" if (parenthesized_expression "((uVar14 == 0) || ((long)puVar18 - (long)local_98 == uVar16))" ( (binary_expression "(uVar14 == 0) || ((long)puVar18 - (long)local_98 == uVar16)" (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) || (parenthesized_expression "((long)puVar18 - (long)local_98 == uVar16)" ( (binary_expression "(long)puVar18 - (long)local_98 == uVar16" (binary_expression "(long)puVar18 - (long)local_98" (cast_expression "(long)puVar18" ( (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_00190edb:\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_00190930(long *param_1,undefined8 param_2,long param_3,long param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  code *pcVar3;\n  uint uVar4;\n  ulong uVar5;\n  long lVar6;\n  ulong *puVar7;\n  ushort uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  ulong uVar12;\n  long *plVar13;\n  void *__dest;\n  uint *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint *puVar18;\n  long local_a0;\n  uint *local_98;\n  long local_88;\n  uint *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\nLAB_00190e93:\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_00190ef3:\n                    \n    FUN_0017c650("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    \n    FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_00190e89:\n                    \n    FUN_00182e30();\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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_00190a88:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n    FUN_00182e10();\n    goto LAB_00190e93;\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;\n  iVar2 = (int)param_1[0x24];\n  uVar16 = iVar2 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (uint *)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_00190e89;\n    local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar4;\n  if (uVar4 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar10 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_00190c0f:\n  do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_00190edb:\n                    \n  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");\n}\n\n" (function_definition "void FUN_00190930(long *param_1,undefined8 param_2,long param_3,long param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  code *pcVar3;\n  uint uVar4;\n  ulong uVar5;\n  long lVar6;\n  ulong *puVar7;\n  ushort uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  ulong uVar12;\n  long *plVar13;\n  void *__dest;\n  uint *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint *puVar18;\n  long local_a0;\n  uint *local_98;\n  long local_88;\n  uint *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\nLAB_00190e93:\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_00190ef3:\n                    \n    FUN_0017c650("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    \n    FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_00190e89:\n                    \n    FUN_00182e30();\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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_00190a88:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n    FUN_00182e10();\n    goto LAB_00190e93;\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;\n  iVar2 = (int)param_1[0x24];\n  uVar16 = iVar2 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (uint *)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_00190e89;\n    local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar4;\n  if (uVar4 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar10 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_00190c0f:\n  do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_00190edb:\n                    \n  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");\n}" primitive_type (function_declarator "FUN_00190930(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  int iVar2;\n  code *pcVar3;\n  uint uVar4;\n  ulong uVar5;\n  long lVar6;\n  ulong *puVar7;\n  ushort uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  ulong uVar12;\n  long *plVar13;\n  void *__dest;\n  uint *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint *puVar18;\n  long local_a0;\n  uint *local_98;\n  long local_88;\n  uint *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\nLAB_00190e93:\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_00190ef3:\n                    \n    FUN_0017c650("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    \n    FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_00190e89:\n                    \n    FUN_00182e30();\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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_00190a88:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n    FUN_00182e10();\n    goto LAB_00190e93;\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;\n  iVar2 = (int)param_1[0x24];\n  uVar16 = iVar2 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (uint *)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_00190e89;\n    local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar4;\n  if (uVar4 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar10 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_00190c0f:\n  do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_00190edb:\n                    \n  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "ushort 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 "ulong uVar12;" type_identifier identifier ;) (declaration "long *plVar13;" (sized_type_specifier "long" long) (pointer_declarator "*plVar13" * identifier) ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "long local_a0;" (sized_type_specifier "long" long) identifier ;) (declaration "uint *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "uint *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 ;) (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) {\nLAB_00190e93:\n                    \n    FUN_0017c650("../../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 "{\nLAB_00190e93:\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");\n  }" { (labeled_statement "LAB_00190e93:\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");" (call_expression "FUN_0017c650("../../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_00190ef3:\n                    \n    FUN_0017c650("../../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_00190ef3:\n                    \n    FUN_0017c650("../../gold/output.h",0xe3,"offset");\n  }" { (labeled_statement "LAB_00190ef3:\n                    \n    FUN_0017c650("../../gold/output.h",0xe3,"offset");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_0017c650("../../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_0017c650("../../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_0017c650("../../gold/output.h",0xcf,"data_size");\n  }" { (expression_statement "FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0017c650("../../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_00190e89:\n                    \n    FUN_00182e30();\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_00190e89:\n                    \n    FUN_00182e30();\n  }" { (labeled_statement "LAB_00190e89:\n                    \n    FUN_00182e30();" statement_identifier : (expression_statement "FUN_00182e30();" (call_expression "FUN_00182e30()" 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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_0017c650("../../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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");\n  }" { (expression_statement "uVar16 = *(uint *)((long)__dest + 4);" (assignment_expression "uVar16 = *(uint *)((long)__dest + 4)" identifier = (pointer_expression "*(uint *)((long)__dest + 4)" * (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) ))))) ;) (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8)" identifier = (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8)" * (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8)" ( (binary_expression "*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 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)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8" (call_expression "(ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18)" ( (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x18" identifier << number_literal)) ))) * number_literal)) ))))) ;) (if_statement "if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 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_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 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_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);" do (compound_statement "{\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      }" { (if_statement "if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }" if (parenthesized_expression "(*(code **)(*plVar13 + 0x58) == FUN_001869e0)" ( (binary_expression "*(code **)(*plVar13 + 0x58) == FUN_001869e0" (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          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }" { (expression_statement "uVar4 = *(uint *)((long)plVar13 + 0x7c);" (assignment_expression "uVar4 = *(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 (uVar4 == 0xffffffff) goto LAB_00190e41;" if (parenthesized_expression "(uVar4 == 0xffffffff)" ( (binary_expression "uVar4 == 0xffffffff" identifier == number_literal) )) (goto_statement "goto LAB_00190e41;" goto statement_identifier ;)) }) (else_clause "else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }" else (compound_statement "{\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }" { (expression_statement "uVar4 = (**(code **)(*plVar13 + 0x58))();" (assignment_expression "uVar4 = (**(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 "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "*(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (pointer_expression "*(uint *)((long)__dest + 4)" * (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) )))) = (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" identifier << number_literal))) ;) (if_statement "if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;" 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_00190a88;" 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 "uVar4 = *(uint *)((long)__dest + 4);" (assignment_expression "uVar4 = *(uint *)((long)__dest + 4)" identifier = (pointer_expression "*(uint *)((long)__dest + 4)" * (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) ))))) ;) (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8)" identifier = (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8)" * (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8)" ( (binary_expression "*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 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)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8" (call_expression "(ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18)" ( (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" ( (binary_expression "uVar4 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" ( (binary_expression "uVar4 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar4 << 0x18" 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_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");" (call_expression "FUN_0017c650("../../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_00190a88:\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    FUN_00182e10();\n    goto LAB_00190e93;\n  }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00182e10();\n    goto LAB_00190e93;\n  }" { (expression_statement "FUN_00182e10();" (call_expression "FUN_00182e10()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00190e93;" goto statement_identifier ;) })) (if_statement "if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;" 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_00190ef3;" goto statement_identifier ;)) (expression_statement "iVar2 = (int)param_1[0x24];" (assignment_expression "iVar2 = (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 = iVar2 * 0x18;" (assignment_expression "uVar16 = iVar2 * 0x18" identifier = (binary_expression "iVar2 * 0x18" identifier * number_literal)) ;) (if_statement "if (uVar16 == 0) {\n    local_68 = (uint *)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_00190e89;\n    local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));\n  }" if (parenthesized_expression "(uVar16 == 0)" ( (binary_expression "uVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    local_68 = (uint *)0x0;\n  }" { (expression_statement "local_68 = (uint *)0x0;" (assignment_expression "local_68 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" 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_00190e89;\n    local_68 = (uint *)(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_00190e89;\n    local_68 = (uint *)(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_00190e89;" 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_00190e89;" goto statement_identifier ;)) (expression_statement "local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));" (assignment_expression "local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18))" identifier = (cast_expression "(uint *)(lVar6 + *(long *)(param_4 + 0x18))" ( (type_descriptor "uint *" 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 "uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;" (assignment_expression "uVar4 = *(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)uVar4;" (assignment_expression "uVar12 = (ulong)uVar4" identifier = (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar4 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)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 (iVar2 == 0) {\n      return;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "local_98 = (uint *)0x0;" (assignment_expression "local_98 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }" else (compound_statement "{\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }" { (if_statement "if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;" 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_00190e89;" goto statement_identifier ;)) (expression_statement "local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));" (assignment_expression "local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" identifier = (cast_expression "(uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" ( (type_descriptor "uint *" 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 (iVar2 == 0) goto LAB_00190edb;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00190edb;" 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 "uVar10 = 0;" (assignment_expression "uVar10 = 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_00190c0f:\n  do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));" statement_identifier : (do_statement "do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));" do (compound_statement "{\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  }" { (expression_statement "puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);" (assignment_expression "puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e])" identifier = (cast_expression "(ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e])" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)uVar10 * 0x20 + param_1[0x2e])" ( (binary_expression "(ulong)uVar10 * 0x20 + param_1[0x2e]" (binary_expression "(ulong)uVar10 * 0x20" (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) + (subscript_expression "param_1[0x2e]" identifier [ number_literal ])) )))) ;) (expression_statement "uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;" (assignment_expression "uVar9 = *(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 (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }" if (parenthesized_expression "(uVar9 < 0xff00)" ( (binary_expression "uVar9 < 0xff00" identifier < number_literal) )) (compound_statement "{\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }" { (labeled_statement "LAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);" statement_identifier : (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8)" identifier = (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8)" * (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8)" ( (binary_expression "*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 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)uVar9 * 8" (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;)) (expression_statement "pcVar3 = *(code **)(*plVar13 + 0x58);" (assignment_expression "pcVar3 = *(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 (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }" if (parenthesized_expression "(pcVar3 == FUN_001869e0)" ( (binary_expression "pcVar3 == FUN_001869e0" identifier == identifier) )) (compound_statement "{\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }" { (expression_statement "uVar9 = *(uint *)((long)plVar13 + 0x7c);" (assignment_expression "uVar9 = *(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 (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }" if (parenthesized_expression "(uVar9 == 0xffffffff)" ( (binary_expression "uVar9 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }" { (labeled_statement "LAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "FUN_0017c650("../../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        uVar9 = (*pcVar3)();\n      }" else (compound_statement "{\n        uVar9 = (*pcVar3)();\n      }" { (expression_statement "uVar9 = (*pcVar3)();" (assignment_expression "uVar9 = (*pcVar3)()" identifier = (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (uVar9 < 0xff00) goto LAB_00190bac;" if (parenthesized_expression "(uVar9 < 0xff00)" ( (binary_expression "uVar9 < 0xff00" identifier < number_literal) )) (goto_statement "goto LAB_00190bac;" goto statement_identifier ;)) (expression_statement "uVar8 = 0xffff;" (assignment_expression "uVar8 = 0xffff" identifier = number_literal) ;) (expression_statement "local_40 = (int)param_1[0x25] + uVar10;" (assignment_expression "local_40 = (int)param_1[0x25] + uVar10" identifier = (binary_expression "(int)param_1[0x25] + uVar10" (cast_expression "(int)param_1[0x25]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x25]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "local_3c = uVar9;" (assignment_expression "local_3c = uVar9" identifier = identifier) ;) (expression_statement "FUN_0018f7c0(lVar6 + 0x38,&local_40);" (call_expression "FUN_0018f7c0(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 = uVar9;\n        FUN_0018f7c0(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 = uVar9;\n        FUN_0018f7c0(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" (cast_expression "(uint)puVar7[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar7[3]" identifier [ number_literal ])) & number_literal)) ;) (expression_statement "local_3c = uVar9;" (assignment_expression "local_3c = uVar9" identifier = identifier) ;) (expression_statement "FUN_0018f7c0(local_58 + 0x38,&local_40);" (call_expression "FUN_0018f7c0(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 {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }" else (compound_statement "{\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }" { (if_statement "if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }" if (parenthesized_expression "(uVar9 == 0xffff)" ( (binary_expression "uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\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 "uVar9 = FUN_001bd230(lVar11,param_1,uVar10);" (assignment_expression "uVar9 = FUN_001bd230(lVar11,param_1,uVar10)" identifier = (call_expression "FUN_001bd230(lVar11,param_1,uVar10)" identifier (argument_list "(lVar11,param_1,uVar10)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_00190c36;" goto statement_identifier ;) })) (labeled_statement "LAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;" statement_identifier : (expression_statement "uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;" (assignment_expression "uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8" identifier = (binary_expression "(ushort)uVar9 << 8 | (ushort)uVar9 >> 8" (binary_expression "(ushort)uVar9 << 8" (cast_expression "(ushort)uVar9" ( (type_descriptor "ushort" type_identifier) ) identifier) << number_literal) | (binary_expression "(ushort)uVar9 >> 8" (cast_expression "(ushort)uVar9" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal))) ;)) }))) (expression_statement "puVar17 = puVar18 + 6;" (assignment_expression "puVar17 = puVar18 + 6" identifier = (binary_expression "puVar18 + 6" identifier + number_literal)) ;) (expression_statement "uVar9 = FUN_0026df00(local_a0,puVar7[1]);" (assignment_expression "uVar9 = FUN_0026df00(local_a0,puVar7[1])" identifier = (call_expression "FUN_0026df00(local_a0,puVar7[1])" identifier (argument_list "(local_a0,puVar7[1])" ( identifier , (subscript_expression "puVar7[1]" identifier [ number_literal ]) )))) ;) (expression_statement "*puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "*puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (pointer_expression "*puVar18" * identifier) = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;" (assignment_expression "*(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (pointer_expression "*(ulong *)(puVar18 + 2)" * (cast_expression "(ulong *)(puVar18 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 2)" ( (binary_expression "puVar18 + 2" identifier + number_literal) )))) = (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28" (binary_expression "uVar5 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar5 & 0xff000000000000)" ( (binary_expression "uVar5 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar5 & 0xff0000000000)" ( (binary_expression "uVar5 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00000000) >> 8" (parenthesized_expression "(uVar5 & 0xff00000000)" ( (binary_expression "uVar5 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" ( (binary_expression "uVar5 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar5 = (ulong)(uint)puVar7[2];" (assignment_expression "uVar5 = (ulong)(uint)puVar7[2]" identifier = (cast_expression "(ulong)(uint)puVar7[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)puVar7[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar7[2]" identifier [ number_literal ])))) ;) (expression_statement "*(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;" (assignment_expression "*(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38" (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 "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38" (binary_expression "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28" (binary_expression "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" ( (binary_expression "uVar5 & 0xff000000" identifier & number_literal) )) << number_literal) | (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x38" 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 "*(ushort *)((long)puVar18 + 6) = uVar8;" (assignment_expression "*(ushort *)((long)puVar18 + 6) = uVar8" (pointer_expression "*(ushort *)((long)puVar18 + 6)" * (cast_expression "(ushort *)((long)puVar18 + 6)" ( (type_descriptor "ushort *" type_identifier (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) )))) = 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 (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }" if (parenthesized_expression "(-1 < *(char *)((long)puVar7 + 0x1b))" ( (binary_expression "-1 < *(char *)((long)puVar7 + 0x1b)" number_literal < (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) ))))) )) (compound_statement "{\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }" { (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar14;" (assignment_expression "puVar15 = puVar14" identifier = identifier) ;) (if_statement "if (*(uint *)(param_1 + 0x24) <= uVar10) break;" if (parenthesized_expression "(*(uint *)(param_1 + 0x24) <= uVar10)" ( (binary_expression "*(uint *)(param_1 + 0x24) <= uVar10" (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_00190c0f;" goto statement_identifier ;) })) (if_statement "if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }" if (parenthesized_expression "((uint *)((long)local_98 + uVar12) <= puVar14)" ( (binary_expression "(uint *)((long)local_98 + uVar12) <= puVar14" (cast_expression "(uint *)((long)local_98 + uVar12)" ( (type_descriptor "uint *" 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_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }" { (expression_statement "FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");" (call_expression "FUN_0017c650("../../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 "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = FUN_0026df00(local_88,puVar7[1]);" (assignment_expression "uVar9 = FUN_0026df00(local_88,puVar7[1])" identifier = (call_expression "FUN_0026df00(local_88,puVar7[1])" identifier (argument_list "(local_88,puVar7[1])" ( identifier , (subscript_expression "puVar7[1]" identifier [ number_literal ]) )))) ;) (expression_statement "*puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "*puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (pointer_expression "*puVar14" * identifier) = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;" (assignment_expression "*(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (pointer_expression "*(ulong *)(puVar14 + 2)" * (cast_expression "(ulong *)(puVar14 + 2)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 2)" ( (binary_expression "puVar14 + 2" identifier + number_literal) )))) = (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28" (binary_expression "uVar5 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar5 & 0xff000000000000)" ( (binary_expression "uVar5 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar5 & 0xff0000000000)" ( (binary_expression "uVar5 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00000000) >> 8" (parenthesized_expression "(uVar5 & 0xff00000000)" ( (binary_expression "uVar5 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" ( (binary_expression "uVar5 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x38" identifier << number_literal))) ;) (expression_statement "uVar5 = (ulong)(uint)puVar7[2];" (assignment_expression "uVar5 = (ulong)(uint)puVar7[2]" identifier = (cast_expression "(ulong)(uint)puVar7[2]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)puVar7[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar7[2]" identifier [ number_literal ])))) ;) (expression_statement "*(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;" (assignment_expression "*(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38" (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 "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38" (binary_expression "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28" (binary_expression "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" ( (binary_expression "uVar5 & 0xff000000" identifier & number_literal) )) << number_literal) | (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar5 << 0x38" 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 "*(ushort *)((long)puVar14 + 6) = uVar8;" (assignment_expression "*(ushort *)((long)puVar14 + 6) = uVar8" (pointer_expression "*(ushort *)((long)puVar14 + 6)" * (cast_expression "(ushort *)((long)puVar14 + 6)" ( (type_descriptor "ushort *" type_identifier (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) )))) = 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) ;) }) while (parenthesized_expression "(uVar10 < *(uint *)(param_1 + 0x24))" ( (binary_expression "uVar10 < *(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_0017c650("../../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_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");\n  }" { (expression_statement "FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");" (call_expression "FUN_0017c650("../../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 ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }" if (parenthesized_expression "((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12))" ( (binary_expression "(uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)" (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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_00190edb:\n                    \n  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");" (call_expression "FUN_0017c650("../../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 IDENT ;) (declaration TYPE (pointer_declarator * 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 TYPE 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 ;) (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 { (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 (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) ))) * 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 IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) ))) * 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 ( ))) ;) (goto_statement goto statement_identifier ;) })) (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 ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (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 (cast_expression ( (type_descriptor TYPE) ) (subscript_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 (compound_statement { (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 ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (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 (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ;) })) (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) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (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 (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (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_00190930(long *param_1,undefined8 param_2,long param_3,long param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  code *pcVar3;\n  uint uVar4;\n  ulong uVar5;\n  long lVar6;\n  ulong *puVar7;\n  ushort uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  ulong uVar12;\n  long *plVar13;\n  void *__dest;\n  uint *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint *puVar18;\n  long local_a0;\n  uint *local_98;\n  long local_88;\n  uint *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\nLAB_00190e93:\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_00190ef3:\n                    \n    FUN_0017c650("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    \n    FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_00190e89:\n                    \n    FUN_00182e30();\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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_00190a88:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n    FUN_00182e10();\n    goto LAB_00190e93;\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;\n  iVar2 = (int)param_1[0x24];\n  uVar16 = iVar2 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (uint *)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_00190e89;\n    local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar4;\n  if (uVar4 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar10 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_00190c0f:\n  do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_00190edb:\n                    \n  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");\n}" (primitive_type "void") (function_declarator "FUN_00190930(long *param_1,undefined8 param_2,long param_3,long param_4)" (identifier "FUN_00190930") (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  int iVar2;\n  code *pcVar3;\n  uint uVar4;\n  ulong uVar5;\n  long lVar6;\n  ulong *puVar7;\n  ushort uVar8;\n  uint uVar9;\n  uint uVar10;\n  long lVar11;\n  ulong uVar12;\n  long *plVar13;\n  void *__dest;\n  uint *puVar14;\n  uint *puVar15;\n  uint uVar16;\n  uint *puVar17;\n  uint *puVar18;\n  long local_a0;\n  uint *local_98;\n  long local_88;\n  uint *local_68;\n  long local_58;\n  uint local_40;\n  uint local_3c;\n  \n  if (*(int *)((long)param_1 + 0x15c) == 0) {\n    return;\n  }\n  if (*(long *)(param_3 + 0x378) == 0) {\nLAB_00190e93:\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");\n  }\n  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {\nLAB_00190ef3:\n                    \n    FUN_0017c650("../../gold/output.h",0xe3,"offset");\n  }\n  lVar11 = *(long *)(lVar6 + 0x18);\n  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {\n                    \n    FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n  }\n  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {\nLAB_00190e89:\n                    \n    FUN_00182e30();\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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");\n  }\nLAB_00190a88:\n  lVar6 = *(long *)(param_3 + 0x2d0);\n  if (lVar6 == 0) {\n    FUN_00182e10();\n    goto LAB_00190e93;\n  }\n  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;\n  iVar2 = (int)param_1[0x24];\n  uVar16 = iVar2 * 0x18;\n  if (uVar16 == 0) {\n    local_68 = (uint *)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_00190e89;\n    local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));\n  }\n  uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;\n  uVar12 = (ulong)uVar4;\n  if (uVar4 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }\n  local_88 = param_3 + 0x130;\n  local_a0 = param_3 + 0xa0;\n  uVar10 = 0;\n  puVar14 = local_98;\n  puVar18 = local_68;\nLAB_00190c0f:\n  do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));\n  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");\n  }\n  if ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }\nLAB_00190edb:\n                    \n  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "ulong *puVar7;" (type_identifier "ulong") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "ushort uVar8;" (type_identifier "ushort") (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 "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (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 "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint *puVar15;" (type_identifier "uint") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint *puVar17;" (type_identifier "uint") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "uint *puVar18;" (type_identifier "uint") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "long local_a0;" (sized_type_specifier "long" (long "long")) (identifier "local_a0") (; ";")) (declaration "uint *local_98;" (type_identifier "uint") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "long local_88;" (sized_type_specifier "long" (long "long")) (identifier "local_88") (; ";")) (declaration "uint *local_68;" (type_identifier "uint") (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") (; ";")) (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) {\nLAB_00190e93:\n                    \n    FUN_0017c650("../../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 "{\nLAB_00190e93:\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");\n  }" ({ "{") (labeled_statement "LAB_00190e93:\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");" (statement_identifier "LAB_00190e93") (: ":") (expression_statement "FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate")" (identifier "FUN_0017c650") (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_00190ef3:\n                    \n    FUN_0017c650("../../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_00190ef3:\n                    \n    FUN_0017c650("../../gold/output.h",0xe3,"offset");\n  }" ({ "{") (labeled_statement "LAB_00190ef3:\n                    \n    FUN_0017c650("../../gold/output.h",0xe3,"offset");" (statement_identifier "LAB_00190ef3") (: ":") (expression_statement "FUN_0017c650("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_0017c650("../../gold/output.h",0xe3,"offset")" (identifier "FUN_0017c650") (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_0017c650("../../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_0017c650("../../gold/output.h",0xcf,"data_size");\n  }" ({ "{") (expression_statement "FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_0017c650") (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_00190e89:\n                    \n    FUN_00182e30();\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_00190e89:\n                    \n    FUN_00182e30();\n  }" ({ "{") (labeled_statement "LAB_00190e89:\n                    \n    FUN_00182e30();" (statement_identifier "LAB_00190e89") (: ":") (expression_statement "FUN_00182e30();" (call_expression "FUN_00182e30()" (identifier "FUN_00182e30") (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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_0017c650("../../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    uVar16 = *(uint *)((long)__dest + 4);\n    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);\n    if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);\n    }\n                    \n    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");\n  }" ({ "{") (expression_statement "uVar16 = *(uint *)((long)__dest + 4);" (assignment_expression "uVar16 = *(uint *)((long)__dest + 4)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)((long)__dest + 4)" (* "*") (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")) () ")"))))) (; ";")) (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8)" (identifier "plVar13") (= "=") (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8)" (* "*") (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 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)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8)" (( "(") (binary_expression "*(long *)(param_1[0x1f] + 0x90) +\n                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 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)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18) * 8" (call_expression "(ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18)" (( "(") (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |\n                               uVar16 << 0x18" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8" (binary_expression "uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8" (binary_expression "uVar16 >> 0x18" (identifier "uVar16") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar16 & 0xff0000) >> 8" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 8" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar16 << 0x18" (identifier "uVar16") (<< "<<") (number_literal "0x18"))) () ")"))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (plVar13 != (long *)0x0) {\n      uVar16 = 0;\n      do {\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 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_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 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_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      } while (plVar13 != (long *)0x0);" (do "do") (compound_statement "{\n        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }\n        uVar16 = uVar16 + 1;\n        *(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;\n        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;\n        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);\n        uVar4 = *(uint *)((long)__dest + 4);\n        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);\n      }" ({ "{") (if_statement "if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }\n        else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }" (if "if") (parenthesized_expression "(*(code **)(*plVar13 + 0x58) == FUN_001869e0)" (( "(") (binary_expression "*(code **)(*plVar13 + 0x58) == FUN_001869e0" (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_001869e0")) () ")")) (compound_statement "{\n          uVar4 = *(uint *)((long)plVar13 + 0x7c);\n          if (uVar4 == 0xffffffff) goto LAB_00190e41;\n        }" ({ "{") (expression_statement "uVar4 = *(uint *)((long)plVar13 + 0x7c);" (assignment_expression "uVar4 = *(uint *)((long)plVar13 + 0x7c)" (identifier "uVar4") (= "=") (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 (uVar4 == 0xffffffff) goto LAB_00190e41;" (if "if") (parenthesized_expression "(uVar4 == 0xffffffff)" (( "(") (binary_expression "uVar4 == 0xffffffff" (identifier "uVar4") (== "==") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_00190e41;" (goto "goto") (statement_identifier "LAB_00190e41") (; ";"))) (} "}")) (else_clause "else {\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }" (else "else") (compound_statement "{\n          uVar4 = (**(code **)(*plVar13 + 0x58))();\n        }" ({ "{") (expression_statement "uVar4 = (**(code **)(*plVar13 + 0x58))();" (assignment_expression "uVar4 = (**(code **)(*plVar13 + 0x58))()" (identifier "uVar4") (= "=") (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 "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;" (assignment_expression "*(uint *)((long)__dest + 4) =\n             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (pointer_expression "*(uint *)((long)__dest + 4)" (* "*") (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")) () ")")))) (= "=") (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" (( "(") (binary_expression "uVar4 & 0xff0000" (identifier "uVar4") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" (( "(") (binary_expression "uVar4 & 0xff00" (identifier "uVar4") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar4 << 0x18" (identifier "uVar4") (<< "<<") (number_literal "0x18")))) (; ";")) (if_statement "if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;" (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_00190a88;" (goto "goto") (statement_identifier "LAB_00190a88") (; ";"))) (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 "uVar4 = *(uint *)((long)__dest + 4);" (assignment_expression "uVar4 = *(uint *)((long)__dest + 4)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)((long)__dest + 4)" (* "*") (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")) () ")"))))) (; ";")) (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8)" (identifier "plVar13") (= "=") (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8)" (* "*") (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 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)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8)" (( "(") (binary_expression "*(long *)(param_1[0x1f] + 0x90) +\n                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 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)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18) * 8" (call_expression "(ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18)" (( "(") (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8\n                                   | uVar4 << 0x18" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8" (binary_expression "uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8" (binary_expression "uVar4 >> 0x18" (identifier "uVar4") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar4 & 0xff0000) >> 8" (parenthesized_expression "(uVar4 & 0xff0000)" (( "(") (binary_expression "uVar4 & 0xff0000" (identifier "uVar4") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar4 & 0xff00) << 8" (parenthesized_expression "(uVar4 & 0xff00)" (( "(") (binary_expression "uVar4 & 0xff00" (identifier "uVar4") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar4 << 0x18" (identifier "uVar4") (<< "<<") (number_literal "0x18"))) () ")"))) (* "*") (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_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate")" (identifier "FUN_0017c650") (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_00190a88:\n  lVar6 = *(long *)(param_3 + 0x2d0);" (statement_identifier "LAB_00190a88") (: ":") (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    FUN_00182e10();\n    goto LAB_00190e93;\n  }" (if "if") (parenthesized_expression "(lVar6 == 0)" (( "(") (binary_expression "lVar6 == 0" (identifier "lVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00182e10();\n    goto LAB_00190e93;\n  }" ({ "{") (expression_statement "FUN_00182e10();" (call_expression "FUN_00182e10()" (identifier "FUN_00182e10") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_00190e93;" (goto "goto") (statement_identifier "LAB_00190e93") (; ";")) (} "}"))) (if_statement "if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;" (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_00190ef3;" (goto "goto") (statement_identifier "LAB_00190ef3") (; ";"))) (expression_statement "iVar2 = (int)param_1[0x24];" (assignment_expression "iVar2 = (int)param_1[0x24]" (identifier "iVar2") (= "=") (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 = iVar2 * 0x18;" (assignment_expression "uVar16 = iVar2 * 0x18" (identifier "uVar16") (= "=") (binary_expression "iVar2 * 0x18" (identifier "iVar2") (* "*") (number_literal "0x18"))) (; ";")) (if_statement "if (uVar16 == 0) {\n    local_68 = (uint *)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_00190e89;\n    local_68 = (uint *)(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 = (uint *)0x0;\n  }" ({ "{") (expression_statement "local_68 = (uint *)0x0;" (assignment_expression "local_68 = (uint *)0x0" (identifier "local_68") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (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_00190e89;\n    local_68 = (uint *)(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_00190e89;\n    local_68 = (uint *)(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_00190e89;" (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_00190e89;" (goto "goto") (statement_identifier "LAB_00190e89") (; ";"))) (expression_statement "local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));" (assignment_expression "local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18))" (identifier "local_68") (= "=") (cast_expression "(uint *)(lVar6 + *(long *)(param_4 + 0x18))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (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 "uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;" (assignment_expression "uVar4 = *(int *)((long)param_1 + 0x124) * 0x18" (identifier "uVar4") (= "=") (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)uVar4;" (assignment_expression "uVar12 = (ulong)uVar4" (identifier "uVar12") (= "=") (cast_expression "(ulong)uVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar4"))) (; ";")) (if_statement "if (uVar4 == 0) {\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)0x0;\n  }\n  else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) {\n      return;\n    }\n    local_98 = (uint *)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 (iVar2 == 0) {\n      return;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_98 = (uint *)0x0;" (assignment_expression "local_98 = (uint *)0x0" (identifier "local_98") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }" (else "else") (compound_statement "{\n    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;\n    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));\n    lVar6 = *(long *)(param_3 + 0x2d8);\n    local_58 = *(long *)(param_3 + 0x2e8);\n    if (iVar2 == 0) goto LAB_00190edb;\n  }" ({ "{") (if_statement "if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;" (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_00190e89;" (goto "goto") (statement_identifier "LAB_00190e89") (; ";"))) (expression_statement "local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));" (assignment_expression "local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" (identifier "local_98") (= "=") (cast_expression "(uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (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 (iVar2 == 0) goto LAB_00190edb;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00190edb;" (goto "goto") (statement_identifier "LAB_00190edb") (; ";"))) (} "}")))) (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 "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (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_00190c0f:\n  do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));" (statement_identifier "LAB_00190c0f") (: ":") (do_statement "do {\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  } while (uVar10 < *(uint *)(param_1 + 0x24));" (do "do") (compound_statement "{\n    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);\n    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;\n    if (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }\n    puVar17 = puVar18 + 6;\n    uVar9 = FUN_0026df00(local_a0,puVar7[1]);\n    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar18 + 5) = 0;\n    *(ushort *)((long)puVar18 + 6) = uVar8;\n    *(byte *)(puVar18 + 1) = bVar1 >> 4;\n    puVar18 = puVar17;\n    if (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }\n    if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }\n    puVar15 = puVar14 + 6;\n    uVar10 = uVar10 + 1;\n    uVar9 = FUN_0026df00(local_88,puVar7[1]);\n    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n    uVar5 = *puVar7;\n    *(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;\n    uVar5 = (ulong)(uint)puVar7[2];\n    *(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;\n    bVar1 = *(byte *)((long)puVar7 + 0x17);\n    *(undefined1 *)((long)puVar14 + 5) = 0;\n    *(ushort *)((long)puVar14 + 6) = uVar8;\n    *(byte *)(puVar14 + 1) = bVar1 >> 4;\n    puVar14 = puVar15;\n  }" ({ "{") (expression_statement "puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);" (assignment_expression "puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e])" (identifier "puVar7") (= "=") (cast_expression "(ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e])" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)uVar10 * 0x20 + param_1[0x2e])" (( "(") (binary_expression "(ulong)uVar10 * 0x20 + param_1[0x2e]" (binary_expression "(ulong)uVar10 * 0x20" (cast_expression "(ulong)uVar10" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar10")) (* "*") (number_literal "0x20")) (+ "+") (subscript_expression "param_1[0x2e]" (identifier "param_1") ([ "[") (number_literal "0x2e") (] "]"))) () ")")))) (; ";")) (expression_statement "uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;" (assignment_expression "uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff" (identifier "uVar9") (= "=") (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 (uVar9 < 0xff00) {\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }\n    else {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }" (if "if") (parenthesized_expression "(uVar9 < 0xff00)" (( "(") (binary_expression "uVar9 < 0xff00" (identifier "uVar9") (< "<") (number_literal "0xff00")) () ")")) (compound_statement "{\nLAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);\n      pcVar3 = *(code **)(*plVar13 + 0x58);\n      if (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }\n      if (uVar9 < 0xff00) goto LAB_00190bac;\n      uVar8 = 0xffff;\n      local_40 = (int)param_1[0x25] + uVar10;\n      local_3c = uVar9;\n      FUN_0018f7c0(lVar6 + 0x38,&local_40);\n      if (*(char *)((long)puVar7 + 0x1b) < '\0') {\n        local_40 = (uint)puVar7[3] & 0x7fffffff;\n        local_3c = uVar9;\n        FUN_0018f7c0(local_58 + 0x38,&local_40);\n      }\n    }" ({ "{") (labeled_statement "LAB_00190c36:\n      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);" (statement_identifier "LAB_00190c36") (: ":") (expression_statement "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);" (assignment_expression "plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8)" (identifier "plVar13") (= "=") (pointer_expression "*(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8)" (* "*") (cast_expression "(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8)" (( "(") (binary_expression "*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 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)uVar9 * 8" (cast_expression "(ulong)uVar9" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar9")) (* "*") (number_literal "8"))) () ")"))))) (; ";"))) (expression_statement "pcVar3 = *(code **)(*plVar13 + 0x58);" (assignment_expression "pcVar3 = *(code **)(*plVar13 + 0x58)" (identifier "pcVar3") (= "=") (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 (pcVar3 == FUN_001869e0) {\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }\n      else {\n        uVar9 = (*pcVar3)();\n      }" (if "if") (parenthesized_expression "(pcVar3 == FUN_001869e0)" (( "(") (binary_expression "pcVar3 == FUN_001869e0" (identifier "pcVar3") (== "==") (identifier "FUN_001869e0")) () ")")) (compound_statement "{\n        uVar9 = *(uint *)((long)plVar13 + 0x7c);\n        if (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }\n      }" ({ "{") (expression_statement "uVar9 = *(uint *)((long)plVar13 + 0x7c);" (assignment_expression "uVar9 = *(uint *)((long)plVar13 + 0x7c)" (identifier "uVar9") (= "=") (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 (uVar9 == 0xffffffff) {\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }" (if "if") (parenthesized_expression "(uVar9 == 0xffffffff)" (( "(") (binary_expression "uVar9 == 0xffffffff" (identifier "uVar9") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\nLAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");\n        }" ({ "{") (labeled_statement "LAB_00190e41:\n                    \n          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");" (statement_identifier "LAB_00190e41") (: ":") (expression_statement "FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");" (call_expression "FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx")" (identifier "FUN_0017c650") (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        uVar9 = (*pcVar3)();\n      }" (else "else") (compound_statement "{\n        uVar9 = (*pcVar3)();\n      }" ({ "{") (expression_statement "uVar9 = (*pcVar3)();" (assignment_expression "uVar9 = (*pcVar3)()" (identifier "uVar9") (= "=") (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (uVar9 < 0xff00) goto LAB_00190bac;" (if "if") (parenthesized_expression "(uVar9 < 0xff00)" (( "(") (binary_expression "uVar9 < 0xff00" (identifier "uVar9") (< "<") (number_literal "0xff00")) () ")")) (goto_statement "goto LAB_00190bac;" (goto "goto") (statement_identifier "LAB_00190bac") (; ";"))) (expression_statement "uVar8 = 0xffff;" (assignment_expression "uVar8 = 0xffff" (identifier "uVar8") (= "=") (number_literal "0xffff")) (; ";")) (expression_statement "local_40 = (int)param_1[0x25] + uVar10;" (assignment_expression "local_40 = (int)param_1[0x25] + uVar10" (identifier "local_40") (= "=") (binary_expression "(int)param_1[0x25] + uVar10" (cast_expression "(int)param_1[0x25]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x25]" (identifier "param_1") ([ "[") (number_literal "0x25") (] "]"))) (+ "+") (identifier "uVar10"))) (; ";")) (expression_statement "local_3c = uVar9;" (assignment_expression "local_3c = uVar9" (identifier "local_3c") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "FUN_0018f7c0(lVar6 + 0x38,&local_40);" (call_expression "FUN_0018f7c0(lVar6 + 0x38,&local_40)" (identifier "FUN_0018f7c0") (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 = uVar9;\n        FUN_0018f7c0(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 = uVar9;\n        FUN_0018f7c0(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" (cast_expression "(uint)puVar7[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]"))) (& "&") (number_literal "0x7fffffff"))) (; ";")) (expression_statement "local_3c = uVar9;" (assignment_expression "local_3c = uVar9" (identifier "local_3c") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "FUN_0018f7c0(local_58 + 0x38,&local_40);" (call_expression "FUN_0018f7c0(local_58 + 0x38,&local_40)" (identifier "FUN_0018f7c0") (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 {\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }" (else "else") (compound_statement "{\n      if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }\nLAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;\n    }" ({ "{") (if_statement "if (uVar9 == 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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\n      }" (if "if") (parenthesized_expression "(uVar9 == 0xffff)" (( "(") (binary_expression "uVar9 == 0xffff" (identifier "uVar9") (== "==") (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        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);\n        goto LAB_00190c36;\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 "uVar9 = FUN_001bd230(lVar11,param_1,uVar10);" (assignment_expression "uVar9 = FUN_001bd230(lVar11,param_1,uVar10)" (identifier "uVar9") (= "=") (call_expression "FUN_001bd230(lVar11,param_1,uVar10)" (identifier "FUN_001bd230") (argument_list "(lVar11,param_1,uVar10)" (( "(") (identifier "lVar11") (, ",") (identifier "param_1") (, ",") (identifier "uVar10") () ")")))) (; ";")) (goto_statement "goto LAB_00190c36;" (goto "goto") (statement_identifier "LAB_00190c36") (; ";")) (} "}"))) (labeled_statement "LAB_00190bac:\n      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;" (statement_identifier "LAB_00190bac") (: ":") (expression_statement "uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;" (assignment_expression "uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8" (identifier "uVar8") (= "=") (binary_expression "(ushort)uVar9 << 8 | (ushort)uVar9 >> 8" (binary_expression "(ushort)uVar9 << 8" (cast_expression "(ushort)uVar9" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar9")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(ushort)uVar9 >> 8" (cast_expression "(ushort)uVar9" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar9")) (>> ">>") (number_literal "8")))) (; ";"))) (} "}")))) (expression_statement "puVar17 = puVar18 + 6;" (assignment_expression "puVar17 = puVar18 + 6" (identifier "puVar17") (= "=") (binary_expression "puVar18 + 6" (identifier "puVar18") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "uVar9 = FUN_0026df00(local_a0,puVar7[1]);" (assignment_expression "uVar9 = FUN_0026df00(local_a0,puVar7[1])" (identifier "uVar9") (= "=") (call_expression "FUN_0026df00(local_a0,puVar7[1])" (identifier "FUN_0026df00") (argument_list "(local_a0,puVar7[1])" (( "(") (identifier "local_a0") (, ",") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (expression_statement "*puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "*puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (pointer_expression "*puVar18" (* "*") (identifier "puVar18")) (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" (identifier "uVar5") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "*(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;" (assignment_expression "*(ulong *)(puVar18 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (pointer_expression "*(ulong *)(puVar18 + 2)" (* "*") (cast_expression "(ulong *)(puVar18 + 2)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 2)" (( "(") (binary_expression "puVar18 + 2" (identifier "puVar18") (+ "+") (number_literal "2")) () ")")))) (= "=") (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28" (binary_expression "uVar5 >> 0x38" (identifier "uVar5") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar5 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar5 & 0xff000000000000)" (( "(") (binary_expression "uVar5 & 0xff000000000000" (identifier "uVar5") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar5 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar5 & 0xff0000000000)" (( "(") (binary_expression "uVar5 & 0xff0000000000" (identifier "uVar5") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar5 & 0xff00000000) >> 8" (parenthesized_expression "(uVar5 & 0xff00000000)" (( "(") (binary_expression "uVar5 & 0xff00000000" (identifier "uVar5") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" (( "(") (binary_expression "uVar5 & 0xff000000" (identifier "uVar5") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" (( "(") (binary_expression "uVar5 & 0xff0000" (identifier "uVar5") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" (( "(") (binary_expression "uVar5 & 0xff00" (identifier "uVar5") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar5 << 0x38" (identifier "uVar5") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "uVar5 = (ulong)(uint)puVar7[2];" (assignment_expression "uVar5 = (ulong)(uint)puVar7[2]" (identifier "uVar5") (= "=") (cast_expression "(ulong)(uint)puVar7[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(uint)puVar7[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "*(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;" (assignment_expression "*(ulong *)(puVar18 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38" (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 "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38" (binary_expression "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28" (binary_expression "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" (( "(") (binary_expression "uVar5 & 0xff000000" (identifier "uVar5") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" (( "(") (binary_expression "uVar5 & 0xff0000" (identifier "uVar5") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" (( "(") (binary_expression "uVar5 & 0xff00" (identifier "uVar5") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar5 << 0x38" (identifier "uVar5") (<< "<<") (number_literal "0x38")))) (; ";")) (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 "*(ushort *)((long)puVar18 + 6) = uVar8;" (assignment_expression "*(ushort *)((long)puVar18 + 6) = uVar8" (pointer_expression "*(ushort *)((long)puVar18 + 6)" (* "*") (cast_expression "(ushort *)((long)puVar18 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (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")) () ")")))) (= "=") (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 (-1 < *(char *)((long)puVar7 + 0x1b)) {\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }" (if "if") (parenthesized_expression "(-1 < *(char *)((long)puVar7 + 0x1b))" (( "(") (binary_expression "-1 < *(char *)((long)puVar7 + 0x1b)" (number_literal "-1") (< "<") (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")) () ")"))))) () ")")) (compound_statement "{\n      uVar10 = uVar10 + 1;\n      puVar15 = puVar14;\n      if (*(uint *)(param_1 + 0x24) <= uVar10) break;\n      goto LAB_00190c0f;\n    }" ({ "{") (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = puVar14;" (assignment_expression "puVar15 = puVar14" (identifier "puVar15") (= "=") (identifier "puVar14")) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x24) <= uVar10) break;" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x24) <= uVar10)" (( "(") (binary_expression "*(uint *)(param_1 + 0x24) <= uVar10" (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 "uVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_00190c0f;" (goto "goto") (statement_identifier "LAB_00190c0f") (; ";")) (} "}"))) (if_statement "if ((uint *)((long)local_98 + uVar12) <= puVar14) {\n                    \n      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }" (if "if") (parenthesized_expression "((uint *)((long)local_98 + uVar12) <= puVar14)" (( "(") (binary_expression "(uint *)((long)local_98 + uVar12) <= puVar14" (cast_expression "(uint *)((long)local_98 + uVar12)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (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_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");\n    }" ({ "{") (expression_statement "FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate")" (identifier "FUN_0017c650") (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 "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar9 = FUN_0026df00(local_88,puVar7[1]);" (assignment_expression "uVar9 = FUN_0026df00(local_88,puVar7[1])" (identifier "uVar9") (= "=") (call_expression "FUN_0026df00(local_88,puVar7[1])" (identifier "FUN_0026df00") (argument_list "(local_88,puVar7[1])" (( "(") (identifier "local_88") (, ",") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (expression_statement "*puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "*puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar5 = *puVar7;" (assignment_expression "uVar5 = *puVar7" (identifier "uVar5") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "*(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;" (assignment_expression "*(ulong *)(puVar14 + 2) =\n         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (pointer_expression "*(ulong *)(puVar14 + 2)" (* "*") (cast_expression "(ulong *)(puVar14 + 2)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 2)" (( "(") (binary_expression "puVar14 + 2" (identifier "puVar14") (+ "+") (number_literal "2")) () ")")))) (= "=") (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |\n         (uVar5 & 0xff00) << 0x28" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |\n         (uVar5 & 0xff00000000) >> 8" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18" (binary_expression "uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28" (binary_expression "uVar5 >> 0x38" (identifier "uVar5") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar5 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar5 & 0xff000000000000)" (( "(") (binary_expression "uVar5 & 0xff000000000000" (identifier "uVar5") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar5 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar5 & 0xff0000000000)" (( "(") (binary_expression "uVar5 & 0xff0000000000" (identifier "uVar5") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar5 & 0xff00000000) >> 8" (parenthesized_expression "(uVar5 & 0xff00000000)" (( "(") (binary_expression "uVar5 & 0xff00000000" (identifier "uVar5") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" (( "(") (binary_expression "uVar5 & 0xff000000" (identifier "uVar5") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" (( "(") (binary_expression "uVar5 & 0xff0000" (identifier "uVar5") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" (( "(") (binary_expression "uVar5 & 0xff00" (identifier "uVar5") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar5 << 0x38" (identifier "uVar5") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "uVar5 = (ulong)(uint)puVar7[2];" (assignment_expression "uVar5 = (ulong)(uint)puVar7[2]" (identifier "uVar5") (= "=") (cast_expression "(ulong)(uint)puVar7[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(uint)puVar7[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "*(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38;" (assignment_expression "*(ulong *)(puVar14 + 4) =\n         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38" (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 "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |\n         uVar5 << 0x38" (binary_expression "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28" (binary_expression "(uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18" (binary_expression "(uVar5 & 0xff000000) << 8" (parenthesized_expression "(uVar5 & 0xff000000)" (( "(") (binary_expression "uVar5 & 0xff000000" (identifier "uVar5") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8")) (| "|") (binary_expression "(uVar5 & 0xff0000) << 0x18" (parenthesized_expression "(uVar5 & 0xff0000)" (( "(") (binary_expression "uVar5 & 0xff0000" (identifier "uVar5") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar5 & 0xff00) << 0x28" (parenthesized_expression "(uVar5 & 0xff00)" (( "(") (binary_expression "uVar5 & 0xff00" (identifier "uVar5") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar5 << 0x38" (identifier "uVar5") (<< "<<") (number_literal "0x38")))) (; ";")) (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 "*(ushort *)((long)puVar14 + 6) = uVar8;" (assignment_expression "*(ushort *)((long)puVar14 + 6) = uVar8" (pointer_expression "*(ushort *)((long)puVar14 + 6)" (* "*") (cast_expression "(ushort *)((long)puVar14 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (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")) () ")")))) (= "=") (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")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar10 < *(uint *)(param_1 + 0x24))" (( "(") (binary_expression "uVar10 < *(uint *)(param_1 + 0x24)" (identifier "uVar10") (< "<") (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_0017c650("../../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_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");\n  }" ({ "{") (expression_statement "FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate")" (identifier "FUN_0017c650") (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 ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {\n    return;\n  }" (if "if") (parenthesized_expression "((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12))" (( "(") (binary_expression "(uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)" (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (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_00190edb:\n                    \n  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");" (statement_identifier "LAB_00190edb") (: ":") (expression_statement "FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");" (call_expression "FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate")" (identifier "FUN_0017c650") (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,_true> * this, Symbol_table *
   param_1, Layout * layout, Output_file * of) */

void __thiscall
var_11::var_1<64,var_22>::do_relocate
          (var_1<64,var_22> *this,Symbol_table *param_1,type_13 *layout,type_9 *of)

{
  type_21 var_5;
  type_1 *pOVar2;
  type_2 *var_20;
  type_3 *var_26;
  type_4 var_19;
  int iVar6;
  type_5 *pOVar7;
  type_6 sVar8;
  type_7 var_33;
  type_8 extraout_var;
  type_9 *pOVar10;
  type_9 *this_1;
  type_10 pLVar11;
  size_t var_6;
  type_11 uVar12;
  type_4 var_25;
  type_4 var_23;
  type_12 *var_8;
  type_9 *__src;
  type_13 *var_15;
  var_1<64,var_22> *var_35;
  type_13 *__dest;
  type_4 *var_34;
  type_4 *puVar18;
  type_4 var_14;
  type_4 *puVar20;
  type_4 *var_31;
  type_14 *local_a0;
  type_4 *local_98;
  type_14 *local_88;
  type_4 *local_68;
  type_5 *local_58;
  var_2<var_3,var_27> local_40 [2];
  type_15 *var_28;
  type_7 var_9;
  
  if (this->incr_reloc_count_ == 0) {
    return;
  }
  if (layout->incremental_inputs_ == (type_16 *)0x0) {
LAB_00190e93:
                    /* 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_00190ef3:
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/output.h",0xe3,"offset");
  }
  __src = (type_9 *)
          (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_9 *)(type_7)(var_5 & 2);
  var_35 = this;
  if (((long)__src < 0) ||
     (var_6 = (long)&__src->name_ + var_6, this_1 = of, of->file_size_ < (long)var_6)) {
LAB_00190e89:
                    /* WARNING: Subroutine does not return */
    Output_file::var_7((type_9 *)var_35,(type_17)__src,var_6,this_1);
  }
  var_8 = (type_12 *)((long)&__src->name_ + (long)of->base_);
  var_9 = (type_7)(this->incr_reloc_output_index_ * 0x18);
  __dest = (type_13 *)(var_8 + var_9);
  __src = (type_9 *)this->incr_relocs_;
  var_15 = __dest;
  var_10(__dest,__src,(type_7)(this->incr_reloc_count_ * 0x18));
  if (this->incr_reloc_count_ != 0) {
    var_14 = *(type_4 *)&__dest->field_0x4;
    var_15 = (type_13 *)
              (this->ibase_->section_map_).
              super__Vector_base<var_11::type_2*,var_12::allocator<var_11::type_2*>var_13>.
              _M_impl._M_start
              [var_14 >> 0x18 | (var_14 & 0xff0000) >> 8 | (var_14 & 0xff00) << 8 | var_14 << 0x18];
    if (var_15 != (type_13 *)0x0) {
      var_14 = 0;
      do {
        if (*(type_18 **)(*(long *)var_15 + 0x58) == type_2::do_out_shndx) {
          var_19 = *(type_4 *)((long)&(var_15->namepool_).strings_.
                                   super__List_base<var_11::var_16<var_17>::var_18*,var_12::allocator<var_11::var_16<var_17>::var_18*>var_13>
                                   ._M_impl._M_node._M_size + 4);
          if (var_19 == 0xffffffff) goto LAB_00190e41;
        }
        else {
          var_19 = (**(type_18 **)(*(long *)var_15 + 0x58))();
        }
        var_14 = var_14 + 1;
        *(type_4 *)&__dest->field_0x4 =
             var_19 >> 0x18 | (var_19 & 0xff0000) >> 8 | (var_19 & 0xff00) << 8 | var_19 << 0x18;
        if (this->incr_reloc_count_ <= var_14) goto LAB_00190a88;
        __dest = (type_13 *)(var_8 + var_14 * 0x18 + var_9);
        var_19 = *(type_4 *)&__dest->field_0x4;
        var_15 = (type_13 *)
                  (this->ibase_->section_map_).
                  super__Vector_base<var_11::type_2*,var_12::allocator<var_11::type_2*>var_13>.
                  _M_impl._M_start
                  [var_19 >> 0x18 | (var_19 & 0xff0000) >> 8 | (var_19 & 0xff00) << 8 | var_19 << 0x18];
      } while (var_15 != (type_13 *)0x0);
    }
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/incremental.cc",0xa12,"do_relocate");
  }
LAB_00190a88:
  var_20 = layout->symtab_section_;
  if (var_20 == (type_2 *)0x0) {
    Layout::var_21(var_15);
    goto LAB_00190e93;
  }
  if (((var_20->super_Output_data).field_0x20 & 4) == 0) goto LAB_00190ef3;
  var_19 = this->local_symbol_count_;
  var_6 = (size_t)var_19;
  var_14 = var_19 * 0x18;
  var_35 = (var_1<64,var_22> *)(type_7)var_14;
  if (var_14 == 0) {
    local_68 = (type_4 *)0x0;
  }
  else {
    pOVar10 = (type_9 *)
              ((type_7)this->local_symbol_offset_ + (var_20->super_Output_data).offset_);
    this_1 = pOVar10;
    if (((long)pOVar10 < 0) ||
       (this_1 = (type_9 *)((long)&pOVar10->name_ + (long)var_35), __src = of,
       of->file_size_ < (long)this_1)) goto LAB_00190e89;
    local_68 = (type_4 *)((long)&pOVar10->name_ + (long)of->base_);
  }
  var_23 = this->output_local_dynsym_count_ * 0x18;
  var_9 = (type_7)var_23;
  if (var_23 == 0) {
    pOVar7 = layout->symtab_xindex_;
    local_58 = layout->dynsym_xindex_;
    if (var_19 == 0) {
      return;
    }
    local_98 = (type_4 *)0x0;
  }
  else {
    this_1 = (type_9 *)(type_7)this->local_dynsym_offset_;
    __src = of;
    if (of->file_size_ < (long)((long)&this_1->name_ + var_9)) goto LAB_00190e89;
    local_98 = (type_4 *)((long)&this_1->name_ + (long)of->base_);
    pOVar7 = layout->symtab_xindex_;
    local_58 = layout->dynsym_xindex_;
    if (var_19 == 0) goto LAB_00190edb;
  }
  local_88 = &layout->dynpool_;
  local_a0 = &layout->sympool_;
  var_19 = 0;
  var_34 = local_98;
  var_31 = local_68;
LAB_00190c0f:
  do {
    pLVar11 = (this->local_symbols_).
              super__Vector_base<var_11::var_1<64,var_22>::var_24,var_12::allocator<var_11::var_1<64,var_22>::var_24>var_13>
              ._M_impl._M_start + var_19;
    var_25 = *(type_4 *)&pLVar11->field_0x14 & 0xfffffff;
    if (var_25 < 0xff00) {
LAB_00190c36:
      var_20 = (this->ibase_->section_map_).
               super__Vector_base<var_11::type_2*,var_12::allocator<var_11::type_2*>var_13>.
               _M_impl._M_start[var_25];
      var_26 = (var_20->super_Output_data)._vptr_Output_data[0xb];
      if (var_26 == type_2::do_out_shndx) {
        var_25 = var_20->out_shndx_;
        if (var_25 == 0xffffffff) {
LAB_00190e41:
                    /* WARNING: Subroutine does not return */
          var_4("../../gold/output.h",0x1043,"do_out_shndx");
        }
      }
      else {
        var_25 = (*var_26)();
      }
      if (var_25 < 0xff00) goto LAB_00190bac;
      uVar12 = 0xffff;
      local_40[0].first = this->local_symbol_index_ + var_19;
      local_40[0].second = var_25;
      std::
      vector<std::var_2<var_3,var_27>,var_12::allocator<std::var_2<var_3,var_27>var_13>var_13>
      ::emplace_back<std::var_2<var_3,var_27>var_13>(&pOVar7->entries_,local_40);
      if ((char)pLVar11->field_0x1b < '\0') {
        local_40[0].first = *(type_4 *)&pLVar11->field_0x18 & 0x7fffffff;
        local_40[0].second = var_25;
        std::
        vector<std::var_2<var_3,var_27>,var_12::allocator<std::var_2<var_3,var_27>var_13>var_13>
        ::emplace_back<std::var_2<var_3,var_27>var_13>(&local_58->entries_,local_40);
      }
    }
    else {
      if (var_25 == 0xffff) {
        var_28 = (this->super_Sized_relobj<64,var_22>).super_Relobj.super_Object.xindex_;
        if (var_28 == (type_15 *)0x0) {
          iVar6 = (*(this->super_Sized_relobj<64,var_22>).super_Relobj.super_Object._vptr_Object
                    [0x1b])(this);
          var_28 = (type_15 *)var_29(extraout_var,iVar6);
          (this->super_Sized_relobj<64,var_22>).super_Relobj.super_Object.xindex_ = var_28;
        }
        var_25 = type_15::var_30(var_28,(type_19 *)this,var_19);
        goto LAB_00190c36;
      }
LAB_00190bac:
      uVar12 = (type_11)var_25 << 8 | (type_11)var_25 >> 8;
    }
    puVar20 = var_31 + 6;
    sVar8 = var_16<var_17>::var_32(local_a0,pLVar11->name);
    var_25 = (type_4)sVar8;
    *var_31 = var_25 >> 0x18 | (var_25 & 0xff0000) >> 8 | (var_25 & 0xff00) << 8 | var_25 << 0x18;
    var_33 = pLVar11->st_value;
    *(type_7 *)(var_31 + 2) =
         var_33 >> 0x38 | (var_33 & 0xff000000000000) >> 0x28 | (var_33 & 0xff0000000000) >> 0x18 |
         (var_33 & 0xff00000000) >> 8 | (var_33 & 0xff000000) << 8 | (var_33 & 0xff0000) << 0x18 |
         (var_33 & 0xff00) << 0x28 | var_33 << 0x38;
    var_33 = (type_7)pLVar11->st_size;
    *(type_7 *)(var_31 + 4) =
         (var_33 & 0xff000000) << 8 | (var_33 & 0xff0000) << 0x18 | (var_33 & 0xff00) << 0x28 |
         var_33 << 0x38;
    var_5 = pLVar11->field_0x17;
    *(type_20 *)((long)var_31 + 5) = 0;
    *(type_11 *)((long)var_31 + 6) = uVar12;
    *(type_21 *)(var_31 + 1) = var_5 >> 4;
    var_31 = puVar20;
    if (-1 < (char)pLVar11->field_0x1b) {
      var_19 = var_19 + 1;
      puVar18 = var_34;
      if (this->local_symbol_count_ <= var_19) break;
      goto LAB_00190c0f;
    }
    if ((type_4 *)((long)local_98 + var_9) <= var_34) {
                    /* WARNING: Subroutine does not return */
      var_4("../../gold/incremental.cc",0xa53,"do_relocate");
    }
    puVar18 = var_34 + 6;
    var_19 = var_19 + 1;
    sVar8 = var_16<var_17>::var_32(local_88,pLVar11->name);
    var_25 = (type_4)sVar8;
    *var_34 = var_25 >> 0x18 | (var_25 & 0xff0000) >> 8 | (var_25 & 0xff00) << 8 | var_25 << 0x18;
    var_33 = pLVar11->st_value;
    *(type_7 *)(var_34 + 2) =
         var_33 >> 0x38 | (var_33 & 0xff000000000000) >> 0x28 | (var_33 & 0xff0000000000) >> 0x18 |
         (var_33 & 0xff00000000) >> 8 | (var_33 & 0xff000000) << 8 | (var_33 & 0xff0000) << 0x18 |
         (var_33 & 0xff00) << 0x28 | var_33 << 0x38;
    var_33 = (type_7)pLVar11->st_size;
    *(type_7 *)(var_34 + 4) =
         (var_33 & 0xff000000) << 8 | (var_33 & 0xff0000) << 0x18 | (var_33 & 0xff00) << 0x28 |
         var_33 << 0x38;
    var_5 = pLVar11->field_0x17;
    *(type_20 *)((long)var_34 + 5) = 0;
    *(type_11 *)((long)var_34 + 6) = uVar12;
    *(type_21 *)(var_34 + 1) = var_5 >> 4;
    var_34 = puVar18;
  } while (var_19 < this->local_symbol_count_);
  if ((var_14 != 0) && ((var_1<64,var_22> *)((long)puVar20 - (long)local_68) != var_35))
  {
                    /* WARNING: Subroutine does not return */
    var_4("../../gold/incremental.cc",0xa62,"do_relocate");
  }
  if ((var_23 == 0) || ((long)puVar18 - (long)local_98 == var_9)) {
    return;
  }
LAB_00190edb:
                    /* 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: (primitive_type) 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: (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: (type_identifier) 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)) (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 (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: (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: (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: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) 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: (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: (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: (identifier) right: (binary_expression left: (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: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (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: (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: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) 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))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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))))))) (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: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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 (compound_statement (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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) 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: (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: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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))) (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: (number_literal) 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))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) 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)))) (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: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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))) (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)))) 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;
  int iVar2;
  code *pcVar3;
  uint uVar4;
  ulong uVar5;
  long lVar6;
  ulong *puVar7;
  ushort uVar8;
  uint uVar9;
  uint uVar10;
  long lVar11;
  ulong uVar12;
  long *plVar13;
  void *__dest;
  uint *puVar14;
  uint *puVar15;
  uint uVar16;
  uint *puVar17;
  uint *puVar18;
  long local_a0;
  uint *local_98;
  long local_88;
  uint *local_68;
  long local_58;
  uint local_40;
  uint local_3c;
  
  if (*(int *)((long)param_1 + 0x15c) == 0) {
    return;
  }
  if (*(long *)(param_3 + 0x378) == 0) {
LAB_00190e93:
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/incremental.cc",0xa01,"do_relocate");
  }
  lVar6 = *(long *)(*(long *)(param_3 + 0x378) + 0x68);
  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) {
LAB_00190ef3:
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/output.h",0xe3,"offset");
  }
  lVar11 = *(long *)(lVar6 + 0x18);
  if ((*(byte *)(lVar6 + 0x20) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/output.h",0xcf,"data_size");
  }
  if ((lVar11 < 0) || (*(long *)(param_4 + 0x10) < *(long *)(lVar6 + 0x10) + lVar11)) {
LAB_00190e89:
                    /* WARNING: Subroutine does not return */
    FUN_00182e30();
  }
  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) {
    uVar16 = *(uint *)((long)__dest + 4);
    plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +
                        (ulong)(uVar16 >> 0x18 | (uVar16 & 0xff0000) >> 8 | (uVar16 & 0xff00) << 8 |
                               uVar16 << 0x18) * 8);
    if (plVar13 != (long *)0x0) {
      uVar16 = 0;
      do {
        if (*(code **)(*plVar13 + 0x58) == FUN_001869e0) {
          uVar4 = *(uint *)((long)plVar13 + 0x7c);
          if (uVar4 == 0xffffffff) goto LAB_00190e41;
        }
        else {
          uVar4 = (**(code **)(*plVar13 + 0x58))();
        }
        uVar16 = uVar16 + 1;
        *(uint *)((long)__dest + 4) =
             uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8 | uVar4 << 0x18;
        if (*(uint *)((long)param_1 + 0x15c) <= uVar16) goto LAB_00190a88;
        __dest = (void *)(uVar16 * 0x18 + uVar12 + lVar11);
        uVar4 = *(uint *)((long)__dest + 4);
        plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) +
                            (ulong)(uVar4 >> 0x18 | (uVar4 & 0xff0000) >> 8 | (uVar4 & 0xff00) << 8
                                   | uVar4 << 0x18) * 8);
      } while (plVar13 != (long *)0x0);
    }
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/incremental.cc",0xa12,"do_relocate");
  }
LAB_00190a88:
  lVar6 = *(long *)(param_3 + 0x2d0);
  if (lVar6 == 0) {
    FUN_00182e10();
    goto LAB_00190e93;
  }
  if ((*(byte *)(lVar6 + 0x20) & 4) == 0) goto LAB_00190ef3;
  iVar2 = (int)param_1[0x24];
  uVar16 = iVar2 * 0x18;
  if (uVar16 == 0) {
    local_68 = (uint *)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_00190e89;
    local_68 = (uint *)(lVar6 + *(long *)(param_4 + 0x18));
  }
  uVar4 = *(int *)((long)param_1 + 0x124) * 0x18;
  uVar12 = (ulong)uVar4;
  if (uVar4 == 0) {
    lVar6 = *(long *)(param_3 + 0x2d8);
    local_58 = *(long *)(param_3 + 0x2e8);
    if (iVar2 == 0) {
      return;
    }
    local_98 = (uint *)0x0;
  }
  else {
    if (*(long *)(param_4 + 0x10) < (long)(*(uint *)(param_1 + 0x26) + uVar12)) goto LAB_00190e89;
    local_98 = (uint *)((ulong)*(uint *)(param_1 + 0x26) + *(long *)(param_4 + 0x18));
    lVar6 = *(long *)(param_3 + 0x2d8);
    local_58 = *(long *)(param_3 + 0x2e8);
    if (iVar2 == 0) goto LAB_00190edb;
  }
  local_88 = param_3 + 0x130;
  local_a0 = param_3 + 0xa0;
  uVar10 = 0;
  puVar14 = local_98;
  puVar18 = local_68;
LAB_00190c0f:
  do {
    puVar7 = (ulong *)((ulong)uVar10 * 0x20 + param_1[0x2e]);
    uVar9 = *(uint *)((long)puVar7 + 0x14) & 0xfffffff;
    if (uVar9 < 0xff00) {
LAB_00190c36:
      plVar13 = *(long **)(*(long *)(param_1[0x1f] + 0x90) + (ulong)uVar9 * 8);
      pcVar3 = *(code **)(*plVar13 + 0x58);
      if (pcVar3 == FUN_001869e0) {
        uVar9 = *(uint *)((long)plVar13 + 0x7c);
        if (uVar9 == 0xffffffff) {
LAB_00190e41:
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/output.h",0x1043,"do_out_shndx");
        }
      }
      else {
        uVar9 = (*pcVar3)();
      }
      if (uVar9 < 0xff00) goto LAB_00190bac;
      uVar8 = 0xffff;
      local_40 = (int)param_1[0x25] + uVar10;
      local_3c = uVar9;
      FUN_0018f7c0(lVar6 + 0x38,&local_40);
      if (*(char *)((long)puVar7 + 0x1b) < '\0') {
        local_40 = (uint)puVar7[3] & 0x7fffffff;
        local_3c = uVar9;
        FUN_0018f7c0(local_58 + 0x38,&local_40);
      }
    }
    else {
      if (uVar9 == 0xffff) {
        lVar11 = param_1[8];
        if (lVar11 == 0) {
          lVar11 = (**(code **)(*param_1 + 0xd8))(param_1);
          param_1[8] = lVar11;
        }
        uVar9 = FUN_001bd230(lVar11,param_1,uVar10);
        goto LAB_00190c36;
      }
LAB_00190bac:
      uVar8 = (ushort)uVar9 << 8 | (ushort)uVar9 >> 8;
    }
    puVar17 = puVar18 + 6;
    uVar9 = FUN_0026df00(local_a0,puVar7[1]);
    *puVar18 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
    uVar5 = *puVar7;
    *(ulong *)(puVar18 + 2) =
         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |
         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |
         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;
    uVar5 = (ulong)(uint)puVar7[2];
    *(ulong *)(puVar18 + 4) =
         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |
         uVar5 << 0x38;
    bVar1 = *(byte *)((long)puVar7 + 0x17);
    *(undefined1 *)((long)puVar18 + 5) = 0;
    *(ushort *)((long)puVar18 + 6) = uVar8;
    *(byte *)(puVar18 + 1) = bVar1 >> 4;
    puVar18 = puVar17;
    if (-1 < *(char *)((long)puVar7 + 0x1b)) {
      uVar10 = uVar10 + 1;
      puVar15 = puVar14;
      if (*(uint *)(param_1 + 0x24) <= uVar10) break;
      goto LAB_00190c0f;
    }
    if ((uint *)((long)local_98 + uVar12) <= puVar14) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/incremental.cc",0xa53,"do_relocate");
    }
    puVar15 = puVar14 + 6;
    uVar10 = uVar10 + 1;
    uVar9 = FUN_0026df00(local_88,puVar7[1]);
    *puVar14 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
    uVar5 = *puVar7;
    *(ulong *)(puVar14 + 2) =
         uVar5 >> 0x38 | (uVar5 & 0xff000000000000) >> 0x28 | (uVar5 & 0xff0000000000) >> 0x18 |
         (uVar5 & 0xff00000000) >> 8 | (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 |
         (uVar5 & 0xff00) << 0x28 | uVar5 << 0x38;
    uVar5 = (ulong)(uint)puVar7[2];
    *(ulong *)(puVar14 + 4) =
         (uVar5 & 0xff000000) << 8 | (uVar5 & 0xff0000) << 0x18 | (uVar5 & 0xff00) << 0x28 |
         uVar5 << 0x38;
    bVar1 = *(byte *)((long)puVar7 + 0x17);
    *(undefined1 *)((long)puVar14 + 5) = 0;
    *(ushort *)((long)puVar14 + 6) = uVar8;
    *(byte *)(puVar14 + 1) = bVar1 >> 4;
    puVar14 = puVar15;
  } while (uVar10 < *(uint *)(param_1 + 0x24));
  if ((uVar16 != 0) && ((long)puVar17 - (long)local_68 != (ulong)uVar16)) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/incremental.cc",0xa62,"do_relocate");
  }
  if ((uVar4 == 0) || ((long)puVar15 - (long)local_98 == uVar12)) {
    return;
  }
LAB_00190edb:
                    /* WARNING: Subroutine does not return */
  FUN_0017c650("../../gold/incremental.cc",0xa69,"do_relocate");
}

