
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: void do_write(Gdb_index * this, Output_file * of) */

void __thiscall gold::Gdb_index::do_write(Gdb_index *this,Output_file *of)

{
  pointer pPVar1;
  byte bVar2;
  uint uVar3;
  pointer pCVar4;
  Relobj *pRVar5;
  Dwarf_range_list *pDVar6;
  _func_int_varargs *p_Var7;
  pointer ppOVar8;
  pointer pRVar9;
  Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *pGVar10;
  Gdb_symbol **ppGVar11;
  Gdb_symbol *pGVar12;
  pointer ppVar13;
  off_t oVar14;
  off_t oVar15;
  off_t oVar16;
  uchar *puVar17;
  uint *buffer;
  uint uVar18;
  uint uVar19;
  Output_section *pOVar20;
  pointer pPVar21;
  uint uVar22;
  pointer ppvVar23;
  int iVar24;
  uint *puVar25;
  int iVar26;
  pointer pCVar27;
  pointer pCVar28;
  pointer pTVar29;
  int extraout_EDX;
  uint uVar30;
  uint uVar31;
  uchar *puVar32;
  int iVar33;
  pointer ppvVar34;
  int iVar35;
  uint *puVar36;
  pointer local_54;
  int local_50;
  uint local_30;
  
  bVar2 = (this->super_Output_section_data).super_Output_data.field_0x1c;
  if ((bVar2 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0xe3,"offset");
  }
  uVar31 = (uint)(this->super_Output_section_data).super_Output_data.offset_;
  iVar26 = *(int *)((int)&(this->super_Output_section_data).super_Output_data.offset_ + 4);
  if ((bVar2 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
  }
  uVar3 = (uint)(this->super_Output_section_data).super_Output_data.data_size_;
  if ((iVar26 < 0) ||
     (iVar35 = *(int *)((int)&of->file_size_ + 4), iVar26 = iVar26 + (uint)CARRY4(uVar3,uVar31),
     uVar22 = (uint)((uint)of->file_size_ < uVar3 + uVar31), iVar24 = iVar35 - iVar26,
     (SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0)) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");
  }
  iVar26 = (int)this->tu_offset_;
  puVar17 = of->base_ + uVar31;
  iVar35 = *(int *)((int)&this->tu_offset_ + 4);
  puVar17[0] = '\a';
  puVar17[1] = '\0';
  puVar17[2] = '\0';
  puVar17[3] = '\0';
  pCVar4 = (this->comp_units_).
           super__Vector_base<gold::Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>
           ._M_impl._M_start;
  puVar17[4] = '\x18';
  puVar17[5] = '\0';
  puVar17[6] = '\0';
  puVar17[7] = '\0';
  pCVar27 = (this->comp_units_).
            super__Vector_base<gold::Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>
            ._M_impl._M_finish;
  *(int *)(puVar17 + 8) = iVar26;
  iVar24 = (int)pCVar27 - (int)pCVar4;
  iVar33 = iVar24 >> 4;
  *(int *)(puVar17 + 0xc) = (int)this->addr_offset_;
  *(int *)(puVar17 + 0x10) = (int)this->symtab_offset_;
  *(int *)(puVar17 + 0x14) = (int)this->cu_pool_offset_;
  buffer = (uint *)(puVar17 + 0x18);
  local_54 = (pointer)0x18;
  if (iVar33 != 0) {
    pCVar27 = pCVar4;
    puVar25 = buffer;
    do {
      uVar31 = *(uint *)((int)&pCVar27->cu_offset + 4);
      pCVar28 = pCVar27 + 1;
      *puVar25 = (uint)pCVar27->cu_offset;
      puVar25[1] = uVar31;
      uVar31 = *(uint *)((int)&pCVar27->cu_length + 4);
      puVar25[2] = (uint)pCVar27->cu_length;
      puVar25[3] = uVar31;
      pCVar27 = pCVar28;
      puVar25 = puVar25 + 4;
    } while ((pointer)((int)pCVar4 + iVar24) != pCVar28);
    buffer = (uint *)((int)buffer + iVar24);
    local_54 = (pointer)((int)buffer - (int)puVar17);
    iVar26 = (int)this->tu_offset_;
    iVar35 = *(int *)((int)&this->tu_offset_ + 4);
  }
  local_50 = (int)local_54 >> 0x1f;
  if (iVar35 != local_50 || local_54 != (pointer)iVar26) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/gdb-index.cc",0x4ee,"do_write");
  }
  pTVar29 = (this->type_units_).
            super__Vector_base<gold::Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>
            ._M_impl._M_start;
  iVar26 = (int)(this->type_units_).
                super__Vector_base<gold::Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>
                ._M_impl._M_finish - (int)pTVar29;
  if ((iVar26 >> 3) * -0x55555555 != 0) {
    puVar25 = (uint *)(iVar26 + (int)buffer);
    do {
      uVar31 = *(uint *)((int)&pTVar29->tu_offset + 4);
      puVar36 = buffer + 6;
      *buffer = (uint)pTVar29->tu_offset;
      buffer[1] = uVar31;
      uVar31 = *(uint *)((int)&pTVar29->type_offset + 4);
      buffer[2] = (uint)pTVar29->type_offset;
      buffer[3] = uVar31;
      uVar31 = *(uint *)((int)&pTVar29->type_signature + 4);
      buffer[4] = (uint)pTVar29->type_signature;
      buffer[5] = uVar31;
      buffer = puVar36;
      pTVar29 = pTVar29 + 1;
    } while (puVar36 != puVar25);
    local_54 = (pointer)((int)puVar25 - (int)puVar17);
    local_50 = (int)local_54 >> 0x1f;
    buffer = puVar25;
  }
  if (*(int *)((int)&this->addr_offset_ + 4) != local_50 ||
      (pointer)(int)this->addr_offset_ != local_54) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/gdb-index.cc",0x4fa,"do_write");
  }
  pPVar21 = (this->ranges_).
            super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>
            ._M_impl._M_start;
  if (pPVar21 !=
      (this->ranges_).
      super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>
      ._M_impl._M_finish) {
    local_30 = 0;
    do {
      pPVar1 = pPVar21 + local_30;
      uVar31 = pPVar1->cu_index;
      uVar22 = (iVar33 + -1) - uVar31;
      if (-1 < (int)uVar31) {
        uVar22 = uVar31;
      }
      pRVar5 = pPVar1->object;
      pDVar6 = pPVar1->ranges;
      local_54 = (pDVar6->range_list_).
                 super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>
                 ._M_impl._M_start;
      if ((pDVar6->range_list_).
          super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>
          ._M_impl._M_finish != local_54) {
        uVar31 = 0;
        puVar25 = buffer;
        do {
          pRVar9 = local_54 + uVar31;
          uVar30 = pRVar9->shndx;
          if (uVar30 == 0) {
            uVar19 = 0;
            iVar26 = 0;
          }
          else {
            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];
            if (p_Var7 == Relobj::do_output_section) {
              ppOVar8 = (pRVar5->output_sections_).
                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                        ._M_impl._M_start;
              if ((uint)((int)(pRVar5->output_sections_).
                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");
              }
              pOVar20 = ppOVar8[uVar30];
            }
            else {
              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);
            }
            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/output.h",0xc5,"address");
            }
            uVar30 = (uint)(pOVar20->super_Output_data).address_;
            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);
            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);
            uVar19 = uVar18 + uVar30;
            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);
            local_54 = (pDVar6->range_list_).
                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>
                       ._M_impl._M_start;
          }
          oVar14 = pRVar9->start;
          oVar15 = pRVar9->start;
          iVar35 = *(int *)((int)&pRVar9->start + 4);
          oVar16 = pRVar9->end;
          iVar24 = *(int *)((int)&pRVar9->end + 4);
          uVar31 = uVar31 + 1;
          puVar25[2] = uVar19 + (int)pRVar9->end;
          buffer = puVar25 + 5;
          puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);
          puVar25[4] = uVar22;
          *puVar25 = uVar19 + (int)oVar15;
          pRVar9 = (pDVar6->range_list_).
                   super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>
                   ._M_impl._M_finish;
          puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);
          puVar25 = buffer;
        } while (uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333));
        pPVar21 = (this->ranges_).
                  super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>
                  ._M_impl._M_start;
      }
      local_30 = local_30 + 1;
    } while (local_30 <
             (uint)(((int)(this->ranges_).
                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>
                          ._M_impl._M_finish - (int)pPVar21 >> 2) * -0x55555555));
    local_54 = (pointer)((int)buffer - (int)puVar17);
    local_50 = (int)local_54 >> 0x1f;
  }
  if (*(int *)((int)&this->symtab_offset_ + 4) != local_50 ||
      (pointer)(int)this->symtab_offset_ != local_54) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/gdb-index.cc",0x518,"do_write");
  }
  pGVar10 = this->gdb_symtab_;
  if (pGVar10->capacity_ != 0) {
    ppGVar11 = pGVar10->hashtab_;
    uVar31 = 0;
    puVar25 = buffer;
    do {
      pGVar12 = ppGVar11[uVar31];
      if (pGVar12 == (Gdb_symbol *)0x0) {
        uVar30 = 0;
        uVar22 = 0;
      }
      else {
        if ((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");
        }
        uVar22 = pGVar12->name_key - 1;
        uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +
                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.
                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>
                               ._M_impl._M_start[uVar22 >> 0xd].
                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +
                         (uVar22 & 0x1fff) * 4);
        uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index);
      }
      puVar25[1] = uVar22;
      buffer = puVar25 + 2;
      uVar31 = uVar31 + 1;
      *puVar25 = uVar30;
      puVar25 = buffer;
    } while (uVar31 < pGVar10->capacity_);
    local_54 = (pointer)((int)buffer - (int)puVar17);
    local_50 = (int)local_54 >> 0x1f;
  }
  if (*(int *)((int)&this->cu_pool_offset_ + 4) != local_50 ||
      (pointer)(int)this->cu_pool_offset_ != local_54) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/gdb-index.cc",0x52b,"do_write");
  }
  ppvVar34 = (this->cu_vector_list_).
             super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>
             ._M_impl._M_start;
  uVar31 = (int)(this->cu_vector_list_).
                super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>
                ._M_impl._M_finish - (int)ppvVar34;
  if (uVar31 >> 2 != 0) {
    ppvVar23 = (pointer)(uVar31 + (int)ppvVar34);
    do {
      ppVar13 = ((*ppvVar34)->
                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>
                )._M_impl._M_start;
      uVar31 = (int)((*ppvVar34)->
                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>
                    )._M_impl._M_finish - (int)ppVar13 >> 3;
      *buffer = uVar31;
      puVar25 = buffer + 1;
      if (uVar31 != 0) {
        puVar32 = &ppVar13->second;
        puVar36 = buffer + 1;
        do {
          uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;
          if ((int)uVar22 < 0) {
            uVar22 = (iVar33 + -1) - uVar22;
          }
          bVar2 = *puVar32;
          puVar25 = puVar36 + 1;
          puVar32 = puVar32 + 8;
          *puVar36 = (uint)bVar2 << 0x18 | uVar22;
          puVar36 = puVar25;
        } while (puVar25 != buffer + uVar31 + 1);
      }
      buffer = puVar25;
      ppvVar34 = ppvVar34 + 1;
    } while (ppvVar23 != ppvVar34);
    local_54 = (pointer)((int)buffer - (int)puVar17);
    local_50 = (int)local_54 >> 0x1f;
  }
  iVar26 = (int)this->stringpool_offset_;
  if (*(int *)((int)&this->stringpool_offset_ + 4) != local_50 || local_54 != (pointer)iVar26) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/gdb-index.cc",0x53f,"do_write");
  }
  Stringpool_template<char>::write_to_buffer(&this->stringpool_,(uchar *)buffer,uVar3 - iVar26);
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_000d5e50(int param_1,int param_2)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  longlong lVar7;
  undefined4 *puVar8;
  uint *puVar9;
  uint uVar10;
  uint uVar11;
  int *piVar12;
  int iVar13;
  uint *puVar14;
  uint *puVar15;
  int iVar16;
  uint *puVar17;
  uint uVar18;
  uint *puVar19;
  byte *pbVar20;
  int iVar21;
  int *piVar22;
  uint uVar23;
  longlong lVar24;
  uint local_54;
  uint local_50;
  uint local_30;
  
  bVar1 = *(byte *)(param_1 + 0x1c);
  if ((bVar1 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);
  }
  uVar23 = *(uint *)(param_1 + 0x14);
  iVar13 = *(int *)(param_1 + 0x18);
  if ((bVar1 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/output.h",0xcf,"data_size");
  }
  uVar2 = *(uint *)(param_1 + 0xc);
  if ((iVar13 < 0) ||
     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),
     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),
     iVar21 = *(int *)(param_2 + 0xc) - iVar16,
     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=
     (int)(iVar21 - uVar11) < 0)) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);
  }
  uVar11 = *(uint *)(param_1 + 0xf4);
  puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);
  uVar23 = *(uint *)(param_1 + 0xf8);
  *puVar8 = 7;
  puVar15 = *(uint **)(param_1 + 0x70);
  puVar8[1] = 0x18;
  iVar13 = *(int *)(param_1 + 0x74);
  puVar8[2] = uVar11;
  iVar13 = iVar13 - (int)puVar15;
  iVar21 = iVar13 >> 4;
  puVar8[3] = *(undefined4 *)(param_1 + 0xfc);
  puVar8[4] = *(undefined4 *)(param_1 + 0x104);
  puVar8[5] = *(undefined4 *)(param_1 + 0x10c);
  puVar9 = puVar8 + 6;
  local_54 = 0x18;
  if (iVar21 != 0) {
    puVar14 = puVar15;
    puVar19 = puVar9;
    do {
      uVar23 = puVar14[1];
      puVar17 = puVar14 + 4;
      *puVar19 = *puVar14;
      puVar19[1] = uVar23;
      uVar23 = puVar14[3];
      puVar19[2] = puVar14[2];
      puVar19[3] = uVar23;
      puVar14 = puVar17;
      puVar19 = puVar19 + 4;
    } while ((uint *)((int)puVar15 + iVar13) != puVar17);
    puVar9 = (uint *)((int)puVar9 + iVar13);
    local_54 = (int)puVar9 - (int)puVar8;
    uVar11 = *(uint *)(param_1 + 0xf4);
    uVar23 = *(uint *)(param_1 + 0xf8);
  }
  local_50 = (int)local_54 >> 0x1f;
  uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;
  if (uVar23 != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);
  }
  iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);
  if ((iVar13 >> 3) * -0x55555555 != 0) {
    puVar14 = (uint *)(iVar13 + (int)puVar9);
    puVar15 = *(uint **)(param_1 + 0x7c);
    do {
      uVar23 = puVar15[1];
      puVar19 = puVar9 + 6;
      *puVar9 = *puVar15;
      puVar9[1] = uVar23;
      uVar23 = puVar15[3];
      puVar9[2] = puVar15[2];
      puVar9[3] = uVar23;
      uVar23 = puVar15[5];
      puVar9[4] = puVar15[4];
      puVar9[5] = uVar23;
      puVar9 = puVar19;
      puVar15 = puVar15 + 6;
    } while (puVar19 != puVar14);
    local_54 = (int)puVar14 - (int)puVar8;
    local_50 = (int)local_54 >> 0x1f;
    puVar9 = puVar14;
  }
  if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);
  }
  iVar13 = *(int *)(param_1 + 0x88);
  if (iVar13 != *(int *)(param_1 + 0x8c)) {
    local_30 = 0;
    do {
      piVar22 = (int *)(iVar13 + local_30 * 0xc);
      uVar23 = piVar22[1];
      uVar11 = (iVar21 + -1) - uVar23;
      if (-1 < (int)uVar23) {
        uVar11 = uVar23;
      }
      piVar12 = (int *)*piVar22;
      piVar22 = (int *)piVar22[2];
      local_54 = *piVar22;
      if (piVar22[1] != local_54) {
        uVar23 = 0;
        puVar15 = puVar9;
        do {
          puVar9 = (uint *)(local_54 + uVar23 * 0x14);
          uVar18 = *puVar9;
          if (uVar18 == 0) {
            lVar24 = 0;
          }
          else {
            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {
              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {
                    /* WARNING: Subroutine does not return */
                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");
              }
              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);
            }
            else {
              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);
            }
            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_000da200("../../gold/output.h",0xc5,"address");
            }
            lVar7 = *(longlong *)(iVar13 + 4);
            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);
            lVar24 = lVar24 + lVar7;
            local_54 = *piVar22;
          }
          iVar16 = (int)((ulonglong)lVar24 >> 0x20);
          uVar10 = (uint)lVar24;
          uVar3 = puVar9[1];
          uVar18 = puVar9[1];
          uVar4 = puVar9[2];
          uVar5 = puVar9[3];
          uVar6 = puVar9[4];
          uVar23 = uVar23 + 1;
          puVar15[2] = uVar10 + puVar9[3];
          puVar9 = puVar15 + 5;
          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);
          puVar15[4] = uVar11;
          *puVar15 = uVar10 + uVar18;
          iVar13 = piVar22[1];
          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);
          puVar15 = puVar9;
        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));
        iVar13 = *(int *)(param_1 + 0x88);
      }
      local_30 = local_30 + 1;
    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));
    local_54 = (int)puVar9 - (int)puVar8;
    local_50 = (int)local_54 >> 0x1f;
  }
  if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);
  }
  iVar13 = *(int *)(param_1 + 0x94);
  if (*(int *)(iVar13 + 4) != 0) {
    iVar16 = *(int *)(iVar13 + 8);
    uVar23 = 0;
    puVar15 = puVar9;
    do {
      puVar9 = *(uint **)(iVar16 + uVar23 * 4);
      if (puVar9 == (uint *)0x0) {
        uVar18 = 0;
        uVar11 = 0;
      }
      else {
        if (*(uint *)(param_1 + 0xd0) < *puVar9) {
                    /* WARNING: Subroutine does not return */
          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");
        }
        uVar11 = *puVar9 - 1;
        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +
                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +
                         (uVar11 & 0x1fff) * 4);
        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);
      }
      puVar15[1] = uVar11;
      puVar9 = puVar15 + 2;
      uVar23 = uVar23 + 1;
      *puVar15 = uVar18;
      puVar15 = puVar9;
    } while (uVar23 < *(uint *)(iVar13 + 4));
    local_54 = (int)puVar9 - (int)puVar8;
    local_50 = (int)local_54 >> 0x1f;
  }
  uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;
  if (uVar23 != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);
  }
  piVar22 = *(int **)(param_1 + 0x98);
  uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;
  if (uVar23 >> 2 != 0) {
    piVar12 = (int *)(uVar23 + (int)piVar22);
    do {
      iVar13 = *(int *)*piVar22;
      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;
      *puVar9 = uVar23;
      puVar15 = puVar9 + 1;
      if (uVar23 != 0) {
        pbVar20 = (byte *)(iVar13 + 4);
        puVar14 = puVar9 + 1;
        do {
          uVar11 = *(uint *)(pbVar20 + -4);
          if ((int)uVar11 < 0) {
            uVar11 = (iVar21 + -1) - uVar11;
          }
          bVar1 = *pbVar20;
          puVar15 = puVar14 + 1;
          pbVar20 = pbVar20 + 8;
          *puVar14 = (uint)bVar1 << 0x18 | uVar11;
          puVar14 = puVar15;
        } while (puVar15 != puVar9 + uVar23 + 1);
      }
      puVar9 = puVar15;
      piVar22 = piVar22 + 1;
    } while (piVar12 != piVar22);
    local_54 = (int)puVar9 - (int)puVar8;
    local_50 = (int)local_54 >> 0x1f;
  }
  uVar23 = *(uint *)(param_1 + 0x114);
  if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);
  }
  FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);
  return;
}


CALL 0x000b4846
ADD EAX,0x33e1ab
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x4c
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV ECX,dword ptr [ESP + 0x64]
MOVZX EAX,byte ptr [EAX + 0x1c]
TEST AL,0x4
JZ 0x000d6439
MOV EBX,dword ptr [ESP + 0x60]
MOV ESI,dword ptr [EBX + 0x14]
MOV EDI,dword ptr [EBX + 0x18]
TEST AL,0x2
JZ 0x000d63e2
MOV EAX,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x3c],EAX
TEST EDI,EDI
JS 0x000d6473
XOR EDX,EDX
MOV EBX,dword ptr [ECX + 0xc]
ADD EAX,ESI
ADC EDX,EDI
CMP dword ptr [ECX + 0x8],EAX
SBB EBX,EDX
JL 0x000d6473
MOV EBX,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [ECX + 0x10]
MOV ECX,dword ptr [ESP + 0x60]
MOV EDI,dword ptr [EBX + 0xf4]
ADD EAX,ESI
MOV ESI,dword ptr [EBX + 0xf8]
MOV dword ptr [EAX],0x7
MOV EBX,EAX
MOV EDX,dword ptr [ECX + 0x70]
MOV dword ptr [EAX + 0x4],0x18
MOV ECX,dword ptr [ECX + 0x74]
MOV dword ptr [EAX + 0x8],EDI
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x8],ECX
SUB ECX,EDX
MOV EAX,dword ptr [EAX + 0xfc]
MOV EBP,ECX
SAR EBP,0x4
MOV dword ptr [EBX + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x34],EBP
MOV EAX,dword ptr [EAX + 0x104]
MOV dword ptr [EBX + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [EAX + 0x10c]
MOV dword ptr [EBX + 0x14],EAX
LEA EAX,[EBX + 0x18]
MOV EBX,0x18
JZ 0x000d5f69
LEA ESI,[EDX + ECX*0x1]
MOV EBX,EAX
LEA ESI,[ESI]
MOV EDI,dword ptr [EDX]
MOV EBP,dword ptr [EDX + 0x4]
ADD EDX,0x10
ADD EBX,0x10
MOV dword ptr [EBX + -0x10],EDI
MOV dword ptr [EBX + -0xc],EBP
MOV EDI,dword ptr [EDX + -0x8]
MOV EBP,dword ptr [EDX + -0x4]
MOV dword ptr [EBX + -0x8],EDI
MOV dword ptr [EBX + -0x4],EBP
CMP ESI,EDX
JNZ 0x000d5f30
MOV ESI,dword ptr [ESP + 0x60]
ADD EAX,ECX
MOV EBX,EAX
SUB EBX,dword ptr [ESP + 0x38]
MOV EDI,dword ptr [ESI + 0xf4]
MOV ESI,dword ptr [ESI + 0xf8]
MOV ECX,EBX
MOV dword ptr [ESP + 0x8],EBX
XOR EBX,EDI
SAR ECX,0x1f
XOR ESI,ECX
MOV dword ptr [ESP + 0xc],ECX
OR ESI,EBX
JNZ 0x000d63ff
MOV EBX,dword ptr [ESP + 0x60]
MOV EDX,dword ptr [EBX + 0x7c]
MOV EBX,dword ptr [EBX + 0x80]
MOV ECX,EBX
MOV dword ptr [ESP + 0x10],EBX
SUB ECX,EDX
MOV EBX,ECX
SAR EBX,0x3
IMUL EBX,EBX,-0x55555555
TEST EBX,EBX
JZ 0x000d639d
ADD ECX,EAX
LEA ESI,[ESI]
MOV ESI,dword ptr [EDX]
MOV EDI,dword ptr [EDX + 0x4]
ADD EAX,0x18
ADD EDX,0x18
MOV dword ptr [EAX + -0x18],ESI
MOV dword ptr [EAX + -0x14],EDI
MOV ESI,dword ptr [EDX + -0x10]
MOV EDI,dword ptr [EDX + -0xc]
MOV dword ptr [EAX + -0x10],ESI
MOV dword ptr [EAX + -0xc],EDI
MOV ESI,dword ptr [EDX + -0x8]
MOV EDI,dword ptr [EDX + -0x4]
MOV dword ptr [EAX + -0x8],ESI
MOV dword ptr [EAX + -0x4],EDI
CMP EAX,ECX
JNZ 0x000d5fb0
MOV EAX,ECX
SUB EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x8],EAX
SAR EAX,0x1f
MOV dword ptr [ESP + 0xc],EAX
MOV EBX,dword ptr [ESP + 0x60]
MOV EDI,dword ptr [ESP + 0x8]
MOV EBP,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EBX + 0xfc]
MOV EDX,dword ptr [EBX + 0x100]
XOR EAX,EDI
XOR EDX,EBP
OR EDX,EAX
JNZ 0x000d6456
MOV EAX,dword ptr [ESP + 0x60]
MOV EBX,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [EAX + 0x88]
CMP EAX,dword ptr [EBX + 0x8c]
JZ 0x000d61d1
MOV dword ptr [ESP + 0x2c],0x0
MOV EBP,ECX
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EBX,dword ptr [ESP + 0x2c]
MOV ECX,dword ptr [ESP + 0x34]
LEA EDX,[EBX + EBX*0x2]
SUB ECX,0x1
LEA EDX,[EAX + EDX*0x4]
MOV EBX,dword ptr [EDX + 0x4]
SUB ECX,EBX
TEST EBX,EBX
CMOVNS ECX,EBX
MOV EBX,dword ptr [EDX]
MOV dword ptr [ESP + 0x20],EBX
MOV EBX,dword ptr [EDX + 0x8]
MOV dword ptr [ESP + 0x24],ECX
MOV dword ptr [ESP + 0x1c],EBX
MOV ECX,dword ptr [EBX]
CMP dword ptr [EBX + 0x4],ECX
JZ 0x000d6192
MOV EAX,dword ptr [ESP + 0x30]
XOR EBX,EBX
MOV dword ptr [ESP + 0x8],ECX
LEA EAX,[EAX + 0xffc91850]
MOV dword ptr [ESP + 0x28],EAX
JMP 0x000d6148
MOV EDI,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [EDI]
MOV EDX,dword ptr [EDX + 0x60]
CMP EDX,dword ptr [ESP + 0x28]
JNZ 0x000d6170
MOV ESI,dword ptr [EDI + 0x3c]
MOV ECX,dword ptr [EDI + 0x38]
MOV EDX,ESI
MOV dword ptr [ESP + 0x8],ESI
SUB EDX,ECX
SAR EDX,0x2
CMP EAX,EDX
JNC 0x000d63c3
MOV EAX,dword ptr [ECX + EAX*0x4]
TEST byte ptr [EAX + 0x1c],0x1
JZ 0x000d63a4
SUB ESP,0x8
MOV ESI,dword ptr [EAX + 0x4]
MOV EDI,dword ptr [EAX + 0x8]
MOV EDX,dword ptr [ESP + 0x28]
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EDX]
PUSH dword ptr [ECX]
PUSH EDX
CALL dword ptr [EAX + 0x68]
ADD EAX,ESI
ADC EDX,EDI
ADD ESP,0x10
MOV ESI,dword ptr [ESP + 0x1c]
MOV EDI,dword ptr [ESI]
MOV dword ptr [ESP + 0x8],EDI
MOV ECX,dword ptr [ESP + 0x10]
MOV ESI,EAX
MOV EDI,EDX
ADD ESI,dword ptr [ECX + 0x4]
ADC EDI,dword ptr [ECX + 0x8]
ADD EAX,dword ptr [ECX + 0xc]
ADC EDX,dword ptr [ECX + 0x10]
MOV dword ptr [ESP + 0x10],ESI
ADD EBX,0x1
MOV dword ptr [EBP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x24]
ADD EBP,0x14
MOV ESI,dword ptr [ESP + 0x10]
MOV dword ptr [EBP + -0x10],EDI
MOV dword ptr [EBP + -0x4],EAX
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [EBP + -0x14],ESI
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + -0x8],EDX
MOV dword ptr [ESP + 0x14],EDI
MOV dword ptr [ESP + 0x10],EAX
SUB EAX,dword ptr [ESP + 0x8]
SAR EAX,0x2
IMUL EAX,EAX,-0x33333333
CMP EBX,EAX
JNC 0x000d6188
MOV ECX,dword ptr [ESP + 0x8]
LEA EAX,[EBX + EBX*0x4]
LEA EAX,[ECX + EAX*0x4]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x000d6090
XOR EAX,EAX
XOR EDX,EDX
JMP 0x000d60f3
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x2c]
CALL EDX
ADD ESP,0x10
JMP 0x000d60bf
MOV EAX,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [EAX + 0x88]
MOV ESI,dword ptr [ESP + 0x60]
ADD dword ptr [ESP + 0x2c],0x1
MOV EBX,dword ptr [ESP + 0x2c]
MOV ECX,dword ptr [ESI + 0x8c]
MOV EDX,ECX
MOV dword ptr [ESP + 0x8],ECX
SUB EDX,EAX
SAR EDX,0x2
IMUL EDX,EDX,-0x55555555
CMP EBX,EDX
JC 0x000d6040
MOV EAX,EBP
SUB EAX,dword ptr [ESP + 0x38]
MOV ECX,EBP
MOV dword ptr [ESP + 0x8],EAX
SAR EAX,0x1f
MOV dword ptr [ESP + 0xc],EAX
MOV EBX,dword ptr [ESP + 0x60]
MOV EDI,dword ptr [ESP + 0x8]
MOV EBP,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EBX + 0x104]
MOV EDX,dword ptr [EBX + 0x108]
XOR EAX,EDI
XOR EDX,EBP
OR EDX,EAX
JNZ 0x000d641c
MOV EAX,dword ptr [ESP + 0x60]
MOV EDI,dword ptr [EAX + 0x94]
MOV EDX,dword ptr [EDI + 0x4]
TEST EDX,EDX
JZ 0x000d629f
MOV EBP,dword ptr [EDI + 0x8]
MOV dword ptr [ESP + 0x10],EDI
XOR ESI,ESI
MOV EDI,EAX
MOV dword ptr [ESP + 0x8],EBP
JMP 0x000d627d
MOV EAX,dword ptr [EBX]
CMP EAX,dword ptr [EDI + 0xd0]
JA 0x000d64c7
SUB EAX,0x1
MOV EBP,dword ptr [EDI + 0xc4]
MOV EBX,dword ptr [EBX + 0x8]
MOV EDX,EAX
AND EAX,0x1fff
SHR EDX,0xd
LEA EDX,[EDX + EDX*0x2]
LEA EDX,[EBP + EDX*0x4]
MOV EDX,dword ptr [EDX]
MOV EBP,EDX
MOV EDX,dword ptr [EDI + 0x114]
SUB EDX,dword ptr [EDI + 0x10c]
ADD EDX,dword ptr [EBP + EAX*0x4]
MOV EAX,dword ptr [EDI + 0xa4]
MOV EAX,dword ptr [EAX + EBX*0x8]
MOV dword ptr [ECX + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x10]
ADD ECX,0x8
ADD ESI,0x1
MOV dword ptr [ECX + -0x8],EDX
CMP ESI,dword ptr [EAX + 0x4]
JNC 0x000d628e
MOV EAX,dword ptr [ESP + 0x8]
MOV EBX,dword ptr [EAX + ESI*0x4]
TEST EBX,EBX
JNZ 0x000d6220
XOR EDX,EDX
XOR EAX,EAX
JMP 0x000d6268
MOV EAX,ECX
SUB EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x8],EAX
SAR EAX,0x1f
MOV dword ptr [ESP + 0xc],EAX
MOV EBX,dword ptr [ESP + 0x60]
MOV EDI,dword ptr [ESP + 0x8]
MOV EBP,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EBX + 0x10c]
MOV EDX,dword ptr [EBX + 0x110]
XOR EAX,EDI
XOR EDX,EBP
OR EDX,EAX
JNZ 0x000d64aa
MOV EAX,dword ptr [ESP + 0x60]
MOV EDI,dword ptr [EAX + 0x98]
MOV EAX,dword ptr [EAX + 0x9c]
MOV dword ptr [ESP + 0x10],EAX
SUB EAX,EDI
MOV EBX,EAX
SHR EBX,0x2
JZ 0x000d634d
ADD EAX,EDI
MOV ESI,dword ptr [ESP + 0x34]
MOV EBP,EDI
MOV dword ptr [ESP + 0x8],EAX
SUB ESI,0x1
NOP
MOV EAX,dword ptr [EBP]
LEA EDI,[ECX + 0x4]
MOV EBX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x4]
SUB EAX,EBX
SAR EAX,0x3
MOV dword ptr [ECX],EAX
JZ 0x000d6331
ADD EBX,0x4
LEA ECX,[ECX + EAX*0x4 + 0x4]
LEA ESI,[ESI]
NOP
MOV EDX,dword ptr [EBX + -0x4]
MOV EAX,ESI
SUB EAX,EDX
TEST EDX,EDX
CMOVS EDX,EAX
MOVZX EAX,byte ptr [EBX]
ADD EDI,0x4
ADD EBX,0x8
SHL EAX,0x18
OR EAX,EDX
MOV dword ptr [EDI + -0x4],EAX
CMP EDI,ECX
JNZ 0x000d6310
MOV ECX,EDI
ADD EBP,0x4
CMP dword ptr [ESP + 0x8],EBP
JNZ 0x000d62f0
MOV EAX,EDI
SUB EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x8],EAX
SAR EAX,0x1f
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV ESI,dword ptr [ESP + 0x60]
MOV EDI,dword ptr [ESP + 0x8]
MOV EBP,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x114]
MOV EBX,dword ptr [ESI + 0x118]
MOV EDX,EDI
XOR EDX,EAX
XOR EBX,EBP
OR EBX,EDX
JNZ 0x000d648d
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x40]
SUB EBX,EAX
PUSH EBX
PUSH ECX
MOV EAX,dword ptr [ESP + 0x6c]
ADD EAX,0xa8
PUSH EAX
MOV EBX,dword ptr [ESP + 0x40]
CALL 0x001e09f0
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ECX,EAX
JMP 0x000d5fee
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x34]
LEA EAX,[EBX + 0xffee6400]
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0xc5
PUSH EAX
CALL 0x000da200
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x34]
LEA EAX,[EBX + 0xffee6408]
PUSH EAX
LEA EAX,[EBX + 0xffee2e48]
PUSH 0x5c8
PUSH EAX
CALL 0x000da200
PUSH EBP
MOV EBX,dword ptr [ESP + 0x34]
LEA EAX,[EBX + 0xffee642c]
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0xcf
PUSH EAX
CALL 0x000da200
PUSH ESI
MOV EBX,dword ptr [ESP + 0x34]
LEA EAX,[EBX + 0xffee6440]
PUSH EAX
LEA EAX,[EBX + 0xffee603e]
PUSH 0x4ee
PUSH EAX
CALL 0x000da200
PUSH ECX
MOV EBX,dword ptr [ESP + 0x34]
LEA EAX,[EBX + 0xffee6440]
PUSH EAX
LEA EAX,[EBX + 0xffee603e]
PUSH 0x518
PUSH EAX
CALL 0x000da200
PUSH EAX
MOV EBX,dword ptr [ESP + 0x34]
LEA EAX,[EBX + 0xffee6438]
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0xe3
PUSH EAX
CALL 0x000da200
PUSH EBX
MOV EBX,dword ptr [ESP + 0x34]
LEA EAX,[EBX + 0xffee6440]
PUSH EAX
LEA EAX,[EBX + 0xffee603e]
PUSH 0x4fa
PUSH EAX
CALL 0x000da200
PUSH EDI
MOV EBX,dword ptr [ESP + 0x34]
LEA EAX,[EBX + 0xffee641c]
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0x6f
PUSH EAX
CALL 0x000da200
PUSH EAX
MOV EBX,dword ptr [ESP + 0x34]
LEA EAX,[EBX + 0xffee6440]
PUSH EAX
LEA EAX,[EBX + 0xffee603e]
PUSH 0x53f
PUSH EAX
CALL 0x000da200
PUSH EDX
MOV EBX,dword ptr [ESP + 0x34]
LEA EAX,[EBX + 0xffee6440]
PUSH EAX
LEA EAX,[EBX + 0xffee603e]
PUSH 0x52b
PUSH EAX
CALL 0x000da200
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x34]
LEA EAX,[EBX + 0xffee63ec]
PUSH EAX
LEA EAX,[EBX + 0xffee6026]
PUSH 0x108
PUSH EAX
CALL 0x000da200
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_000d5e50(int param_1,int param_2)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  longlong lVar7;\n  undefined4 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint uVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  uint *puVar15;\n  int iVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  int iVar21;\n  int *piVar22;\n  uint uVar23;\n  longlong lVar24;\n  uint local_54;\n  uint local_50;\n  uint local_30;\n  \n  bVar1 = *(byte *)(param_1 + 0x1c);\n  if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }\n  uVar23 = *(uint *)(param_1 + 0x14);\n  iVar13 = *(int *)(param_1 + 0x18);\n  if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0xcf,"data_size");\n  }\n  uVar2 = *(uint *)(param_1 + 0xc);\n  if ((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }\n  uVar11 = *(uint *)(param_1 + 0xf4);\n  puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);\n  uVar23 = *(uint *)(param_1 + 0xf8);\n  *puVar8 = 7;\n  puVar15 = *(uint **)(param_1 + 0x70);\n  puVar8[1] = 0x18;\n  iVar13 = *(int *)(param_1 + 0x74);\n  puVar8[2] = uVar11;\n  iVar13 = iVar13 - (int)puVar15;\n  iVar21 = iVar13 >> 4;\n  puVar8[3] = *(undefined4 *)(param_1 + 0xfc);\n  puVar8[4] = *(undefined4 *)(param_1 + 0x104);\n  puVar8[5] = *(undefined4 *)(param_1 + 0x10c);\n  puVar9 = puVar8 + 6;\n  local_54 = 0x18;\n  if (iVar21 != 0) {\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }\n  local_50 = (int)local_54 >> 0x1f;\n  uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;\n  if (uVar23 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }\n  iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);\n  if ((iVar13 >> 3) * -0x55555555 != 0) {\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }\n  if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }\n  iVar13 = *(int *)(param_1 + 0x88);\n  if (iVar13 != *(int *)(param_1 + 0x8c)) {\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }\n  iVar13 = *(int *)(param_1 + 0x94);\n  if (*(int *)(iVar13 + 4) != 0) {\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;\n  if (uVar23 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }\n  piVar22 = *(int **)(param_1 + 0x98);\n  uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;\n  if (uVar23 >> 2 != 0) {\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x114);\n  if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }\n  FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);\n  return;\n}\n\n" comment (function_definition "void FUN_000d5e50(int param_1,int param_2)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  longlong lVar7;\n  undefined4 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint uVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  uint *puVar15;\n  int iVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  int iVar21;\n  int *piVar22;\n  uint uVar23;\n  longlong lVar24;\n  uint local_54;\n  uint local_50;\n  uint local_30;\n  \n  bVar1 = *(byte *)(param_1 + 0x1c);\n  if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }\n  uVar23 = *(uint *)(param_1 + 0x14);\n  iVar13 = *(int *)(param_1 + 0x18);\n  if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0xcf,"data_size");\n  }\n  uVar2 = *(uint *)(param_1 + 0xc);\n  if ((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }\n  uVar11 = *(uint *)(param_1 + 0xf4);\n  puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);\n  uVar23 = *(uint *)(param_1 + 0xf8);\n  *puVar8 = 7;\n  puVar15 = *(uint **)(param_1 + 0x70);\n  puVar8[1] = 0x18;\n  iVar13 = *(int *)(param_1 + 0x74);\n  puVar8[2] = uVar11;\n  iVar13 = iVar13 - (int)puVar15;\n  iVar21 = iVar13 >> 4;\n  puVar8[3] = *(undefined4 *)(param_1 + 0xfc);\n  puVar8[4] = *(undefined4 *)(param_1 + 0x104);\n  puVar8[5] = *(undefined4 *)(param_1 + 0x10c);\n  puVar9 = puVar8 + 6;\n  local_54 = 0x18;\n  if (iVar21 != 0) {\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }\n  local_50 = (int)local_54 >> 0x1f;\n  uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;\n  if (uVar23 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }\n  iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);\n  if ((iVar13 >> 3) * -0x55555555 != 0) {\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }\n  if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }\n  iVar13 = *(int *)(param_1 + 0x88);\n  if (iVar13 != *(int *)(param_1 + 0x8c)) {\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }\n  iVar13 = *(int *)(param_1 + 0x94);\n  if (*(int *)(iVar13 + 4) != 0) {\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;\n  if (uVar23 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }\n  piVar22 = *(int **)(param_1 + 0x98);\n  uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;\n  if (uVar23 >> 2 != 0) {\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x114);\n  if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }\n  FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);\n  return;\n}" primitive_type (function_declarator "FUN_000d5e50(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  longlong lVar7;\n  undefined4 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint uVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  uint *puVar15;\n  int iVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  int iVar21;\n  int *piVar22;\n  uint uVar23;\n  longlong lVar24;\n  uint local_54;\n  uint local_50;\n  uint local_30;\n  \n  bVar1 = *(byte *)(param_1 + 0x1c);\n  if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }\n  uVar23 = *(uint *)(param_1 + 0x14);\n  iVar13 = *(int *)(param_1 + 0x18);\n  if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0xcf,"data_size");\n  }\n  uVar2 = *(uint *)(param_1 + 0xc);\n  if ((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }\n  uVar11 = *(uint *)(param_1 + 0xf4);\n  puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);\n  uVar23 = *(uint *)(param_1 + 0xf8);\n  *puVar8 = 7;\n  puVar15 = *(uint **)(param_1 + 0x70);\n  puVar8[1] = 0x18;\n  iVar13 = *(int *)(param_1 + 0x74);\n  puVar8[2] = uVar11;\n  iVar13 = iVar13 - (int)puVar15;\n  iVar21 = iVar13 >> 4;\n  puVar8[3] = *(undefined4 *)(param_1 + 0xfc);\n  puVar8[4] = *(undefined4 *)(param_1 + 0x104);\n  puVar8[5] = *(undefined4 *)(param_1 + 0x10c);\n  puVar9 = puVar8 + 6;\n  local_54 = 0x18;\n  if (iVar21 != 0) {\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }\n  local_50 = (int)local_54 >> 0x1f;\n  uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;\n  if (uVar23 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }\n  iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);\n  if ((iVar13 >> 3) * -0x55555555 != 0) {\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }\n  if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }\n  iVar13 = *(int *)(param_1 + 0x88);\n  if (iVar13 != *(int *)(param_1 + 0x8c)) {\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }\n  iVar13 = *(int *)(param_1 + 0x94);\n  if (*(int *)(iVar13 + 4) != 0) {\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;\n  if (uVar23 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }\n  piVar22 = *(int **)(param_1 + 0x98);\n  uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;\n  if (uVar23 >> 2 != 0) {\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x114);\n  if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }\n  FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "longlong lVar24;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "bVar1 = *(byte *)(param_1 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x1c)" identifier = (pointer_expression "*(byte *)(param_1 + 0x1c)" * (cast_expression "(byte *)(param_1 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }" { comment (expression_statement "FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);" (call_expression "FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1)" identifier (argument_list "("../../gold/output.h",0xe3,"offset",bVar1)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar23 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar23 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../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    FUN_000da200("../../gold/output.h",0xcf,"data_size");\n  }" { comment (expression_statement "FUN_000da200("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_000da200("../../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 "uVar2 = *(uint *)(param_1 + 0xc);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0xc)" identifier = (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }" if (parenthesized_expression "((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0))" ( (binary_expression "(iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)" (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) || (parenthesized_expression "(iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)" ( (comma_expression "iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0" (assignment_expression "iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23)" identifier = (binary_expression "iVar13 + (uint)CARRY4(uVar2,uVar23)" identifier + (cast_expression "(uint)CARRY4(uVar2,uVar23)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar2,uVar23)" identifier (argument_list "(uVar2,uVar23)" ( identifier , identifier )))))) , (comma_expression "uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0" (assignment_expression "uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23)" identifier = (call_expression "(uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_2 + 8) < uVar2 + uVar23)" ( (binary_expression "*(uint *)(param_2 + 8) < uVar2 + uVar23" (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) < (binary_expression "uVar2 + uVar23" identifier + identifier)) )))) , (comma_expression "iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0" (assignment_expression "iVar21 = *(int *)(param_2 + 0xc) - iVar16" identifier = (binary_expression "*(int *)(param_2 + 0xc) - iVar16" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) - identifier)) , (binary_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11))" ( (binary_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)" (call_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar16)" identifier (argument_list "(*(int *)(param_2 + 0xc),iVar16)" ( (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) , identifier ))) != (call_expression "SBORROW4(iVar21,uVar11)" identifier (argument_list "(iVar21,uVar11)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar21 - uVar11) < 0" (cast_expression "(int)(iVar21 - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar21 - uVar11)" ( (binary_expression "iVar21 - uVar11" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }" { comment (expression_statement "FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);" (call_expression "FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13)" identifier (argument_list "("../../gold/output.h",0x6f,"get_output_view",iVar13)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""get_output_view"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar11 = *(uint *)(param_1 + 0xf4);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0xf4)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf4)" * (cast_expression "(uint *)(param_1 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);" (assignment_expression "puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23)" identifier = (cast_expression "(undefined4 *)(*(int *)(param_2 + 0x10) + uVar23)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x10) + uVar23)" ( (binary_expression "*(int *)(param_2 + 0x10) + uVar23" (pointer_expression "*(int *)(param_2 + 0x10)" * (cast_expression "(int *)(param_2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "uVar23 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar23 = *(uint *)(param_1 + 0xf8)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "*puVar8 = 7;" (assignment_expression "*puVar8 = 7" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "puVar15 = *(uint **)(param_1 + 0x70);" (assignment_expression "puVar15 = *(uint **)(param_1 + 0x70)" identifier = (pointer_expression "*(uint **)(param_1 + 0x70)" * (cast_expression "(uint **)(param_1 + 0x70)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "puVar8[1] = 0x18;" (assignment_expression "puVar8[1] = 0x18" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar13 = *(int *)(param_1 + 0x74);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x74)" identifier = (pointer_expression "*(int *)(param_1 + 0x74)" * (cast_expression "(int *)(param_1 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "puVar8[2] = uVar11;" (assignment_expression "puVar8[2] = uVar11" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar13 = iVar13 - (int)puVar15;" (assignment_expression "iVar13 = iVar13 - (int)puVar15" identifier = (binary_expression "iVar13 - (int)puVar15" identifier - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar21 = iVar13 >> 4;" (assignment_expression "iVar21 = iVar13 >> 4" identifier = (binary_expression "iVar13 >> 4" identifier >> number_literal)) ;) (expression_statement "puVar8[3] = *(undefined4 *)(param_1 + 0xfc);" (assignment_expression "puVar8[3] = *(undefined4 *)(param_1 + 0xfc)" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0xfc)" * (cast_expression "(undefined4 *)(param_1 + 0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) ))))) ;) (expression_statement "puVar8[4] = *(undefined4 *)(param_1 + 0x104);" (assignment_expression "puVar8[4] = *(undefined4 *)(param_1 + 0x104)" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x104)" * (cast_expression "(undefined4 *)(param_1 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x104)" ( (binary_expression "param_1 + 0x104" identifier + number_literal) ))))) ;) (expression_statement "puVar8[5] = *(undefined4 *)(param_1 + 0x10c);" (assignment_expression "puVar8[5] = *(undefined4 *)(param_1 + 0x10c)" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x10c)" * (cast_expression "(undefined4 *)(param_1 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = puVar8 + 6;" (assignment_expression "puVar9 = puVar8 + 6" identifier = (binary_expression "puVar8 + 6" identifier + number_literal)) ;) (expression_statement "local_54 = 0x18;" (assignment_expression "local_54 = 0x18" identifier = number_literal) ;) (if_statement "if (iVar21 != 0) {\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }" { (expression_statement "puVar14 = puVar15;" (assignment_expression "puVar14 = puVar15" identifier = identifier) ;) (expression_statement "puVar19 = puVar9;" (assignment_expression "puVar19 = puVar9" identifier = identifier) ;) (do_statement "do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);" do (compound_statement "{\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    }" { (expression_statement "uVar23 = puVar14[1];" (assignment_expression "uVar23 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "puVar17 = puVar14 + 4;" (assignment_expression "puVar17 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "*puVar19 = *puVar14;" (assignment_expression "*puVar19 = *puVar14" (pointer_expression "*puVar19" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar19[1] = uVar23;" (assignment_expression "puVar19[1] = uVar23" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar23 = puVar14[3];" (assignment_expression "uVar23 = puVar14[3]" identifier = (subscript_expression "puVar14[3]" identifier [ number_literal ])) ;) (expression_statement "puVar19[2] = puVar14[2];" (assignment_expression "puVar19[2] = puVar14[2]" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "puVar19[3] = uVar23;" (assignment_expression "puVar19[3] = uVar23" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar17;" (assignment_expression "puVar14 = puVar17" identifier = identifier) ;) (expression_statement "puVar19 = puVar19 + 4;" (assignment_expression "puVar19 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "((uint *)((int)puVar15 + iVar13) != puVar17)" ( (binary_expression "(uint *)((int)puVar15 + iVar13) != puVar17" (cast_expression "(uint *)((int)puVar15 + iVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + iVar13)" ( (binary_expression "(int)puVar15 + iVar13" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) != identifier) )) ;) (expression_statement "puVar9 = (uint *)((int)puVar9 + iVar13);" (assignment_expression "puVar9 = (uint *)((int)puVar9 + iVar13)" identifier = (cast_expression "(uint *)((int)puVar9 + iVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar13)" ( (binary_expression "(int)puVar9 + iVar13" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "local_54 = (int)puVar9 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar9 - (int)puVar8" identifier = (binary_expression "(int)puVar9 - (int)puVar8" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar11 = *(uint *)(param_1 + 0xf4);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0xf4)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf4)" * (cast_expression "(uint *)(param_1 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar23 = *(uint *)(param_1 + 0xf8)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) })) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;" (assignment_expression "uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11" identifier = (binary_expression "uVar23 ^ local_50 | local_54 ^ uVar11" (binary_expression "uVar23 ^ local_50" identifier ^ identifier) | (binary_expression "local_54 ^ uVar11" identifier ^ identifier))) ;) (if_statement "if (uVar23 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }" { comment (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23)" identifier (argument_list "("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23)" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c)" identifier = (binary_expression "*(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c)" (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) - (cast_expression "(int)*(uint **)(param_1 + 0x7c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(param_1 + 0x7c)" * (cast_expression "(uint **)(param_1 + 0x7c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))))) ;) (if_statement "if ((iVar13 >> 3) * -0x55555555 != 0) {\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }" if (parenthesized_expression "((iVar13 >> 3) * -0x55555555 != 0)" ( (binary_expression "(iVar13 >> 3) * -0x55555555 != 0" (binary_expression "(iVar13 >> 3) * -0x55555555" (parenthesized_expression "(iVar13 >> 3)" ( (binary_expression "iVar13 >> 3" identifier >> number_literal) )) * number_literal) != number_literal) )) (compound_statement "{\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }" { (expression_statement "puVar14 = (uint *)(iVar13 + (int)puVar9);" (assignment_expression "puVar14 = (uint *)(iVar13 + (int)puVar9)" identifier = (cast_expression "(uint *)(iVar13 + (int)puVar9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + (int)puVar9)" ( (binary_expression "iVar13 + (int)puVar9" identifier + (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar15 = *(uint **)(param_1 + 0x7c);" (assignment_expression "puVar15 = *(uint **)(param_1 + 0x7c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x7c)" * (cast_expression "(uint **)(param_1 + 0x7c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))) ;) (do_statement "do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);" do (compound_statement "{\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    }" { (expression_statement "uVar23 = puVar15[1];" (assignment_expression "uVar23 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "puVar19 = puVar9 + 6;" (assignment_expression "puVar19 = puVar9 + 6" identifier = (binary_expression "puVar9 + 6" identifier + number_literal)) ;) (expression_statement "*puVar9 = *puVar15;" (assignment_expression "*puVar9 = *puVar15" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "puVar9[1] = uVar23;" (assignment_expression "puVar9[1] = uVar23" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar23 = puVar15[3];" (assignment_expression "uVar23 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar9[2] = puVar15[2];" (assignment_expression "puVar9[2] = puVar15[2]" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "puVar9[3] = uVar23;" (assignment_expression "puVar9[3] = uVar23" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar23 = puVar15[5];" (assignment_expression "uVar23 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "puVar9[4] = puVar15[4];" (assignment_expression "puVar9[4] = puVar15[4]" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = (subscript_expression "puVar15[4]" identifier [ number_literal ])) ;) (expression_statement "puVar9[5] = uVar23;" (assignment_expression "puVar9[5] = uVar23" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = puVar19;" (assignment_expression "puVar9 = puVar19" identifier = identifier) ;) (expression_statement "puVar15 = puVar15 + 6;" (assignment_expression "puVar15 = puVar15 + 6" identifier = (binary_expression "puVar15 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar19 != puVar14)" ( (binary_expression "puVar19 != puVar14" identifier != identifier) )) ;) (expression_statement "local_54 = (int)puVar14 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar14 - (int)puVar8" identifier = (binary_expression "(int)puVar14 - (int)puVar8" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "puVar9 = puVar14;" (assignment_expression "puVar9 = puVar14" identifier = identifier) ;) })) (if_statement "if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54)" ( (binary_expression "*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54" (binary_expression "*(uint *)(param_1 + 0x100) != local_50" (pointer_expression "*(uint *)(param_1 + 0x100)" * (cast_expression "(uint *)(param_1 + 0x100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) != identifier) || (binary_expression "*(uint *)(param_1 + 0xfc) != local_54" (pointer_expression "*(uint *)(param_1 + 0xfc)" * (cast_expression "(uint *)(param_1 + 0xfc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) )))) != identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }" { comment (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1)" identifier (argument_list "("../../gold/gdb-index.cc",0x4fa,"do_write",param_1)" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar13 = *(int *)(param_1 + 0x88);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x88)" identifier = (pointer_expression "*(int *)(param_1 + 0x88)" * (cast_expression "(int *)(param_1 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 != *(int *)(param_1 + 0x8c)) {\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" if (parenthesized_expression "(iVar13 != *(int *)(param_1 + 0x8c))" ( (binary_expression "iVar13 != *(int *)(param_1 + 0x8c)" identifier != (pointer_expression "*(int *)(param_1 + 0x8c)" * (cast_expression "(int *)(param_1 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x8c)" ( (binary_expression "param_1 + 0x8c" identifier + number_literal) ))))) )) (compound_statement "{\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (do_statement "do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));" do (compound_statement "{\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    }" { (expression_statement "piVar22 = (int *)(iVar13 + local_30 * 0xc);" (assignment_expression "piVar22 = (int *)(iVar13 + local_30 * 0xc)" identifier = (cast_expression "(int *)(iVar13 + local_30 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + local_30 * 0xc)" ( (binary_expression "iVar13 + local_30 * 0xc" identifier + (binary_expression "local_30 * 0xc" identifier * number_literal)) )))) ;) (expression_statement "uVar23 = piVar22[1];" (assignment_expression "uVar23 = piVar22[1]" identifier = (subscript_expression "piVar22[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = (iVar21 + -1) - uVar23;" (assignment_expression "uVar11 = (iVar21 + -1) - uVar23" identifier = (binary_expression "(iVar21 + -1) - uVar23" (parenthesized_expression "(iVar21 + -1)" ( (binary_expression "iVar21 + -1" identifier + number_literal) )) - identifier)) ;) (if_statement "if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }" if (parenthesized_expression "(-1 < (int)uVar23)" ( (binary_expression "-1 < (int)uVar23" number_literal < (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar11 = uVar23;\n      }" { (expression_statement "uVar11 = uVar23;" (assignment_expression "uVar11 = uVar23" identifier = identifier) ;) })) (expression_statement "piVar12 = (int *)*piVar22;" (assignment_expression "piVar12 = (int *)*piVar22" identifier = (cast_expression "(int *)*piVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar22" * identifier))) ;) (expression_statement "piVar22 = (int *)piVar22[2];" (assignment_expression "piVar22 = (int *)piVar22[2]" identifier = (cast_expression "(int *)piVar22[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[2]" identifier [ number_literal ]))) ;) (expression_statement "local_54 = *piVar22;" (assignment_expression "local_54 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (if_statement "if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }" if (parenthesized_expression "(piVar22[1] != local_54)" ( (binary_expression "piVar22[1] != local_54" (subscript_expression "piVar22[1]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" identifier = identifier) ;) (do_statement "do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));" do (compound_statement "{\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        }" { (expression_statement "puVar9 = (uint *)(local_54 + uVar23 * 0x14);" (assignment_expression "puVar9 = (uint *)(local_54 + uVar23 * 0x14)" identifier = (cast_expression "(uint *)(local_54 + uVar23 * 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + uVar23 * 0x14)" ( (binary_expression "local_54 + uVar23 * 0x14" identifier + (binary_expression "uVar23 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "uVar18 = *puVar9;" (assignment_expression "uVar18 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (if_statement "if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n            lVar24 = 0;\n          }" { (expression_statement "lVar24 = 0;" (assignment_expression "lVar24 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }" else (compound_statement "{\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }" { (if_statement "if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }" if (parenthesized_expression "(*(code **)(*piVar12 + 0x60) == FUN_000a5850)" ( (binary_expression "*(code **)(*piVar12 + 0x60) == FUN_000a5850" (pointer_expression "*(code **)(*piVar12 + 0x60)" * (cast_expression "(code **)(*piVar12 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0x60)" ( (binary_expression "*piVar12 + 0x60" (pointer_expression "*piVar12" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }" { (if_statement "if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }" if (parenthesized_expression "((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18)" ( (binary_expression "(uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18" (call_expression "(uint)(piVar12[0xf] - piVar12[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar12[0xf] - piVar12[0xe] >> 2)" ( (binary_expression "piVar12[0xf] - piVar12[0xe] >> 2" (binary_expression "piVar12[0xf] - piVar12[0xe]" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar12[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }" { comment (expression_statement "FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "FUN_000da200("../../gold/object.h",0x5c8,"do_output_section")" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") ))) ;) })) (expression_statement "iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);" (assignment_expression "iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4)" identifier = (pointer_expression "*(int *)(piVar12[0xe] + uVar18 * 4)" * (cast_expression "(int *)(piVar12[0xe] + uVar18 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0xe] + uVar18 * 4)" ( (binary_expression "piVar12[0xe] + uVar18 * 4" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) + (binary_expression "uVar18 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }" else (compound_statement "{\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }" { (expression_statement "iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);" (assignment_expression "iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18)" identifier = (call_expression "(**(code **)(*piVar12 + 0x60))(piVar12,uVar18)" (parenthesized_expression "(**(code **)(*piVar12 + 0x60))" ( (pointer_expression "**(code **)(*piVar12 + 0x60)" * (pointer_expression "*(code **)(*piVar12 + 0x60)" * (cast_expression "(code **)(*piVar12 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0x60)" ( (binary_expression "*piVar12 + 0x60" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) )) (argument_list "(piVar12,uVar18)" ( identifier , identifier )))) ;) }))) (if_statement "if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }" if (parenthesized_expression "((*(byte *)(iVar13 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar13 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar13 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar13 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar13 + 0x1c)" * (cast_expression "(byte *)(iVar13 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x1c)" ( (binary_expression "iVar13 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }" { comment (expression_statement "FUN_000da200("../../gold/output.h",0xc5,"address");" (call_expression "FUN_000da200("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;) })) (expression_statement "lVar7 = *(longlong *)(iVar13 + 4);" (assignment_expression "lVar7 = *(longlong *)(iVar13 + 4)" identifier = (pointer_expression "*(longlong *)(iVar13 + 4)" * (cast_expression "(longlong *)(iVar13 + 4)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) ))))) ;) (expression_statement "lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);" (assignment_expression "lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9)" identifier = (call_expression "(**(code **)(*piVar12 + 0x68))(piVar12,*puVar9)" (parenthesized_expression "(**(code **)(*piVar12 + 0x68))" ( (pointer_expression "**(code **)(*piVar12 + 0x68)" * (pointer_expression "*(code **)(*piVar12 + 0x68)" * (cast_expression "(code **)(*piVar12 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0x68)" ( (binary_expression "*piVar12 + 0x68" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) )) (argument_list "(piVar12,*puVar9)" ( identifier , (pointer_expression "*puVar9" * identifier) )))) ;) (expression_statement "lVar24 = lVar24 + lVar7;" (assignment_expression "lVar24 = lVar24 + lVar7" identifier = (binary_expression "lVar24 + lVar7" identifier + identifier)) ;) (expression_statement "local_54 = *piVar22;" (assignment_expression "local_54 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) }))) (expression_statement "iVar16 = (int)((ulonglong)lVar24 >> 0x20);" (assignment_expression "iVar16 = (int)((ulonglong)lVar24 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar24 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar24 >> 0x20)" ( (binary_expression "(ulonglong)lVar24 >> 0x20" (cast_expression "(ulonglong)lVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar10 = (uint)lVar24;" (assignment_expression "uVar10 = (uint)lVar24" identifier = (cast_expression "(uint)lVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar3 = puVar9[1];" (assignment_expression "uVar3 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar9[1];" (assignment_expression "uVar18 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar9[2];" (assignment_expression "uVar4 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar9[3];" (assignment_expression "uVar5 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar9[4];" (assignment_expression "uVar6 = puVar9[4]" identifier = (subscript_expression "puVar9[4]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "puVar15[2] = uVar10 + puVar9[3];" (assignment_expression "puVar15[2] = uVar10 + puVar9[3]" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (binary_expression "uVar10 + puVar9[3]" identifier + (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar9 = puVar15 + 5;" (assignment_expression "puVar9 = puVar15 + 5" identifier = (binary_expression "puVar15 + 5" identifier + number_literal)) ;) (expression_statement "puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);" (assignment_expression "puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3)" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = (binary_expression "iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3)" (binary_expression "iVar16 + uVar4" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar10,uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,uVar3)" identifier (argument_list "(uVar10,uVar3)" ( identifier , identifier )))))) ;) (expression_statement "puVar15[4] = uVar11;" (assignment_expression "puVar15[4] = uVar11" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar15 = uVar10 + uVar18;" (assignment_expression "*puVar15 = uVar10 + uVar18" (pointer_expression "*puVar15" * identifier) = (binary_expression "uVar10 + uVar18" identifier + identifier)) ;) (expression_statement "iVar13 = piVar22[1];" (assignment_expression "iVar13 = piVar22[1]" identifier = (subscript_expression "piVar22[1]" identifier [ number_literal ])) ;) (expression_statement "puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);" (assignment_expression "puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5)" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (binary_expression "iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5)" (binary_expression "iVar16 + uVar6" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar10,uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,uVar5)" identifier (argument_list "(uVar10,uVar5)" ( identifier , identifier )))))) ;) (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" identifier = identifier) ;) }) while (parenthesized_expression "(uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333))" ( (binary_expression "uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333)" identifier < (call_expression "(uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)(iVar13 - local_54) >> 2) * -0x33333333)" ( (binary_expression "((int)(iVar13 - local_54) >> 2) * -0x33333333" (parenthesized_expression "((int)(iVar13 - local_54) >> 2)" ( (binary_expression "(int)(iVar13 - local_54) >> 2" (cast_expression "(int)(iVar13 - local_54)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar13 - local_54)" ( (binary_expression "iVar13 - local_54" identifier - identifier) ))) >> number_literal) )) * number_literal) )))) )) ;) (expression_statement "iVar13 = *(int *)(param_1 + 0x88);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x88)" identifier = (pointer_expression "*(int *)(param_1 + 0x88)" * (cast_expression "(int *)(param_1 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) })) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" identifier = (binary_expression "local_30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555))" ( (binary_expression "local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555)" identifier < (call_expression "(uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555)" ( (binary_expression "(*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555" (parenthesized_expression "(*(int *)(param_1 + 0x8c) - iVar13 >> 2)" ( (binary_expression "*(int *)(param_1 + 0x8c) - iVar13 >> 2" (binary_expression "*(int *)(param_1 + 0x8c) - iVar13" (pointer_expression "*(int *)(param_1 + 0x8c)" * (cast_expression "(int *)(param_1 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x8c)" ( (binary_expression "param_1 + 0x8c" identifier + number_literal) )))) - identifier) >> number_literal) )) * number_literal) )))) )) ;) (expression_statement "local_54 = (int)puVar9 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar9 - (int)puVar8" identifier = (binary_expression "(int)puVar9 - (int)puVar8" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) (if_statement "if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54)" ( (binary_expression "*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54" (binary_expression "*(uint *)(param_1 + 0x108) != local_50" (pointer_expression "*(uint *)(param_1 + 0x108)" * (cast_expression "(uint *)(param_1 + 0x108)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) != identifier) || (binary_expression "*(uint *)(param_1 + 0x104) != local_54" (pointer_expression "*(uint *)(param_1 + 0x104)" * (cast_expression "(uint *)(param_1 + 0x104)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x104)" ( (binary_expression "param_1 + 0x104" identifier + number_literal) )))) != identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }" { comment (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9)" identifier (argument_list "("../../gold/gdb-index.cc",0x518,"do_write",puVar9)" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar13 = *(int *)(param_1 + 0x94);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x94)" identifier = (pointer_expression "*(int *)(param_1 + 0x94)" * (cast_expression "(int *)(param_1 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x94)" ( (binary_expression "param_1 + 0x94" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar13 + 4) != 0) {\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" if (parenthesized_expression "(*(int *)(iVar13 + 4) != 0)" ( (binary_expression "*(int *)(iVar13 + 4) != 0" (pointer_expression "*(int *)(iVar13 + 4)" * (cast_expression "(int *)(iVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" { (expression_statement "iVar16 = *(int *)(iVar13 + 8);" (assignment_expression "iVar16 = *(int *)(iVar13 + 8)" identifier = (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" identifier = identifier) ;) (do_statement "do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));" do (compound_statement "{\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    }" { (expression_statement "puVar9 = *(uint **)(iVar16 + uVar23 * 4);" (assignment_expression "puVar9 = *(uint **)(iVar16 + uVar23 * 4)" identifier = (pointer_expression "*(uint **)(iVar16 + uVar23 * 4)" * (cast_expression "(uint **)(iVar16 + uVar23 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + uVar23 * 4)" ( (binary_expression "iVar16 + uVar23 * 4" identifier + (binary_expression "uVar23 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }" if (parenthesized_expression "(puVar9 == (uint *)0x0)" ( (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar18 = 0;\n        uVar11 = 0;\n      }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }" else (compound_statement "{\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }" { (if_statement "if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" if (parenthesized_expression "(*(uint *)(param_1 + 0xd0) < *puVar9)" ( (binary_expression "*(uint *)(param_1 + 0xd0) < *puVar9" (pointer_expression "*(uint *)(param_1 + 0xd0)" * (cast_expression "(uint *)(param_1 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) )))) < (pointer_expression "*puVar9" * identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" { comment (expression_statement "FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");" (call_expression "FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key")" identifier (argument_list "("../../gold/stringpool.h",0x108,"get_offset_from_key")" ( (string_literal ""../../gold/stringpool.h"" " string_content ") , number_literal , (string_literal ""get_offset_from_key"" " string_content ") ))) ;) })) (expression_statement "uVar11 = *puVar9 - 1;" (assignment_expression "uVar11 = *puVar9 - 1" identifier = (binary_expression "*puVar9 - 1" (pointer_expression "*puVar9" * identifier) - number_literal)) ;) (expression_statement "uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);" (assignment_expression "uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" identifier = (binary_expression "(*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" (parenthesized_expression "(*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c))" ( (binary_expression "*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)" (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) )))) - (pointer_expression "*(int *)(param_1 + 0x10c)" * (cast_expression "(int *)(param_1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) ))))) )) + (pointer_expression "*(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" * (cast_expression "(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc)" * (cast_expression "(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc)" ( (binary_expression "*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc" (pointer_expression "*(int *)(param_1 + 0xc4)" * (cast_expression "(int *)(param_1 + 0xc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc4)" ( (binary_expression "param_1 + 0xc4" identifier + number_literal) )))) + (binary_expression "(uVar11 >> 0xd) * 0xc" (parenthesized_expression "(uVar11 >> 0xd)" ( (binary_expression "uVar11 >> 0xd" identifier >> number_literal) )) * number_literal)) )))) + (binary_expression "(uVar11 & 0x1fff) * 4" (parenthesized_expression "(uVar11 & 0x1fff)" ( (binary_expression "uVar11 & 0x1fff" identifier & number_literal) )) * number_literal)) )))))) ;) (expression_statement "uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);" (assignment_expression "uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8)" identifier = (pointer_expression "*(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8)" * (cast_expression "(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xa4) + puVar9[2] * 8)" ( (binary_expression "*(int *)(param_1 + 0xa4) + puVar9[2] * 8" (pointer_expression "*(int *)(param_1 + 0xa4)" * (cast_expression "(int *)(param_1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa4)" ( (binary_expression "param_1 + 0xa4" identifier + number_literal) )))) + (binary_expression "puVar9[2] * 8" (subscript_expression "puVar9[2]" identifier [ number_literal ]) * number_literal)) ))))) ;) }))) (expression_statement "puVar15[1] = uVar11;" (assignment_expression "puVar15[1] = uVar11" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = puVar15 + 2;" (assignment_expression "puVar9 = puVar15 + 2" identifier = (binary_expression "puVar15 + 2" identifier + number_literal)) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "*puVar15 = uVar18;" (assignment_expression "*puVar15 = uVar18" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" identifier = identifier) ;) }) while (parenthesized_expression "(uVar23 < *(uint *)(iVar13 + 4))" ( (binary_expression "uVar23 < *(uint *)(iVar13 + 4)" identifier < (pointer_expression "*(uint *)(iVar13 + 4)" * (cast_expression "(uint *)(iVar13 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) ))))) )) ;) (expression_statement "local_54 = (int)puVar9 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar9 - (int)puVar8" identifier = (binary_expression "(int)puVar9 - (int)puVar8" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) (expression_statement "uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;" (assignment_expression "uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54" identifier = (binary_expression "*(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54" (binary_expression "*(uint *)(param_1 + 0x110) ^ local_50" (pointer_expression "*(uint *)(param_1 + 0x110)" * (cast_expression "(uint *)(param_1 + 0x110)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ^ identifier) | (binary_expression "*(uint *)(param_1 + 0x10c) ^ local_54" (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) ^ identifier))) ;) (if_statement "if (uVar23 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }" { comment (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23)" identifier (argument_list "("../../gold/gdb-index.cc",0x52b,"do_write",uVar23)" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) (expression_statement "piVar22 = *(int **)(param_1 + 0x98);" (assignment_expression "piVar22 = *(int **)(param_1 + 0x98)" identifier = (pointer_expression "*(int **)(param_1 + 0x98)" * (cast_expression "(int **)(param_1 + 0x98)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;" (assignment_expression "uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22" identifier = (binary_expression "*(int *)(param_1 + 0x9c) - (int)piVar22" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) - (cast_expression "(int)piVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar23 >> 2 != 0) {\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" if (parenthesized_expression "(uVar23 >> 2 != 0)" ( (binary_expression "uVar23 >> 2 != 0" (binary_expression "uVar23 >> 2" identifier >> number_literal) != number_literal) )) (compound_statement "{\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" { (expression_statement "piVar12 = (int *)(uVar23 + (int)piVar22);" (assignment_expression "piVar12 = (int *)(uVar23 + (int)piVar22)" identifier = (cast_expression "(int *)(uVar23 + (int)piVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar23 + (int)piVar22)" ( (binary_expression "uVar23 + (int)piVar22" identifier + (cast_expression "(int)piVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);" do (compound_statement "{\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    }" { (expression_statement "iVar13 = *(int *)*piVar22;" (assignment_expression "iVar13 = *(int *)*piVar22" identifier = (pointer_expression "*(int *)*piVar22" * (cast_expression "(int *)*piVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar22" * identifier)))) ;) (expression_statement "uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;" (assignment_expression "uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3" identifier = (binary_expression "((int *)*piVar22)[1] - iVar13 >> 3" (binary_expression "((int *)*piVar22)[1] - iVar13" (subscript_expression "((int *)*piVar22)[1]" (parenthesized_expression "((int *)*piVar22)" ( (cast_expression "(int *)*piVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar22" * identifier)) )) [ number_literal ]) - identifier) >> number_literal)) ;) (expression_statement "*puVar9 = uVar23;" (assignment_expression "*puVar9 = uVar23" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar15 = puVar9 + 1;" (assignment_expression "puVar15 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) (compound_statement "{\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }" { (expression_statement "pbVar20 = (byte *)(iVar13 + 4);" (assignment_expression "pbVar20 = (byte *)(iVar13 + 4)" identifier = (cast_expression "(byte *)(iVar13 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar14 = puVar9 + 1;" (assignment_expression "puVar14 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (do_statement "do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);" do (compound_statement "{\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        }" { (expression_statement "uVar11 = *(uint *)(pbVar20 + -4);" (assignment_expression "uVar11 = *(uint *)(pbVar20 + -4)" identifier = (pointer_expression "*(uint *)(pbVar20 + -4)" * (cast_expression "(uint *)(pbVar20 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar20 + -4)" ( (binary_expression "pbVar20 + -4" identifier + number_literal) ))))) ;) (if_statement "if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar11 = (iVar21 + -1) - uVar11;\n          }" { (expression_statement "uVar11 = (iVar21 + -1) - uVar11;" (assignment_expression "uVar11 = (iVar21 + -1) - uVar11" identifier = (binary_expression "(iVar21 + -1) - uVar11" (parenthesized_expression "(iVar21 + -1)" ( (binary_expression "iVar21 + -1" identifier + number_literal) )) - identifier)) ;) })) (expression_statement "bVar1 = *pbVar20;" (assignment_expression "bVar1 = *pbVar20" identifier = (pointer_expression "*pbVar20" * identifier)) ;) (expression_statement "puVar15 = puVar14 + 1;" (assignment_expression "puVar15 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + 8;" (assignment_expression "pbVar20 = pbVar20 + 8" identifier = (binary_expression "pbVar20 + 8" identifier + number_literal)) ;) (expression_statement "*puVar14 = (uint)bVar1 << 0x18 | uVar11;" (assignment_expression "*puVar14 = (uint)bVar1 << 0x18 | uVar11" (pointer_expression "*puVar14" * identifier) = (binary_expression "(uint)bVar1 << 0x18 | uVar11" (binary_expression "(uint)bVar1 << 0x18" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) | identifier)) ;) (expression_statement "puVar14 = puVar15;" (assignment_expression "puVar14 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(puVar15 != puVar9 + uVar23 + 1)" ( (binary_expression "puVar15 != puVar9 + uVar23 + 1" identifier != (binary_expression "puVar9 + uVar23 + 1" (binary_expression "puVar9 + uVar23" identifier + identifier) + number_literal)) )) ;) })) (expression_statement "puVar9 = puVar15;" (assignment_expression "puVar9 = puVar15" identifier = identifier) ;) (expression_statement "piVar22 = piVar22 + 1;" (assignment_expression "piVar22 = piVar22 + 1" identifier = (binary_expression "piVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar12 != piVar22)" ( (binary_expression "piVar12 != piVar22" identifier != identifier) )) ;) (expression_statement "local_54 = (int)puVar9 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar9 - (int)puVar8" identifier = (binary_expression "(int)puVar9 - (int)puVar8" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) (expression_statement "uVar23 = *(uint *)(param_1 + 0x114);" (assignment_expression "uVar23 = *(uint *)(param_1 + 0x114)" identifier = (pointer_expression "*(uint *)(param_1 + 0x114)" * (cast_expression "(uint *)(param_1 + 0x114)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23)" ( (binary_expression "*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23" (binary_expression "*(uint *)(param_1 + 0x118) != local_50" (pointer_expression "*(uint *)(param_1 + 0x118)" * (cast_expression "(uint *)(param_1 + 0x118)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) != identifier) || (binary_expression "local_54 != uVar23" identifier != identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }" { comment (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23)" identifier (argument_list "("../../gold/gdb-index.cc",0x53f,"do_write",uVar23)" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) (expression_statement "FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);" (call_expression "FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23)" identifier (argument_list "(param_1 + 0xa8,puVar9,uVar2 - uVar23)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) , identifier , (binary_expression "uVar2 - uVar23" identifier - identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Type propagation algorithm not settling */\n/* DWARF original prototype: void do_write(Gdb_index * this, Output_file * of) */\n\nvoid __thiscall gold::Gdb_index::do_write(Gdb_index *this,Output_file *of)\n\n{\n  pointer pPVar1;\n  byte bVar2;\n  uint uVar3;\n  pointer pCVar4;\n  Relobj *pRVar5;\n  Dwarf_range_list *pDVar6;\n  _func_int_varargs *p_Var7;\n  pointer ppOVar8;\n  pointer pRVar9;\n  Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *pGVar10;\n  Gdb_symbol **ppGVar11;\n  Gdb_symbol *pGVar12;\n  pointer ppVar13;\n  off_t oVar14;\n  off_t oVar15;\n  off_t oVar16;\n  uchar *puVar17;\n  uint *buffer;\n  uint uVar18;\n  uint uVar19;\n  Output_section *pOVar20;\n  pointer pPVar21;\n  uint uVar22;\n  pointer ppvVar23;\n  int iVar24;\n  uint *puVar25;\n  int iVar26;\n  pointer pCVar27;\n  pointer pCVar28;\n  pointer pTVar29;\n  int extraout_EDX;\n  uint uVar30;\n  uint uVar31;\n  uchar *puVar32;\n  int iVar33;\n  pointer ppvVar34;\n  int iVar35;\n  uint *puVar36;\n  pointer local_54;\n  int local_50;\n  uint local_30;\n  \n  bVar2 = (this->super_Output_section_data).super_Output_data.field_0x1c;\n  if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n  }\n  uVar31 = (uint)(this->super_Output_section_data).super_Output_data.offset_;\n  iVar26 = *(int *)((int)&(this->super_Output_section_data).super_Output_data.offset_ + 4);\n  if ((bVar2 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n  }\n  uVar3 = (uint)(this->super_Output_section_data).super_Output_data.data_size_;\n  if ((iVar26 < 0) ||\n     (iVar35 = *(int *)((int)&of->file_size_ + 4), iVar26 = iVar26 + (uint)CARRY4(uVar3,uVar31),\n     uVar22 = (uint)((uint)of->file_size_ < uVar3 + uVar31), iVar24 = iVar35 - iVar26,\n     (SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }\n  iVar26 = (int)this->tu_offset_;\n  puVar17 = of->base_ + uVar31;\n  iVar35 = *(int *)((int)&this->tu_offset_ + 4);\n  puVar17[0] = '\a';\n  puVar17[1] = '\0';\n  puVar17[2] = '\0';\n  puVar17[3] = '\0';\n  pCVar4 = (this->comp_units_).\n           super__Vector_base<gold::Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>\n           ._M_impl._M_start;\n  puVar17[4] = '\x18';\n  puVar17[5] = '\0';\n  puVar17[6] = '\0';\n  puVar17[7] = '\0';\n  pCVar27 = (this->comp_units_).\n            super__Vector_base<gold::Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>\n            ._M_impl._M_finish;\n  *(int *)(puVar17 + 8) = iVar26;\n  iVar24 = (int)pCVar27 - (int)pCVar4;\n  iVar33 = iVar24 >> 4;\n  *(int *)(puVar17 + 0xc) = (int)this->addr_offset_;\n  *(int *)(puVar17 + 0x10) = (int)this->symtab_offset_;\n  *(int *)(puVar17 + 0x14) = (int)this->cu_pool_offset_;\n  buffer = (uint *)(puVar17 + 0x18);\n  local_54 = (pointer)0x18;\n  if (iVar33 != 0) {\n    pCVar27 = pCVar4;\n    puVar25 = buffer;\n    do {\n      uVar31 = *(uint *)((int)&pCVar27->cu_offset + 4);\n      pCVar28 = pCVar27 + 1;\n      *puVar25 = (uint)pCVar27->cu_offset;\n      puVar25[1] = uVar31;\n      uVar31 = *(uint *)((int)&pCVar27->cu_length + 4);\n      puVar25[2] = (uint)pCVar27->cu_length;\n      puVar25[3] = uVar31;\n      pCVar27 = pCVar28;\n      puVar25 = puVar25 + 4;\n    } while ((pointer)((int)pCVar4 + iVar24) != pCVar28);\n    buffer = (uint *)((int)buffer + iVar24);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    iVar26 = (int)this->tu_offset_;\n    iVar35 = *(int *)((int)&this->tu_offset_ + 4);\n  }\n  local_50 = (int)local_54 >> 0x1f;\n  if (iVar35 != local_50 || local_54 != (pointer)iVar26) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x4ee,"do_write");\n  }\n  pTVar29 = (this->type_units_).\n            super__Vector_base<gold::Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>\n            ._M_impl._M_start;\n  iVar26 = (int)(this->type_units_).\n                super__Vector_base<gold::Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>\n                ._M_impl._M_finish - (int)pTVar29;\n  if ((iVar26 >> 3) * -0x55555555 != 0) {\n    puVar25 = (uint *)(iVar26 + (int)buffer);\n    do {\n      uVar31 = *(uint *)((int)&pTVar29->tu_offset + 4);\n      puVar36 = buffer + 6;\n      *buffer = (uint)pTVar29->tu_offset;\n      buffer[1] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_offset + 4);\n      buffer[2] = (uint)pTVar29->type_offset;\n      buffer[3] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_signature + 4);\n      buffer[4] = (uint)pTVar29->type_signature;\n      buffer[5] = uVar31;\n      buffer = puVar36;\n      pTVar29 = pTVar29 + 1;\n    } while (puVar36 != puVar25);\n    local_54 = (pointer)((int)puVar25 - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n    buffer = puVar25;\n  }\n  if (*(int *)((int)&this->addr_offset_ + 4) != local_50 ||\n      (pointer)(int)this->addr_offset_ != local_54) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x4fa,"do_write");\n  }\n  pPVar21 = (this->ranges_).\n            super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n            ._M_impl._M_start;\n  if (pPVar21 !=\n      (this->ranges_).\n      super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n      ._M_impl._M_finish) {\n    local_30 = 0;\n    do {\n      pPVar1 = pPVar21 + local_30;\n      uVar31 = pPVar1->cu_index;\n      uVar22 = (iVar33 + -1) - uVar31;\n      if (-1 < (int)uVar31) {\n        uVar22 = uVar31;\n      }\n      pRVar5 = pPVar1->object;\n      pDVar6 = pPVar1->ranges;\n      local_54 = (pDVar6->range_list_).\n                 super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                 ._M_impl._M_start;\n      if ((pDVar6->range_list_).\n          super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n          ._M_impl._M_finish != local_54) {\n        uVar31 = 0;\n        puVar25 = buffer;\n        do {\n          pRVar9 = local_54 + uVar31;\n          uVar30 = pRVar9->shndx;\n          if (uVar30 == 0) {\n            uVar19 = 0;\n            iVar26 = 0;\n          }\n          else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }\n          oVar14 = pRVar9->start;\n          oVar15 = pRVar9->start;\n          iVar35 = *(int *)((int)&pRVar9->start + 4);\n          oVar16 = pRVar9->end;\n          iVar24 = *(int *)((int)&pRVar9->end + 4);\n          uVar31 = uVar31 + 1;\n          puVar25[2] = uVar19 + (int)pRVar9->end;\n          buffer = puVar25 + 5;\n          puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);\n          puVar25[4] = uVar22;\n          *puVar25 = uVar19 + (int)oVar15;\n          pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;\n          puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);\n          puVar25 = buffer;\n        } while (uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333));\n        pPVar21 = (this->ranges_).\n                  super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                  ._M_impl._M_start;\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 <\n             (uint)(((int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2) * -0x55555555));\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(int *)((int)&this->symtab_offset_ + 4) != local_50 ||\n      (pointer)(int)this->symtab_offset_ != local_54) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x518,"do_write");\n  }\n  pGVar10 = this->gdb_symtab_;\n  if (pGVar10->capacity_ != 0) {\n    ppGVar11 = pGVar10->hashtab_;\n    uVar31 = 0;\n    puVar25 = buffer;\n    do {\n      pGVar12 = ppGVar11[uVar31];\n      if (pGVar12 == (Gdb_symbol *)0x0) {\n        uVar30 = 0;\n        uVar22 = 0;\n      }\n      else {\n        if ((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar22 = pGVar12->name_key - 1;\n        uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4);\n        uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index);\n      }\n      puVar25[1] = uVar22;\n      buffer = puVar25 + 2;\n      uVar31 = uVar31 + 1;\n      *puVar25 = uVar30;\n      puVar25 = buffer;\n    } while (uVar31 < pGVar10->capacity_);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(int *)((int)&this->cu_pool_offset_ + 4) != local_50 ||\n      (pointer)(int)this->cu_pool_offset_ != local_54) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x52b,"do_write");\n  }\n  ppvVar34 = (this->cu_vector_list_).\n             super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n             ._M_impl._M_start;\n  uVar31 = (int)(this->cu_vector_list_).\n                super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                ._M_impl._M_finish - (int)ppvVar34;\n  if (uVar31 >> 2 != 0) {\n    ppvVar23 = (pointer)(uVar31 + (int)ppvVar34);\n    do {\n      ppVar13 = ((*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                )._M_impl._M_start;\n      uVar31 = (int)((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish - (int)ppVar13 >> 3;\n      *buffer = uVar31;\n      puVar25 = buffer + 1;\n      if (uVar31 != 0) {\n        puVar32 = &ppVar13->second;\n        puVar36 = buffer + 1;\n        do {\n          uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;\n          if ((int)uVar22 < 0) {\n            uVar22 = (iVar33 + -1) - uVar22;\n          }\n          bVar2 = *puVar32;\n          puVar25 = puVar36 + 1;\n          puVar32 = puVar32 + 8;\n          *puVar36 = (uint)bVar2 << 0x18 | uVar22;\n          puVar36 = puVar25;\n        } while (puVar25 != buffer + uVar31 + 1);\n      }\n      buffer = puVar25;\n      ppvVar34 = ppvVar34 + 1;\n    } while (ppvVar23 != ppvVar34);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  iVar26 = (int)this->stringpool_offset_;\n  if (*(int *)((int)&this->stringpool_offset_ + 4) != local_50 || local_54 != (pointer)iVar26) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x53f,"do_write");\n  }\n  Stringpool_template<char>::write_to_buffer(&this->stringpool_,(uchar *)buffer,uVar3 - iVar26);\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall gold::Gdb_index::do_write(Gdb_index *this,Output_file *of)\n\n{\n  pointer pPVar1;\n  byte bVar2;\n  uint uVar3;\n  pointer pCVar4;\n  Relobj *pRVar5;\n  Dwarf_range_list *pDVar6;\n  _func_int_varargs *p_Var7;\n  pointer ppOVar8;\n  pointer pRVar9;\n  Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *pGVar10;\n  Gdb_symbol **ppGVar11;\n  Gdb_symbol *pGVar12;\n  pointer ppVar13;\n  off_t oVar14;\n  off_t oVar15;\n  off_t oVar16;\n  uchar *puVar17;\n  uint *buffer;\n  uint uVar18;\n  uint uVar19;\n  Output_section *pOVar20;\n  pointer pPVar21;\n  uint uVar22;\n  pointer ppvVar23;\n  int iVar24;\n  uint *puVar25;\n  int iVar26;\n  pointer pCVar27;\n  pointer pCVar28;\n  pointer pTVar29;\n  int extraout_EDX;\n  uint uVar30;\n  uint uVar31;\n  uchar *puVar32;\n  int iVar33;\n  pointer ppvVar34;\n  int iVar35;\n  uint *puVar36;\n  pointer local_54;\n  int local_50;\n  uint local_30;\n  \n  bVar2 = (this->super_Output_section_data).super_Output_data.field_0x1c;\n  if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n  }\n  uVar31 = (uint)(this->super_Output_section_data).super_Output_data.offset_;\n  iVar26 = *(int *)((int)&(this->super_Output_section_data).super_Output_data.offset_ + 4);\n  if ((bVar2 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n  }\n  uVar3 = (uint)(this->super_Output_section_data).super_Output_data.data_size_;\n  if ((iVar26 < 0) ||\n     (iVar35 = *(int *)((int)&of->file_size_ + 4), iVar26 = iVar26 + (uint)CARRY4(uVar3,uVar31),\n     uVar22 = (uint)((uint)of->file_size_ < uVar3 + uVar31), iVar24 = iVar35 - iVar26,\n     (SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }\n  iVar26 = (int)this->tu_offset_;\n  puVar17 = of->base_ + uVar31;\n  iVar35 = *(int *)((int)&this->tu_offset_ + 4);\n  puVar17[0] = '\a';\n  puVar17[1] = '\0';\n  puVar17[2] = '\0';\n  puVar17[3] = '\0';\n  pCVar4 = (this->comp_units_).\n           super__Vector_base<gold::Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>\n           ._M_impl._M_start;\n  puVar17[4] = '\x18';\n  puVar17[5] = '\0';\n  puVar17[6] = '\0';\n  puVar17[7] = '\0';\n  pCVar27 = (this->comp_units_).\n            super__Vector_base<gold::Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>\n            ._M_impl._M_finish;\n  *(int *)(puVar17 + 8) = iVar26;\n  iVar24 = (int)pCVar27 - (int)pCVar4;\n  iVar33 = iVar24 >> 4;\n  *(int *)(puVar17 + 0xc) = (int)this->addr_offset_;\n  *(int *)(puVar17 + 0x10) = (int)this->symtab_offset_;\n  *(int *)(puVar17 + 0x14) = (int)this->cu_pool_offset_;\n  buffer = (uint *)(puVar17 + 0x18);\n  local_54 = (pointer)0x18;\n  if (iVar33 != 0) {\n    pCVar27 = pCVar4;\n    puVar25 = buffer;\n    do {\n      uVar31 = *(uint *)((int)&pCVar27->cu_offset + 4);\n      pCVar28 = pCVar27 + 1;\n      *puVar25 = (uint)pCVar27->cu_offset;\n      puVar25[1] = uVar31;\n      uVar31 = *(uint *)((int)&pCVar27->cu_length + 4);\n      puVar25[2] = (uint)pCVar27->cu_length;\n      puVar25[3] = uVar31;\n      pCVar27 = pCVar28;\n      puVar25 = puVar25 + 4;\n    } while ((pointer)((int)pCVar4 + iVar24) != pCVar28);\n    buffer = (uint *)((int)buffer + iVar24);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    iVar26 = (int)this->tu_offset_;\n    iVar35 = *(int *)((int)&this->tu_offset_ + 4);\n  }\n  local_50 = (int)local_54 >> 0x1f;\n  if (iVar35 != local_50 || local_54 != (pointer)iVar26) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x4ee,"do_write");\n  }\n  pTVar29 = (this->type_units_).\n            super__Vector_base<gold::Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>\n            ._M_impl._M_start;\n  iVar26 = (int)(this->type_units_).\n                super__Vector_base<gold::Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>\n                ._M_impl._M_finish - (int)pTVar29;\n  if ((iVar26 >> 3) * -0x55555555 != 0) {\n    puVar25 = (uint *)(iVar26 + (int)buffer);\n    do {\n      uVar31 = *(uint *)((int)&pTVar29->tu_offset + 4);\n      puVar36 = buffer + 6;\n      *buffer = (uint)pTVar29->tu_offset;\n      buffer[1] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_offset + 4);\n      buffer[2] = (uint)pTVar29->type_offset;\n      buffer[3] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_signature + 4);\n      buffer[4] = (uint)pTVar29->type_signature;\n      buffer[5] = uVar31;\n      buffer = puVar36;\n      pTVar29 = pTVar29 + 1;\n    } while (puVar36 != puVar25);\n    local_54 = (pointer)((int)puVar25 - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n    buffer = puVar25;\n  }\n  if (*(int *)((int)&this->addr_offset_ + 4) != local_50 ||\n      (pointer)(int)this->addr_offset_ != local_54) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x4fa,"do_write");\n  }\n  pPVar21 = (this->ranges_).\n            super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n            ._M_impl._M_start;\n  if (pPVar21 !=\n      (this->ranges_).\n      super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n      ._M_impl._M_finish) {\n    local_30 = 0;\n    do {\n      pPVar1 = pPVar21 + local_30;\n      uVar31 = pPVar1->cu_index;\n      uVar22 = (iVar33 + -1) - uVar31;\n      if (-1 < (int)uVar31) {\n        uVar22 = uVar31;\n      }\n      pRVar5 = pPVar1->object;\n      pDVar6 = pPVar1->ranges;\n      local_54 = (pDVar6->range_list_).\n                 super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                 ._M_impl._M_start;\n      if ((pDVar6->range_list_).\n          super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n          ._M_impl._M_finish != local_54) {\n        uVar31 = 0;\n        puVar25 = buffer;\n        do {\n          pRVar9 = local_54 + uVar31;\n          uVar30 = pRVar9->shndx;\n          if (uVar30 == 0) {\n            uVar19 = 0;\n            iVar26 = 0;\n          }\n          else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }\n          oVar14 = pRVar9->start;\n          oVar15 = pRVar9->start;\n          iVar35 = *(int *)((int)&pRVar9->start + 4);\n          oVar16 = pRVar9->end;\n          iVar24 = *(int *)((int)&pRVar9->end + 4);\n          uVar31 = uVar31 + 1;\n          puVar25[2] = uVar19 + (int)pRVar9->end;\n          buffer = puVar25 + 5;\n          puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);\n          puVar25[4] = uVar22;\n          *puVar25 = uVar19 + (int)oVar15;\n          pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;\n          puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);\n          puVar25 = buffer;\n        } while (uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333));\n        pPVar21 = (this->ranges_).\n                  super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                  ._M_impl._M_start;\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 <\n             (uint)(((int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2) * -0x55555555));\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(int *)((int)&this->symtab_offset_ + 4) != local_50 ||\n      (pointer)(int)this->symtab_offset_ != local_54) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x518,"do_write");\n  }\n  pGVar10 = this->gdb_symtab_;\n  if (pGVar10->capacity_ != 0) {\n    ppGVar11 = pGVar10->hashtab_;\n    uVar31 = 0;\n    puVar25 = buffer;\n    do {\n      pGVar12 = ppGVar11[uVar31];\n      if (pGVar12 == (Gdb_symbol *)0x0) {\n        uVar30 = 0;\n        uVar22 = 0;\n      }\n      else {\n        if ((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar22 = pGVar12->name_key - 1;\n        uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4);\n        uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index);\n      }\n      puVar25[1] = uVar22;\n      buffer = puVar25 + 2;\n      uVar31 = uVar31 + 1;\n      *puVar25 = uVar30;\n      puVar25 = buffer;\n    } while (uVar31 < pGVar10->capacity_);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(int *)((int)&this->cu_pool_offset_ + 4) != local_50 ||\n      (pointer)(int)this->cu_pool_offset_ != local_54) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x52b,"do_write");\n  }\n  ppvVar34 = (this->cu_vector_list_).\n             super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n             ._M_impl._M_start;\n  uVar31 = (int)(this->cu_vector_list_).\n                super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                ._M_impl._M_finish - (int)ppvVar34;\n  if (uVar31 >> 2 != 0) {\n    ppvVar23 = (pointer)(uVar31 + (int)ppvVar34);\n    do {\n      ppVar13 = ((*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                )._M_impl._M_start;\n      uVar31 = (int)((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish - (int)ppVar13 >> 3;\n      *buffer = uVar31;\n      puVar25 = buffer + 1;\n      if (uVar31 != 0) {\n        puVar32 = &ppVar13->second;\n        puVar36 = buffer + 1;\n        do {\n          uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;\n          if ((int)uVar22 < 0) {\n            uVar22 = (iVar33 + -1) - uVar22;\n          }\n          bVar2 = *puVar32;\n          puVar25 = puVar36 + 1;\n          puVar32 = puVar32 + 8;\n          *puVar36 = (uint)bVar2 << 0x18 | uVar22;\n          puVar36 = puVar25;\n        } while (puVar25 != buffer + uVar31 + 1);\n      }\n      buffer = puVar25;\n      ppvVar34 = ppvVar34 + 1;\n    } while (ppvVar23 != ppvVar34);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  iVar26 = (int)this->stringpool_offset_;\n  if (*(int *)((int)&this->stringpool_offset_ + 4) != local_50 || local_54 != (pointer)iVar26) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x53f,"do_write");\n  }\n  Stringpool_template<char>::write_to_buffer(&this->stringpool_,(uchar *)buffer,uVar3 - iVar26);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Gdb_index::" identifier : : identifier : :) (function_declarator "do_write(Gdb_index *this,Output_file *of)" identifier (parameter_list "(Gdb_index *this,Output_file *of)" ( (parameter_declaration "Gdb_index *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) ))) (compound_statement "{\n  pointer pPVar1;\n  byte bVar2;\n  uint uVar3;\n  pointer pCVar4;\n  Relobj *pRVar5;\n  Dwarf_range_list *pDVar6;\n  _func_int_varargs *p_Var7;\n  pointer ppOVar8;\n  pointer pRVar9;\n  Gdb_hashtab<gold::Gdb_index::Gdb_symbol> *pGVar10;\n  Gdb_symbol **ppGVar11;\n  Gdb_symbol *pGVar12;\n  pointer ppVar13;\n  off_t oVar14;\n  off_t oVar15;\n  off_t oVar16;\n  uchar *puVar17;\n  uint *buffer;\n  uint uVar18;\n  uint uVar19;\n  Output_section *pOVar20;\n  pointer pPVar21;\n  uint uVar22;\n  pointer ppvVar23;\n  int iVar24;\n  uint *puVar25;\n  int iVar26;\n  pointer pCVar27;\n  pointer pCVar28;\n  pointer pTVar29;\n  int extraout_EDX;\n  uint uVar30;\n  uint uVar31;\n  uchar *puVar32;\n  int iVar33;\n  pointer ppvVar34;\n  int iVar35;\n  uint *puVar36;\n  pointer local_54;\n  int local_50;\n  uint local_30;\n  \n  bVar2 = (this->super_Output_section_data).super_Output_data.field_0x1c;\n  if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n  }\n  uVar31 = (uint)(this->super_Output_section_data).super_Output_data.offset_;\n  iVar26 = *(int *)((int)&(this->super_Output_section_data).super_Output_data.offset_ + 4);\n  if ((bVar2 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n  }\n  uVar3 = (uint)(this->super_Output_section_data).super_Output_data.data_size_;\n  if ((iVar26 < 0) ||\n     (iVar35 = *(int *)((int)&of->file_size_ + 4), iVar26 = iVar26 + (uint)CARRY4(uVar3,uVar31),\n     uVar22 = (uint)((uint)of->file_size_ < uVar3 + uVar31), iVar24 = iVar35 - iVar26,\n     (SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }\n  iVar26 = (int)this->tu_offset_;\n  puVar17 = of->base_ + uVar31;\n  iVar35 = *(int *)((int)&this->tu_offset_ + 4);\n  puVar17[0] = '\a';\n  puVar17[1] = '\0';\n  puVar17[2] = '\0';\n  puVar17[3] = '\0';\n  pCVar4 = (this->comp_units_).\n           super__Vector_base<gold::Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>\n           ._M_impl._M_start;\n  puVar17[4] = '\x18';\n  puVar17[5] = '\0';\n  puVar17[6] = '\0';\n  puVar17[7] = '\0';\n  pCVar27 = (this->comp_units_).\n            super__Vector_base<gold::Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>\n            ._M_impl._M_finish;\n  *(int *)(puVar17 + 8) = iVar26;\n  iVar24 = (int)pCVar27 - (int)pCVar4;\n  iVar33 = iVar24 >> 4;\n  *(int *)(puVar17 + 0xc) = (int)this->addr_offset_;\n  *(int *)(puVar17 + 0x10) = (int)this->symtab_offset_;\n  *(int *)(puVar17 + 0x14) = (int)this->cu_pool_offset_;\n  buffer = (uint *)(puVar17 + 0x18);\n  local_54 = (pointer)0x18;\n  if (iVar33 != 0) {\n    pCVar27 = pCVar4;\n    puVar25 = buffer;\n    do {\n      uVar31 = *(uint *)((int)&pCVar27->cu_offset + 4);\n      pCVar28 = pCVar27 + 1;\n      *puVar25 = (uint)pCVar27->cu_offset;\n      puVar25[1] = uVar31;\n      uVar31 = *(uint *)((int)&pCVar27->cu_length + 4);\n      puVar25[2] = (uint)pCVar27->cu_length;\n      puVar25[3] = uVar31;\n      pCVar27 = pCVar28;\n      puVar25 = puVar25 + 4;\n    } while ((pointer)((int)pCVar4 + iVar24) != pCVar28);\n    buffer = (uint *)((int)buffer + iVar24);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    iVar26 = (int)this->tu_offset_;\n    iVar35 = *(int *)((int)&this->tu_offset_ + 4);\n  }\n  local_50 = (int)local_54 >> 0x1f;\n  if (iVar35 != local_50 || local_54 != (pointer)iVar26) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x4ee,"do_write");\n  }\n  pTVar29 = (this->type_units_).\n            super__Vector_base<gold::Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>\n            ._M_impl._M_start;\n  iVar26 = (int)(this->type_units_).\n                super__Vector_base<gold::Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>\n                ._M_impl._M_finish - (int)pTVar29;\n  if ((iVar26 >> 3) * -0x55555555 != 0) {\n    puVar25 = (uint *)(iVar26 + (int)buffer);\n    do {\n      uVar31 = *(uint *)((int)&pTVar29->tu_offset + 4);\n      puVar36 = buffer + 6;\n      *buffer = (uint)pTVar29->tu_offset;\n      buffer[1] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_offset + 4);\n      buffer[2] = (uint)pTVar29->type_offset;\n      buffer[3] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_signature + 4);\n      buffer[4] = (uint)pTVar29->type_signature;\n      buffer[5] = uVar31;\n      buffer = puVar36;\n      pTVar29 = pTVar29 + 1;\n    } while (puVar36 != puVar25);\n    local_54 = (pointer)((int)puVar25 - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n    buffer = puVar25;\n  }\n  if (*(int *)((int)&this->addr_offset_ + 4) != local_50 ||\n      (pointer)(int)this->addr_offset_ != local_54) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x4fa,"do_write");\n  }\n  pPVar21 = (this->ranges_).\n            super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n            ._M_impl._M_start;\n  if (pPVar21 !=\n      (this->ranges_).\n      super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n      ._M_impl._M_finish) {\n    local_30 = 0;\n    do {\n      pPVar1 = pPVar21 + local_30;\n      uVar31 = pPVar1->cu_index;\n      uVar22 = (iVar33 + -1) - uVar31;\n      if (-1 < (int)uVar31) {\n        uVar22 = uVar31;\n      }\n      pRVar5 = pPVar1->object;\n      pDVar6 = pPVar1->ranges;\n      local_54 = (pDVar6->range_list_).\n                 super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                 ._M_impl._M_start;\n      if ((pDVar6->range_list_).\n          super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n          ._M_impl._M_finish != local_54) {\n        uVar31 = 0;\n        puVar25 = buffer;\n        do {\n          pRVar9 = local_54 + uVar31;\n          uVar30 = pRVar9->shndx;\n          if (uVar30 == 0) {\n            uVar19 = 0;\n            iVar26 = 0;\n          }\n          else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }\n          oVar14 = pRVar9->start;\n          oVar15 = pRVar9->start;\n          iVar35 = *(int *)((int)&pRVar9->start + 4);\n          oVar16 = pRVar9->end;\n          iVar24 = *(int *)((int)&pRVar9->end + 4);\n          uVar31 = uVar31 + 1;\n          puVar25[2] = uVar19 + (int)pRVar9->end;\n          buffer = puVar25 + 5;\n          puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);\n          puVar25[4] = uVar22;\n          *puVar25 = uVar19 + (int)oVar15;\n          pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;\n          puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);\n          puVar25 = buffer;\n        } while (uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333));\n        pPVar21 = (this->ranges_).\n                  super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                  ._M_impl._M_start;\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 <\n             (uint)(((int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2) * -0x55555555));\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(int *)((int)&this->symtab_offset_ + 4) != local_50 ||\n      (pointer)(int)this->symtab_offset_ != local_54) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x518,"do_write");\n  }\n  pGVar10 = this->gdb_symtab_;\n  if (pGVar10->capacity_ != 0) {\n    ppGVar11 = pGVar10->hashtab_;\n    uVar31 = 0;\n    puVar25 = buffer;\n    do {\n      pGVar12 = ppGVar11[uVar31];\n      if (pGVar12 == (Gdb_symbol *)0x0) {\n        uVar30 = 0;\n        uVar22 = 0;\n      }\n      else {\n        if ((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar22 = pGVar12->name_key - 1;\n        uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4);\n        uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index);\n      }\n      puVar25[1] = uVar22;\n      buffer = puVar25 + 2;\n      uVar31 = uVar31 + 1;\n      *puVar25 = uVar30;\n      puVar25 = buffer;\n    } while (uVar31 < pGVar10->capacity_);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(int *)((int)&this->cu_pool_offset_ + 4) != local_50 ||\n      (pointer)(int)this->cu_pool_offset_ != local_54) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x52b,"do_write");\n  }\n  ppvVar34 = (this->cu_vector_list_).\n             super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n             ._M_impl._M_start;\n  uVar31 = (int)(this->cu_vector_list_).\n                super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*>_>\n                ._M_impl._M_finish - (int)ppvVar34;\n  if (uVar31 >> 2 != 0) {\n    ppvVar23 = (pointer)(uVar31 + (int)ppvVar34);\n    do {\n      ppVar13 = ((*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                )._M_impl._M_start;\n      uVar31 = (int)((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish - (int)ppVar13 >> 3;\n      *buffer = uVar31;\n      puVar25 = buffer + 1;\n      if (uVar31 != 0) {\n        puVar32 = &ppVar13->second;\n        puVar36 = buffer + 1;\n        do {\n          uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;\n          if ((int)uVar22 < 0) {\n            uVar22 = (iVar33 + -1) - uVar22;\n          }\n          bVar2 = *puVar32;\n          puVar25 = puVar36 + 1;\n          puVar32 = puVar32 + 8;\n          *puVar36 = (uint)bVar2 << 0x18 | uVar22;\n          puVar36 = puVar25;\n        } while (puVar25 != buffer + uVar31 + 1);\n      }\n      buffer = puVar25;\n      ppvVar34 = ppvVar34 + 1;\n    } while (ppvVar23 != ppvVar34);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  iVar26 = (int)this->stringpool_offset_;\n  if (*(int *)((int)&this->stringpool_offset_ + 4) != local_50 || local_54 != (pointer)iVar26) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x53f,"do_write");\n  }\n  Stringpool_template<char>::write_to_buffer(&this->stringpool_,(uchar *)buffer,uVar3 - iVar26);\n  return;\n}" { (declaration "pointer pPVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "pointer pCVar4;" type_identifier identifier ;) (declaration "Relobj *pRVar5;" type_identifier (pointer_declarator "*pRVar5" * identifier) ;) (declaration "Dwarf_range_list *pDVar6;" type_identifier (pointer_declarator "*pDVar6" * identifier) ;) (declaration "_func_int_varargs *p_Var7;" type_identifier (pointer_declarator "*p_Var7" * identifier) ;) (declaration "pointer ppOVar8;" type_identifier identifier ;) (declaration "pointer pRVar9;" type_identifier identifier ;) (ERROR "Gdb_hashtab<gold::" (binary_expression "Gdb_hashtab<gold" identifier < identifier) : :) (labeled_statement "Gdb_index::Gdb_symbol> *pGVar10;" statement_identifier : (ERROR ":" :) (expression_statement "Gdb_symbol> *pGVar10;" (binary_expression "Gdb_symbol> *pGVar10" identifier > (pointer_expression "*pGVar10" * identifier)) ;)) (declaration "Gdb_symbol **ppGVar11;" type_identifier (pointer_declarator "**ppGVar11" * (pointer_declarator "*ppGVar11" * identifier)) ;) (declaration "Gdb_symbol *pGVar12;" type_identifier (pointer_declarator "*pGVar12" * identifier) ;) (declaration "pointer ppVar13;" type_identifier identifier ;) (declaration "off_t oVar14;" type_identifier identifier ;) (declaration "off_t oVar15;" type_identifier identifier ;) (declaration "off_t oVar16;" type_identifier identifier ;) (declaration "uchar *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint *buffer;" type_identifier (pointer_declarator "*buffer" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "Output_section *pOVar20;" type_identifier (pointer_declarator "*pOVar20" * identifier) ;) (declaration "pointer pPVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "pointer ppvVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "uint *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "pointer pCVar27;" type_identifier identifier ;) (declaration "pointer pCVar28;" type_identifier identifier ;) (declaration "pointer pTVar29;" type_identifier identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "uchar *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "pointer ppvVar34;" type_identifier identifier ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "uint *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "pointer local_54;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "bVar2 = (this->super_Output_section_data).super_Output_data.field_0x1c;" (assignment_expression "bVar2 = (this->super_Output_section_data).super_Output_data.field_0x1c" identifier = (field_expression "(this->super_Output_section_data).super_Output_data.field_0x1c" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((bVar2 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n  }" if (parenthesized_expression "((bVar2 & 4) == 0)" ( (binary_expression "(bVar2 & 4) == 0" (parenthesized_expression "(bVar2 & 4)" ( (binary_expression "bVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xe3,"offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "uVar31 = (uint)(this->super_Output_section_data).super_Output_data.offset_;" (assignment_expression "uVar31 = (uint)(this->super_Output_section_data).super_Output_data.offset_" identifier = (field_expression "(uint)(this->super_Output_section_data).super_Output_data.offset_" (field_expression "(uint)(this->super_Output_section_data).super_Output_data" (call_expression "(uint)(this->super_Output_section_data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ;) (expression_statement "iVar26 = *(int *)((int)&(this->super_Output_section_data).super_Output_data.offset_ + 4);" (assignment_expression "iVar26 = *(int *)((int)&(this->super_Output_section_data).super_Output_data.offset_ + 4)" identifier = (pointer_expression "*(int *)((int)&(this->super_Output_section_data).super_Output_data.offset_ + 4)" * (cast_expression "(int *)((int)&(this->super_Output_section_data).super_Output_data.offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(this->super_Output_section_data).super_Output_data.offset_ + 4)" ( (binary_expression "(int)&(this->super_Output_section_data).super_Output_data.offset_ + 4" (cast_expression "(int)&(this->super_Output_section_data).super_Output_data.offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(this->super_Output_section_data).super_Output_data.offset_" & (field_expression "(this->super_Output_section_data).super_Output_data.offset_" (field_expression "(this->super_Output_section_data).super_Output_data" (parenthesized_expression "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (if_statement "if ((bVar2 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n  }" if (parenthesized_expression "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 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 "uVar3 = (uint)(this->super_Output_section_data).super_Output_data.data_size_;" (assignment_expression "uVar3 = (uint)(this->super_Output_section_data).super_Output_data.data_size_" identifier = (field_expression "(uint)(this->super_Output_section_data).super_Output_data.data_size_" (field_expression "(uint)(this->super_Output_section_data).super_Output_data" (call_expression "(uint)(this->super_Output_section_data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(this->super_Output_section_data)" ( (field_expression "this->super_Output_section_data" identifier -> field_identifier) ))) . field_identifier) . field_identifier)) ;) (if_statement "if ((iVar26 < 0) ||\n     (iVar35 = *(int *)((int)&of->file_size_ + 4), iVar26 = iVar26 + (uint)CARRY4(uVar3,uVar31),\n     uVar22 = (uint)((uint)of->file_size_ < uVar3 + uVar31), iVar24 = iVar35 - iVar26,\n     (SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0)) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }" if (parenthesized_expression "((iVar26 < 0) ||\n     (iVar35 = *(int *)((int)&of->file_size_ + 4), iVar26 = iVar26 + (uint)CARRY4(uVar3,uVar31),\n     uVar22 = (uint)((uint)of->file_size_ < uVar3 + uVar31), iVar24 = iVar35 - iVar26,\n     (SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0))" ( (binary_expression "(iVar26 < 0) ||\n     (iVar35 = *(int *)((int)&of->file_size_ + 4), iVar26 = iVar26 + (uint)CARRY4(uVar3,uVar31),\n     uVar22 = (uint)((uint)of->file_size_ < uVar3 + uVar31), iVar24 = iVar35 - iVar26,\n     (SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0)" (parenthesized_expression "(iVar26 < 0)" ( (binary_expression "iVar26 < 0" identifier < number_literal) )) || (parenthesized_expression "(iVar35 = *(int *)((int)&of->file_size_ + 4), iVar26 = iVar26 + (uint)CARRY4(uVar3,uVar31),\n     uVar22 = (uint)((uint)of->file_size_ < uVar3 + uVar31), iVar24 = iVar35 - iVar26,\n     (SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0)" ( (comma_expression "iVar35 = *(int *)((int)&of->file_size_ + 4), iVar26 = iVar26 + (uint)CARRY4(uVar3,uVar31),\n     uVar22 = (uint)((uint)of->file_size_ < uVar3 + uVar31), iVar24 = iVar35 - iVar26,\n     (SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0" (assignment_expression "iVar35 = *(int *)((int)&of->file_size_ + 4)" identifier = (pointer_expression "*(int *)((int)&of->file_size_ + 4)" * (cast_expression "(int *)((int)&of->file_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&of->file_size_ + 4)" ( (binary_expression "(int)&of->file_size_ + 4" (cast_expression "(int)&of->file_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&of->file_size_" & (field_expression "of->file_size_" identifier -> field_identifier))) + number_literal) ))))) , (comma_expression "iVar26 = iVar26 + (uint)CARRY4(uVar3,uVar31),\n     uVar22 = (uint)((uint)of->file_size_ < uVar3 + uVar31), iVar24 = iVar35 - iVar26,\n     (SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0" (assignment_expression "iVar26 = iVar26 + (uint)CARRY4(uVar3,uVar31)" identifier = (binary_expression "iVar26 + (uint)CARRY4(uVar3,uVar31)" identifier + (cast_expression "(uint)CARRY4(uVar3,uVar31)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar3,uVar31)" identifier (argument_list "(uVar3,uVar31)" ( identifier , identifier )))))) , (comma_expression "uVar22 = (uint)((uint)of->file_size_ < uVar3 + uVar31), iVar24 = iVar35 - iVar26,\n     (SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0" (assignment_expression "uVar22 = (uint)((uint)of->file_size_ < uVar3 + uVar31)" identifier = (call_expression "(uint)((uint)of->file_size_ < uVar3 + uVar31)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)of->file_size_ < uVar3 + uVar31)" ( (binary_expression "(uint)of->file_size_ < uVar3 + uVar31" (cast_expression "(uint)of->file_size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "of->file_size_" identifier -> field_identifier)) < (binary_expression "uVar3 + uVar31" identifier + identifier)) )))) , (comma_expression "iVar24 = iVar35 - iVar26,\n     (SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0" (assignment_expression "iVar24 = iVar35 - iVar26" identifier = (binary_expression "iVar35 - iVar26" identifier - identifier)) , (binary_expression "(SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)) != (int)(iVar24 - uVar22) < 0" (parenthesized_expression "(SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22))" ( (binary_expression "SBORROW4(iVar35,iVar26) != SBORROW4(iVar24,uVar22)" (call_expression "SBORROW4(iVar35,iVar26)" identifier (argument_list "(iVar35,iVar26)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar24,uVar22)" identifier (argument_list "(iVar24,uVar22)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar24 - uVar22) < 0" (cast_expression "(int)(iVar24 - uVar22)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar24 - uVar22)" ( (binary_expression "iVar24 - uVar22" identifier - identifier) ))) < number_literal)))))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");" (call_expression "do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view")" identifier (argument_list "("../../gold/output.h",0x6f,"get_output_view")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""get_output_view"" " string_content ") ))) ;) })) (expression_statement "iVar26 = (int)this->tu_offset_;" (assignment_expression "iVar26 = (int)this->tu_offset_" identifier = (cast_expression "(int)this->tu_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->tu_offset_" identifier -> field_identifier))) ;) (expression_statement "puVar17 = of->base_ + uVar31;" (assignment_expression "puVar17 = of->base_ + uVar31" identifier = (binary_expression "of->base_ + uVar31" (field_expression "of->base_" identifier -> field_identifier) + identifier)) ;) (expression_statement "iVar35 = *(int *)((int)&this->tu_offset_ + 4);" (assignment_expression "iVar35 = *(int *)((int)&this->tu_offset_ + 4)" identifier = (pointer_expression "*(int *)((int)&this->tu_offset_ + 4)" * (cast_expression "(int *)((int)&this->tu_offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->tu_offset_ + 4)" ( (binary_expression "(int)&this->tu_offset_ + 4" (cast_expression "(int)&this->tu_offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->tu_offset_" & (field_expression "this->tu_offset_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar17[0] = '\a';" (assignment_expression "puVar17[0] = '\a'" (subscript_expression "puVar17[0]" identifier [ number_literal ]) = (char_literal "'\a'" ' escape_sequence ')) ;) (expression_statement "puVar17[1] = '\0';" (assignment_expression "puVar17[1] = '\0'" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar17[2] = '\0';" (assignment_expression "puVar17[2] = '\0'" (subscript_expression "puVar17[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar17[3] = '\0';" (assignment_expression "puVar17[3] = '\0'" (subscript_expression "puVar17[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (ERROR "pCVar4 = (this->comp_units_).\n           super__Vector_base<gold::" (assignment_expression "pCVar4 = (this->comp_units_).\n           super__Vector_base<gold" identifier = (binary_expression "(this->comp_units_).\n           super__Vector_base<gold" (field_expression "(this->comp_units_).\n           super__Vector_base" (parenthesized_expression "(this->comp_units_)" ( (field_expression "this->comp_units_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>\n           ._M_impl._M_start;" statement_identifier (ERROR "::Comp_unit,_std::allocator<gold:" : : (comma_expression "Comp_unit,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Gdb_index::Comp_unit>_>\n           ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Comp_unit>_>\n           ._M_impl._M_start;" (field_expression "Comp_unit>_>\n           ._M_impl._M_start" (field_expression "Comp_unit>_>\n           ._M_impl" (binary_expression "Comp_unit>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (expression_statement "puVar17[4] = '\x18';" (assignment_expression "puVar17[4] = '\x18'" (subscript_expression "puVar17[4]" identifier [ number_literal ]) = (char_literal "'\x18'" ' escape_sequence ')) ;) (expression_statement "puVar17[5] = '\0';" (assignment_expression "puVar17[5] = '\0'" (subscript_expression "puVar17[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar17[6] = '\0';" (assignment_expression "puVar17[6] = '\0'" (subscript_expression "puVar17[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar17[7] = '\0';" (assignment_expression "puVar17[7] = '\0'" (subscript_expression "puVar17[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (ERROR "pCVar27 = (this->comp_units_).\n            super__Vector_base<gold::" (assignment_expression "pCVar27 = (this->comp_units_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->comp_units_).\n            super__Vector_base<gold" (field_expression "(this->comp_units_).\n            super__Vector_base" (parenthesized_expression "(this->comp_units_)" ( (field_expression "this->comp_units_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Gdb_index::Comp_unit,_std::allocator<gold::Gdb_index::Comp_unit>_>\n            ._M_impl._M_finish;" statement_identifier (ERROR "::Comp_unit,_std::allocator<gold:" : : (comma_expression "Comp_unit,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Gdb_index::Comp_unit>_>\n            ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Comp_unit>_>\n            ._M_impl._M_finish;" (field_expression "Comp_unit>_>\n            ._M_impl._M_finish" (field_expression "Comp_unit>_>\n            ._M_impl" (binary_expression "Comp_unit>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (expression_statement "*(int *)(puVar17 + 8) = iVar26;" (assignment_expression "*(int *)(puVar17 + 8) = iVar26" (pointer_expression "*(int *)(puVar17 + 8)" * (cast_expression "(int *)(puVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 8)" ( (binary_expression "puVar17 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar24 = (int)pCVar27 - (int)pCVar4;" (assignment_expression "iVar24 = (int)pCVar27 - (int)pCVar4" identifier = (binary_expression "(int)pCVar27 - (int)pCVar4" (cast_expression "(int)pCVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pCVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar33 = iVar24 >> 4;" (assignment_expression "iVar33 = iVar24 >> 4" identifier = (binary_expression "iVar24 >> 4" identifier >> number_literal)) ;) (expression_statement "*(int *)(puVar17 + 0xc) = (int)this->addr_offset_;" (assignment_expression "*(int *)(puVar17 + 0xc) = (int)this->addr_offset_" (pointer_expression "*(int *)(puVar17 + 0xc)" * (cast_expression "(int *)(puVar17 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0xc)" ( (binary_expression "puVar17 + 0xc" identifier + number_literal) )))) = (cast_expression "(int)this->addr_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->addr_offset_" identifier -> field_identifier))) ;) (expression_statement "*(int *)(puVar17 + 0x10) = (int)this->symtab_offset_;" (assignment_expression "*(int *)(puVar17 + 0x10) = (int)this->symtab_offset_" (pointer_expression "*(int *)(puVar17 + 0x10)" * (cast_expression "(int *)(puVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x10)" ( (binary_expression "puVar17 + 0x10" identifier + number_literal) )))) = (cast_expression "(int)this->symtab_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->symtab_offset_" identifier -> field_identifier))) ;) (expression_statement "*(int *)(puVar17 + 0x14) = (int)this->cu_pool_offset_;" (assignment_expression "*(int *)(puVar17 + 0x14) = (int)this->cu_pool_offset_" (pointer_expression "*(int *)(puVar17 + 0x14)" * (cast_expression "(int *)(puVar17 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x14)" ( (binary_expression "puVar17 + 0x14" identifier + number_literal) )))) = (cast_expression "(int)this->cu_pool_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->cu_pool_offset_" identifier -> field_identifier))) ;) (expression_statement "buffer = (uint *)(puVar17 + 0x18);" (assignment_expression "buffer = (uint *)(puVar17 + 0x18)" identifier = (cast_expression "(uint *)(puVar17 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x18)" ( (binary_expression "puVar17 + 0x18" identifier + number_literal) )))) ;) (expression_statement "local_54 = (pointer)0x18;" (assignment_expression "local_54 = (pointer)0x18" identifier = (cast_expression "(pointer)0x18" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (if_statement "if (iVar33 != 0) {\n    pCVar27 = pCVar4;\n    puVar25 = buffer;\n    do {\n      uVar31 = *(uint *)((int)&pCVar27->cu_offset + 4);\n      pCVar28 = pCVar27 + 1;\n      *puVar25 = (uint)pCVar27->cu_offset;\n      puVar25[1] = uVar31;\n      uVar31 = *(uint *)((int)&pCVar27->cu_length + 4);\n      puVar25[2] = (uint)pCVar27->cu_length;\n      puVar25[3] = uVar31;\n      pCVar27 = pCVar28;\n      puVar25 = puVar25 + 4;\n    } while ((pointer)((int)pCVar4 + iVar24) != pCVar28);\n    buffer = (uint *)((int)buffer + iVar24);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    iVar26 = (int)this->tu_offset_;\n    iVar35 = *(int *)((int)&this->tu_offset_ + 4);\n  }" if (parenthesized_expression "(iVar33 != 0)" ( (binary_expression "iVar33 != 0" identifier != number_literal) )) (compound_statement "{\n    pCVar27 = pCVar4;\n    puVar25 = buffer;\n    do {\n      uVar31 = *(uint *)((int)&pCVar27->cu_offset + 4);\n      pCVar28 = pCVar27 + 1;\n      *puVar25 = (uint)pCVar27->cu_offset;\n      puVar25[1] = uVar31;\n      uVar31 = *(uint *)((int)&pCVar27->cu_length + 4);\n      puVar25[2] = (uint)pCVar27->cu_length;\n      puVar25[3] = uVar31;\n      pCVar27 = pCVar28;\n      puVar25 = puVar25 + 4;\n    } while ((pointer)((int)pCVar4 + iVar24) != pCVar28);\n    buffer = (uint *)((int)buffer + iVar24);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    iVar26 = (int)this->tu_offset_;\n    iVar35 = *(int *)((int)&this->tu_offset_ + 4);\n  }" { (expression_statement "pCVar27 = pCVar4;" (assignment_expression "pCVar27 = pCVar4" identifier = identifier) ;) (expression_statement "puVar25 = buffer;" (assignment_expression "puVar25 = buffer" identifier = identifier) ;) (do_statement "do {\n      uVar31 = *(uint *)((int)&pCVar27->cu_offset + 4);\n      pCVar28 = pCVar27 + 1;\n      *puVar25 = (uint)pCVar27->cu_offset;\n      puVar25[1] = uVar31;\n      uVar31 = *(uint *)((int)&pCVar27->cu_length + 4);\n      puVar25[2] = (uint)pCVar27->cu_length;\n      puVar25[3] = uVar31;\n      pCVar27 = pCVar28;\n      puVar25 = puVar25 + 4;\n    } while ((pointer)((int)pCVar4 + iVar24) != pCVar28);" do (compound_statement "{\n      uVar31 = *(uint *)((int)&pCVar27->cu_offset + 4);\n      pCVar28 = pCVar27 + 1;\n      *puVar25 = (uint)pCVar27->cu_offset;\n      puVar25[1] = uVar31;\n      uVar31 = *(uint *)((int)&pCVar27->cu_length + 4);\n      puVar25[2] = (uint)pCVar27->cu_length;\n      puVar25[3] = uVar31;\n      pCVar27 = pCVar28;\n      puVar25 = puVar25 + 4;\n    }" { (expression_statement "uVar31 = *(uint *)((int)&pCVar27->cu_offset + 4);" (assignment_expression "uVar31 = *(uint *)((int)&pCVar27->cu_offset + 4)" identifier = (pointer_expression "*(uint *)((int)&pCVar27->cu_offset + 4)" * (cast_expression "(uint *)((int)&pCVar27->cu_offset + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pCVar27->cu_offset + 4)" ( (binary_expression "(int)&pCVar27->cu_offset + 4" (cast_expression "(int)&pCVar27->cu_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pCVar27->cu_offset" & (field_expression "pCVar27->cu_offset" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pCVar28 = pCVar27 + 1;" (assignment_expression "pCVar28 = pCVar27 + 1" identifier = (binary_expression "pCVar27 + 1" identifier + number_literal)) ;) (expression_statement "*puVar25 = (uint)pCVar27->cu_offset;" (assignment_expression "*puVar25 = (uint)pCVar27->cu_offset" (pointer_expression "*puVar25" * identifier) = (cast_expression "(uint)pCVar27->cu_offset" ( (type_descriptor "uint" type_identifier) ) (field_expression "pCVar27->cu_offset" identifier -> field_identifier))) ;) (expression_statement "puVar25[1] = uVar31;" (assignment_expression "puVar25[1] = uVar31" (subscript_expression "puVar25[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar31 = *(uint *)((int)&pCVar27->cu_length + 4);" (assignment_expression "uVar31 = *(uint *)((int)&pCVar27->cu_length + 4)" identifier = (pointer_expression "*(uint *)((int)&pCVar27->cu_length + 4)" * (cast_expression "(uint *)((int)&pCVar27->cu_length + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pCVar27->cu_length + 4)" ( (binary_expression "(int)&pCVar27->cu_length + 4" (cast_expression "(int)&pCVar27->cu_length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pCVar27->cu_length" & (field_expression "pCVar27->cu_length" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar25[2] = (uint)pCVar27->cu_length;" (assignment_expression "puVar25[2] = (uint)pCVar27->cu_length" (subscript_expression "puVar25[2]" identifier [ number_literal ]) = (cast_expression "(uint)pCVar27->cu_length" ( (type_descriptor "uint" type_identifier) ) (field_expression "pCVar27->cu_length" identifier -> field_identifier))) ;) (expression_statement "puVar25[3] = uVar31;" (assignment_expression "puVar25[3] = uVar31" (subscript_expression "puVar25[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pCVar27 = pCVar28;" (assignment_expression "pCVar27 = pCVar28" identifier = identifier) ;) (expression_statement "puVar25 = puVar25 + 4;" (assignment_expression "puVar25 = puVar25 + 4" identifier = (binary_expression "puVar25 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "((pointer)((int)pCVar4 + iVar24) != pCVar28)" ( (binary_expression "(pointer)((int)pCVar4 + iVar24) != pCVar28" (call_expression "(pointer)((int)pCVar4 + iVar24)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)pCVar4 + iVar24)" ( (binary_expression "(int)pCVar4 + iVar24" (cast_expression "(int)pCVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) != identifier) )) ;) (expression_statement "buffer = (uint *)((int)buffer + iVar24);" (assignment_expression "buffer = (uint *)((int)buffer + iVar24)" identifier = (cast_expression "(uint *)((int)buffer + iVar24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)buffer + iVar24)" ( (binary_expression "(int)buffer + iVar24" (cast_expression "(int)buffer" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "local_54 = (pointer)((int)buffer - (int)puVar17);" (assignment_expression "local_54 = (pointer)((int)buffer - (int)puVar17)" identifier = (call_expression "(pointer)((int)buffer - (int)puVar17)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)buffer - (int)puVar17)" ( (binary_expression "(int)buffer - (int)puVar17" (cast_expression "(int)buffer" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar26 = (int)this->tu_offset_;" (assignment_expression "iVar26 = (int)this->tu_offset_" identifier = (cast_expression "(int)this->tu_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->tu_offset_" identifier -> field_identifier))) ;) (expression_statement "iVar35 = *(int *)((int)&this->tu_offset_ + 4);" (assignment_expression "iVar35 = *(int *)((int)&this->tu_offset_ + 4)" identifier = (pointer_expression "*(int *)((int)&this->tu_offset_ + 4)" * (cast_expression "(int *)((int)&this->tu_offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->tu_offset_ + 4)" ( (binary_expression "(int)&this->tu_offset_ + 4" (cast_expression "(int)&this->tu_offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->tu_offset_" & (field_expression "this->tu_offset_" identifier -> field_identifier))) + number_literal) ))))) ;) })) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (if_statement "if (iVar35 != local_50 || local_54 != (pointer)iVar26) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x4ee,"do_write");\n  }" if (parenthesized_expression "(iVar35 != local_50 || local_54 != (pointer)iVar26)" ( (binary_expression "iVar35 != local_50 || local_54 != (pointer)iVar26" (binary_expression "iVar35 != local_50" identifier != identifier) || (binary_expression "local_54 != (pointer)iVar26" identifier != (cast_expression "(pointer)iVar26" ( (type_descriptor "pointer" type_identifier) ) identifier))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x4ee,"do_write");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/gdb-index.cc",0x4ee,"do_write");" (call_expression "do_gold_unreachable("../../gold/gdb-index.cc",0x4ee,"do_write")" identifier (argument_list "("../../gold/gdb-index.cc",0x4ee,"do_write")" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })) (ERROR "pTVar29 = (this->type_units_).\n            super__Vector_base<gold::" (assignment_expression "pTVar29 = (this->type_units_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->type_units_).\n            super__Vector_base<gold" (field_expression "(this->type_units_).\n            super__Vector_base" (parenthesized_expression "(this->type_units_)" ( (field_expression "this->type_units_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>\n            ._M_impl._M_start;" statement_identifier (ERROR "::Type_unit,_std::allocator<gold:" : : (comma_expression "Type_unit,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Gdb_index::Type_unit>_>\n            ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Type_unit>_>\n            ._M_impl._M_start;" (field_expression "Type_unit>_>\n            ._M_impl._M_start" (field_expression "Type_unit>_>\n            ._M_impl" (binary_expression "Type_unit>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (ERROR "iVar26 = (int)(this->type_units_).\n                super__Vector_base<gold::" (assignment_expression "iVar26 = (int)(this->type_units_).\n                super__Vector_base<gold" identifier = (binary_expression "(int)(this->type_units_).\n                super__Vector_base<gold" (cast_expression "(int)(this->type_units_).\n                super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->type_units_).\n                super__Vector_base" (parenthesized_expression "(this->type_units_)" ( (field_expression "this->type_units_" identifier -> field_identifier) )) . field_identifier)) < identifier)) : :) (labeled_statement "Gdb_index::Type_unit,_std::allocator<gold::Gdb_index::Type_unit>_>\n                ._M_impl._M_finish - (int)pTVar29;" statement_identifier (ERROR "::Type_unit,_std::allocator<gold:" : : (comma_expression "Type_unit,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Gdb_index::Type_unit>_>\n                ._M_impl._M_finish - (int)pTVar29;" statement_identifier : (ERROR ":" :) (expression_statement "Type_unit>_>\n                ._M_impl._M_finish - (int)pTVar29;" (binary_expression "Type_unit>_>\n                ._M_impl._M_finish - (int)pTVar29" (field_expression "Type_unit>_>\n                ._M_impl._M_finish" (field_expression "Type_unit>_>\n                ._M_impl" (binary_expression "Type_unit>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)pTVar29" ( (type_descriptor "int" primitive_type) ) identifier)) ;))) (if_statement "if ((iVar26 >> 3) * -0x55555555 != 0) {\n    puVar25 = (uint *)(iVar26 + (int)buffer);\n    do {\n      uVar31 = *(uint *)((int)&pTVar29->tu_offset + 4);\n      puVar36 = buffer + 6;\n      *buffer = (uint)pTVar29->tu_offset;\n      buffer[1] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_offset + 4);\n      buffer[2] = (uint)pTVar29->type_offset;\n      buffer[3] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_signature + 4);\n      buffer[4] = (uint)pTVar29->type_signature;\n      buffer[5] = uVar31;\n      buffer = puVar36;\n      pTVar29 = pTVar29 + 1;\n    } while (puVar36 != puVar25);\n    local_54 = (pointer)((int)puVar25 - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n    buffer = puVar25;\n  }" if (parenthesized_expression "((iVar26 >> 3) * -0x55555555 != 0)" ( (binary_expression "(iVar26 >> 3) * -0x55555555 != 0" (binary_expression "(iVar26 >> 3) * -0x55555555" (parenthesized_expression "(iVar26 >> 3)" ( (binary_expression "iVar26 >> 3" identifier >> number_literal) )) * number_literal) != number_literal) )) (compound_statement "{\n    puVar25 = (uint *)(iVar26 + (int)buffer);\n    do {\n      uVar31 = *(uint *)((int)&pTVar29->tu_offset + 4);\n      puVar36 = buffer + 6;\n      *buffer = (uint)pTVar29->tu_offset;\n      buffer[1] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_offset + 4);\n      buffer[2] = (uint)pTVar29->type_offset;\n      buffer[3] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_signature + 4);\n      buffer[4] = (uint)pTVar29->type_signature;\n      buffer[5] = uVar31;\n      buffer = puVar36;\n      pTVar29 = pTVar29 + 1;\n    } while (puVar36 != puVar25);\n    local_54 = (pointer)((int)puVar25 - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n    buffer = puVar25;\n  }" { (expression_statement "puVar25 = (uint *)(iVar26 + (int)buffer);" (assignment_expression "puVar25 = (uint *)(iVar26 + (int)buffer)" identifier = (cast_expression "(uint *)(iVar26 + (int)buffer)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + (int)buffer)" ( (binary_expression "iVar26 + (int)buffer" identifier + (cast_expression "(int)buffer" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n      uVar31 = *(uint *)((int)&pTVar29->tu_offset + 4);\n      puVar36 = buffer + 6;\n      *buffer = (uint)pTVar29->tu_offset;\n      buffer[1] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_offset + 4);\n      buffer[2] = (uint)pTVar29->type_offset;\n      buffer[3] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_signature + 4);\n      buffer[4] = (uint)pTVar29->type_signature;\n      buffer[5] = uVar31;\n      buffer = puVar36;\n      pTVar29 = pTVar29 + 1;\n    } while (puVar36 != puVar25);" do (compound_statement "{\n      uVar31 = *(uint *)((int)&pTVar29->tu_offset + 4);\n      puVar36 = buffer + 6;\n      *buffer = (uint)pTVar29->tu_offset;\n      buffer[1] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_offset + 4);\n      buffer[2] = (uint)pTVar29->type_offset;\n      buffer[3] = uVar31;\n      uVar31 = *(uint *)((int)&pTVar29->type_signature + 4);\n      buffer[4] = (uint)pTVar29->type_signature;\n      buffer[5] = uVar31;\n      buffer = puVar36;\n      pTVar29 = pTVar29 + 1;\n    }" { (expression_statement "uVar31 = *(uint *)((int)&pTVar29->tu_offset + 4);" (assignment_expression "uVar31 = *(uint *)((int)&pTVar29->tu_offset + 4)" identifier = (pointer_expression "*(uint *)((int)&pTVar29->tu_offset + 4)" * (cast_expression "(uint *)((int)&pTVar29->tu_offset + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar29->tu_offset + 4)" ( (binary_expression "(int)&pTVar29->tu_offset + 4" (cast_expression "(int)&pTVar29->tu_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar29->tu_offset" & (field_expression "pTVar29->tu_offset" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar36 = buffer + 6;" (assignment_expression "puVar36 = buffer + 6" identifier = (binary_expression "buffer + 6" identifier + number_literal)) ;) (expression_statement "*buffer = (uint)pTVar29->tu_offset;" (assignment_expression "*buffer = (uint)pTVar29->tu_offset" (pointer_expression "*buffer" * identifier) = (cast_expression "(uint)pTVar29->tu_offset" ( (type_descriptor "uint" type_identifier) ) (field_expression "pTVar29->tu_offset" identifier -> field_identifier))) ;) (expression_statement "buffer[1] = uVar31;" (assignment_expression "buffer[1] = uVar31" (subscript_expression "buffer[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar31 = *(uint *)((int)&pTVar29->type_offset + 4);" (assignment_expression "uVar31 = *(uint *)((int)&pTVar29->type_offset + 4)" identifier = (pointer_expression "*(uint *)((int)&pTVar29->type_offset + 4)" * (cast_expression "(uint *)((int)&pTVar29->type_offset + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar29->type_offset + 4)" ( (binary_expression "(int)&pTVar29->type_offset + 4" (cast_expression "(int)&pTVar29->type_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar29->type_offset" & (field_expression "pTVar29->type_offset" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "buffer[2] = (uint)pTVar29->type_offset;" (assignment_expression "buffer[2] = (uint)pTVar29->type_offset" (subscript_expression "buffer[2]" identifier [ number_literal ]) = (cast_expression "(uint)pTVar29->type_offset" ( (type_descriptor "uint" type_identifier) ) (field_expression "pTVar29->type_offset" identifier -> field_identifier))) ;) (expression_statement "buffer[3] = uVar31;" (assignment_expression "buffer[3] = uVar31" (subscript_expression "buffer[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar31 = *(uint *)((int)&pTVar29->type_signature + 4);" (assignment_expression "uVar31 = *(uint *)((int)&pTVar29->type_signature + 4)" identifier = (pointer_expression "*(uint *)((int)&pTVar29->type_signature + 4)" * (cast_expression "(uint *)((int)&pTVar29->type_signature + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar29->type_signature + 4)" ( (binary_expression "(int)&pTVar29->type_signature + 4" (cast_expression "(int)&pTVar29->type_signature" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar29->type_signature" & (field_expression "pTVar29->type_signature" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "buffer[4] = (uint)pTVar29->type_signature;" (assignment_expression "buffer[4] = (uint)pTVar29->type_signature" (subscript_expression "buffer[4]" identifier [ number_literal ]) = (cast_expression "(uint)pTVar29->type_signature" ( (type_descriptor "uint" type_identifier) ) (field_expression "pTVar29->type_signature" identifier -> field_identifier))) ;) (expression_statement "buffer[5] = uVar31;" (assignment_expression "buffer[5] = uVar31" (subscript_expression "buffer[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "buffer = puVar36;" (assignment_expression "buffer = puVar36" identifier = identifier) ;) (expression_statement "pTVar29 = pTVar29 + 1;" (assignment_expression "pTVar29 = pTVar29 + 1" identifier = (binary_expression "pTVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar36 != puVar25)" ( (binary_expression "puVar36 != puVar25" identifier != identifier) )) ;) (expression_statement "local_54 = (pointer)((int)puVar25 - (int)puVar17);" (assignment_expression "local_54 = (pointer)((int)puVar25 - (int)puVar17)" identifier = (call_expression "(pointer)((int)puVar25 - (int)puVar17)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)puVar25 - (int)puVar17)" ( (binary_expression "(int)puVar25 - (int)puVar17" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "buffer = puVar25;" (assignment_expression "buffer = puVar25" identifier = identifier) ;) })) (if_statement "if (*(int *)((int)&this->addr_offset_ + 4) != local_50 ||\n      (pointer)(int)this->addr_offset_ != local_54) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x4fa,"do_write");\n  }" if (parenthesized_expression "(*(int *)((int)&this->addr_offset_ + 4) != local_50 ||\n      (pointer)(int)this->addr_offset_ != local_54)" ( (binary_expression "*(int *)((int)&this->addr_offset_ + 4) != local_50 ||\n      (pointer)(int)this->addr_offset_ != local_54" (binary_expression "*(int *)((int)&this->addr_offset_ + 4) != local_50" (pointer_expression "*(int *)((int)&this->addr_offset_ + 4)" * (cast_expression "(int *)((int)&this->addr_offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->addr_offset_ + 4)" ( (binary_expression "(int)&this->addr_offset_ + 4" (cast_expression "(int)&this->addr_offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->addr_offset_" & (field_expression "this->addr_offset_" identifier -> field_identifier))) + number_literal) )))) != identifier) || (binary_expression "(pointer)(int)this->addr_offset_ != local_54" (cast_expression "(pointer)(int)this->addr_offset_" ( (type_descriptor "pointer" type_identifier) ) (cast_expression "(int)this->addr_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->addr_offset_" identifier -> field_identifier))) != identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x4fa,"do_write");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/gdb-index.cc",0x4fa,"do_write");" (call_expression "do_gold_unreachable("../../gold/gdb-index.cc",0x4fa,"do_write")" identifier (argument_list "("../../gold/gdb-index.cc",0x4fa,"do_write")" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })) (ERROR "pPVar21 = (this->ranges_).\n            super__Vector_base<gold::" (assignment_expression "pPVar21 = (this->ranges_).\n            super__Vector_base<gold" identifier = (binary_expression "(this->ranges_).\n            super__Vector_base<gold" (field_expression "(this->ranges_).\n            super__Vector_base" (parenthesized_expression "(this->ranges_)" ( (field_expression "this->ranges_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n            ._M_impl._M_start;" statement_identifier (ERROR "::Per_cu_range_list,_std::allocator<gold:" : : (comma_expression "Per_cu_range_list,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Gdb_index::Per_cu_range_list>_>\n            ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Per_cu_range_list>_>\n            ._M_impl._M_start;" (field_expression "Per_cu_range_list>_>\n            ._M_impl._M_start" (field_expression "Per_cu_range_list>_>\n            ._M_impl" (binary_expression "Per_cu_range_list>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (if_statement "if (pPVar21 !=\n      (this->ranges_).\n      super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n      ._M_impl._M_finish) {\n    local_30 = 0;\n    do {\n      pPVar1 = pPVar21 + local_30;\n      uVar31 = pPVar1->cu_index;\n      uVar22 = (iVar33 + -1) - uVar31;\n      if (-1 < (int)uVar31) {\n        uVar22 = uVar31;\n      }\n      pRVar5 = pPVar1->object;\n      pDVar6 = pPVar1->ranges;\n      local_54 = (pDVar6->range_list_).\n                 super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                 ._M_impl._M_start;\n      if ((pDVar6->range_list_).\n          super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n          ._M_impl._M_finish != local_54) {\n        uVar31 = 0;\n        puVar25 = buffer;\n        do {\n          pRVar9 = local_54 + uVar31;\n          uVar30 = pRVar9->shndx;\n          if (uVar30 == 0) {\n            uVar19 = 0;\n            iVar26 = 0;\n          }\n          else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }\n          oVar14 = pRVar9->start;\n          oVar15 = pRVar9->start;\n          iVar35 = *(int *)((int)&pRVar9->start + 4);\n          oVar16 = pRVar9->end;\n          iVar24 = *(int *)((int)&pRVar9->end + 4);\n          uVar31 = uVar31 + 1;\n          puVar25[2] = uVar19 + (int)pRVar9->end;\n          buffer = puVar25 + 5;\n          puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);\n          puVar25[4] = uVar22;\n          *puVar25 = uVar19 + (int)oVar15;\n          pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;\n          puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);\n          puVar25 = buffer;\n        } while (uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333));\n        pPVar21 = (this->ranges_).\n                  super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                  ._M_impl._M_start;\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 <\n             (uint)(((int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2) * -0x55555555));\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }" if (parenthesized_expression "(pPVar21 !=\n      (this->ranges_).\n      super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n      ._M_impl._M_finish)" ( (ERROR "pPVar21 !=\n      (this->ranges_).\n      super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::" (comma_expression "pPVar21 !=\n      (this->ranges_).\n      super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std" (binary_expression "pPVar21 !=\n      (this->ranges_).\n      super__Vector_base<gold" identifier != (binary_expression "(this->ranges_).\n      super__Vector_base<gold" (field_expression "(this->ranges_).\n      super__Vector_base" (parenthesized_expression "(this->ranges_)" ( (field_expression "this->ranges_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Gdb_index::Per_cu_range_list" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Per_cu_range_list>_>\n      ._M_impl._M_finish" (field_expression "Per_cu_range_list>_>\n      ._M_impl" (binary_expression "Per_cu_range_list>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    local_30 = 0;\n    do {\n      pPVar1 = pPVar21 + local_30;\n      uVar31 = pPVar1->cu_index;\n      uVar22 = (iVar33 + -1) - uVar31;\n      if (-1 < (int)uVar31) {\n        uVar22 = uVar31;\n      }\n      pRVar5 = pPVar1->object;\n      pDVar6 = pPVar1->ranges;\n      local_54 = (pDVar6->range_list_).\n                 super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                 ._M_impl._M_start;\n      if ((pDVar6->range_list_).\n          super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n          ._M_impl._M_finish != local_54) {\n        uVar31 = 0;\n        puVar25 = buffer;\n        do {\n          pRVar9 = local_54 + uVar31;\n          uVar30 = pRVar9->shndx;\n          if (uVar30 == 0) {\n            uVar19 = 0;\n            iVar26 = 0;\n          }\n          else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }\n          oVar14 = pRVar9->start;\n          oVar15 = pRVar9->start;\n          iVar35 = *(int *)((int)&pRVar9->start + 4);\n          oVar16 = pRVar9->end;\n          iVar24 = *(int *)((int)&pRVar9->end + 4);\n          uVar31 = uVar31 + 1;\n          puVar25[2] = uVar19 + (int)pRVar9->end;\n          buffer = puVar25 + 5;\n          puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);\n          puVar25[4] = uVar22;\n          *puVar25 = uVar19 + (int)oVar15;\n          pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;\n          puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);\n          puVar25 = buffer;\n        } while (uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333));\n        pPVar21 = (this->ranges_).\n                  super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                  ._M_impl._M_start;\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 <\n             (uint)(((int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2) * -0x55555555));\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (do_statement "do {\n      pPVar1 = pPVar21 + local_30;\n      uVar31 = pPVar1->cu_index;\n      uVar22 = (iVar33 + -1) - uVar31;\n      if (-1 < (int)uVar31) {\n        uVar22 = uVar31;\n      }\n      pRVar5 = pPVar1->object;\n      pDVar6 = pPVar1->ranges;\n      local_54 = (pDVar6->range_list_).\n                 super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                 ._M_impl._M_start;\n      if ((pDVar6->range_list_).\n          super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n          ._M_impl._M_finish != local_54) {\n        uVar31 = 0;\n        puVar25 = buffer;\n        do {\n          pRVar9 = local_54 + uVar31;\n          uVar30 = pRVar9->shndx;\n          if (uVar30 == 0) {\n            uVar19 = 0;\n            iVar26 = 0;\n          }\n          else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }\n          oVar14 = pRVar9->start;\n          oVar15 = pRVar9->start;\n          iVar35 = *(int *)((int)&pRVar9->start + 4);\n          oVar16 = pRVar9->end;\n          iVar24 = *(int *)((int)&pRVar9->end + 4);\n          uVar31 = uVar31 + 1;\n          puVar25[2] = uVar19 + (int)pRVar9->end;\n          buffer = puVar25 + 5;\n          puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);\n          puVar25[4] = uVar22;\n          *puVar25 = uVar19 + (int)oVar15;\n          pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;\n          puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);\n          puVar25 = buffer;\n        } while (uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333));\n        pPVar21 = (this->ranges_).\n                  super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                  ._M_impl._M_start;\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 <\n             (uint)(((int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2) * -0x55555555));" do (compound_statement "{\n      pPVar1 = pPVar21 + local_30;\n      uVar31 = pPVar1->cu_index;\n      uVar22 = (iVar33 + -1) - uVar31;\n      if (-1 < (int)uVar31) {\n        uVar22 = uVar31;\n      }\n      pRVar5 = pPVar1->object;\n      pDVar6 = pPVar1->ranges;\n      local_54 = (pDVar6->range_list_).\n                 super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                 ._M_impl._M_start;\n      if ((pDVar6->range_list_).\n          super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n          ._M_impl._M_finish != local_54) {\n        uVar31 = 0;\n        puVar25 = buffer;\n        do {\n          pRVar9 = local_54 + uVar31;\n          uVar30 = pRVar9->shndx;\n          if (uVar30 == 0) {\n            uVar19 = 0;\n            iVar26 = 0;\n          }\n          else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }\n          oVar14 = pRVar9->start;\n          oVar15 = pRVar9->start;\n          iVar35 = *(int *)((int)&pRVar9->start + 4);\n          oVar16 = pRVar9->end;\n          iVar24 = *(int *)((int)&pRVar9->end + 4);\n          uVar31 = uVar31 + 1;\n          puVar25[2] = uVar19 + (int)pRVar9->end;\n          buffer = puVar25 + 5;\n          puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);\n          puVar25[4] = uVar22;\n          *puVar25 = uVar19 + (int)oVar15;\n          pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;\n          puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);\n          puVar25 = buffer;\n        } while (uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333));\n        pPVar21 = (this->ranges_).\n                  super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                  ._M_impl._M_start;\n      }\n      local_30 = local_30 + 1;\n    }" { (expression_statement "pPVar1 = pPVar21 + local_30;" (assignment_expression "pPVar1 = pPVar21 + local_30" identifier = (binary_expression "pPVar21 + local_30" identifier + identifier)) ;) (expression_statement "uVar31 = pPVar1->cu_index;" (assignment_expression "uVar31 = pPVar1->cu_index" identifier = (field_expression "pPVar1->cu_index" identifier -> field_identifier)) ;) (expression_statement "uVar22 = (iVar33 + -1) - uVar31;" (assignment_expression "uVar22 = (iVar33 + -1) - uVar31" identifier = (binary_expression "(iVar33 + -1) - uVar31" (parenthesized_expression "(iVar33 + -1)" ( (binary_expression "iVar33 + -1" identifier + number_literal) )) - identifier)) ;) (if_statement "if (-1 < (int)uVar31) {\n        uVar22 = uVar31;\n      }" if (parenthesized_expression "(-1 < (int)uVar31)" ( (binary_expression "-1 < (int)uVar31" number_literal < (cast_expression "(int)uVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar22 = uVar31;\n      }" { (expression_statement "uVar22 = uVar31;" (assignment_expression "uVar22 = uVar31" identifier = identifier) ;) })) (expression_statement "pRVar5 = pPVar1->object;" (assignment_expression "pRVar5 = pPVar1->object" identifier = (field_expression "pPVar1->object" identifier -> field_identifier)) ;) (expression_statement "pDVar6 = pPVar1->ranges;" (assignment_expression "pDVar6 = pPVar1->ranges" identifier = (field_expression "pPVar1->ranges" identifier -> field_identifier)) ;) (ERROR "local_54 = (pDVar6->range_list_).\n                 super__Vector_base<gold::" (assignment_expression "local_54 = (pDVar6->range_list_).\n                 super__Vector_base<gold" identifier = (binary_expression "(pDVar6->range_list_).\n                 super__Vector_base<gold" (field_expression "(pDVar6->range_list_).\n                 super__Vector_base" (parenthesized_expression "(pDVar6->range_list_)" ( (field_expression "pDVar6->range_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                 ._M_impl._M_start;" statement_identifier (ERROR "::Range,_std::allocator<gold:" : : (comma_expression "Range,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_range_list::Range>_>\n                 ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Range>_>\n                 ._M_impl._M_start;" (field_expression "Range>_>\n                 ._M_impl._M_start" (field_expression "Range>_>\n                 ._M_impl" (binary_expression "Range>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (if_statement "if ((pDVar6->range_list_).\n          super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n          ._M_impl._M_finish != local_54) {\n        uVar31 = 0;\n        puVar25 = buffer;\n        do {\n          pRVar9 = local_54 + uVar31;\n          uVar30 = pRVar9->shndx;\n          if (uVar30 == 0) {\n            uVar19 = 0;\n            iVar26 = 0;\n          }\n          else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }\n          oVar14 = pRVar9->start;\n          oVar15 = pRVar9->start;\n          iVar35 = *(int *)((int)&pRVar9->start + 4);\n          oVar16 = pRVar9->end;\n          iVar24 = *(int *)((int)&pRVar9->end + 4);\n          uVar31 = uVar31 + 1;\n          puVar25[2] = uVar19 + (int)pRVar9->end;\n          buffer = puVar25 + 5;\n          puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);\n          puVar25[4] = uVar22;\n          *puVar25 = uVar19 + (int)oVar15;\n          pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;\n          puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);\n          puVar25 = buffer;\n        } while (uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333));\n        pPVar21 = (this->ranges_).\n                  super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                  ._M_impl._M_start;\n      }" if (parenthesized_expression "((pDVar6->range_list_).\n          super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n          ._M_impl._M_finish != local_54)" ( (ERROR "(pDVar6->range_list_).\n          super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::" (comma_expression "(pDVar6->range_list_).\n          super__Vector_base<gold::Dwarf_range_list::Range,_std" (binary_expression "(pDVar6->range_list_).\n          super__Vector_base<gold" (field_expression "(pDVar6->range_list_).\n          super__Vector_base" (parenthesized_expression "(pDVar6->range_list_)" ( (field_expression "pDVar6->range_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Dwarf_range_list::Range" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Range>_>\n          ._M_impl._M_finish != local_54" (field_expression "Range>_>\n          ._M_impl._M_finish" (field_expression "Range>_>\n          ._M_impl" (binary_expression "Range>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) (compound_statement "{\n        uVar31 = 0;\n        puVar25 = buffer;\n        do {\n          pRVar9 = local_54 + uVar31;\n          uVar30 = pRVar9->shndx;\n          if (uVar30 == 0) {\n            uVar19 = 0;\n            iVar26 = 0;\n          }\n          else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }\n          oVar14 = pRVar9->start;\n          oVar15 = pRVar9->start;\n          iVar35 = *(int *)((int)&pRVar9->start + 4);\n          oVar16 = pRVar9->end;\n          iVar24 = *(int *)((int)&pRVar9->end + 4);\n          uVar31 = uVar31 + 1;\n          puVar25[2] = uVar19 + (int)pRVar9->end;\n          buffer = puVar25 + 5;\n          puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);\n          puVar25[4] = uVar22;\n          *puVar25 = uVar19 + (int)oVar15;\n          pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;\n          puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);\n          puVar25 = buffer;\n        } while (uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333));\n        pPVar21 = (this->ranges_).\n                  super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                  ._M_impl._M_start;\n      }" { (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (expression_statement "puVar25 = buffer;" (assignment_expression "puVar25 = buffer" identifier = identifier) ;) (do_statement "do {\n          pRVar9 = local_54 + uVar31;\n          uVar30 = pRVar9->shndx;\n          if (uVar30 == 0) {\n            uVar19 = 0;\n            iVar26 = 0;\n          }\n          else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }\n          oVar14 = pRVar9->start;\n          oVar15 = pRVar9->start;\n          iVar35 = *(int *)((int)&pRVar9->start + 4);\n          oVar16 = pRVar9->end;\n          iVar24 = *(int *)((int)&pRVar9->end + 4);\n          uVar31 = uVar31 + 1;\n          puVar25[2] = uVar19 + (int)pRVar9->end;\n          buffer = puVar25 + 5;\n          puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);\n          puVar25[4] = uVar22;\n          *puVar25 = uVar19 + (int)oVar15;\n          pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;\n          puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);\n          puVar25 = buffer;\n        } while (uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333));" do (compound_statement "{\n          pRVar9 = local_54 + uVar31;\n          uVar30 = pRVar9->shndx;\n          if (uVar30 == 0) {\n            uVar19 = 0;\n            iVar26 = 0;\n          }\n          else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }\n          oVar14 = pRVar9->start;\n          oVar15 = pRVar9->start;\n          iVar35 = *(int *)((int)&pRVar9->start + 4);\n          oVar16 = pRVar9->end;\n          iVar24 = *(int *)((int)&pRVar9->end + 4);\n          uVar31 = uVar31 + 1;\n          puVar25[2] = uVar19 + (int)pRVar9->end;\n          buffer = puVar25 + 5;\n          puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);\n          puVar25[4] = uVar22;\n          *puVar25 = uVar19 + (int)oVar15;\n          pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;\n          puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);\n          puVar25 = buffer;\n        }" { (expression_statement "pRVar9 = local_54 + uVar31;" (assignment_expression "pRVar9 = local_54 + uVar31" identifier = (binary_expression "local_54 + uVar31" identifier + identifier)) ;) (expression_statement "uVar30 = pRVar9->shndx;" (assignment_expression "uVar30 = pRVar9->shndx" identifier = (field_expression "pRVar9->shndx" identifier -> field_identifier)) ;) (if_statement "if (uVar30 == 0) {\n            uVar19 = 0;\n            iVar26 = 0;\n          }\n          else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar19 = 0;\n            iVar26 = 0;\n          }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar26 = 0;" (assignment_expression "iVar26 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }" else (compound_statement "{\n            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];\n            if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }\n            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }\n            uVar30 = (uint)(pOVar20->super_Output_data).address_;\n            iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);\n            uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);\n            uVar19 = uVar18 + uVar30;\n            iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);\n            local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;\n          }" { (expression_statement "p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];" (assignment_expression "p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18]" identifier = (subscript_expression "(pRVar5->super_Object)._vptr_Object[0x18]" (field_expression "(pRVar5->super_Object)._vptr_Object" (parenthesized_expression "(pRVar5->super_Object)" ( (field_expression "pRVar5->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var7 == Relobj::do_output_section) {\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }\n            else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }" if (parenthesized_expression "(p_Var7 == Relobj::do_output_section)" ( (ERROR "p_Var7 == Relobj::" (binary_expression "p_Var7 == Relobj" identifier == identifier) : :) identifier )) (compound_statement "{\n              ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;\n              if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              pOVar20 = ppOVar8[uVar30];\n            }" { (expression_statement "ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start;" (field_expression "ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl._M_start" (field_expression "ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                        ._M_impl" (binary_expression "ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar8 = (pRVar5->output_sections_).\n                        super__Vector_base<gold" identifier = (binary_expression "(pRVar5->output_sections_).\n                        super__Vector_base<gold" (field_expression "(pRVar5->output_sections_).\n                        super__Vector_base" (parenthesized_expression "(pRVar5->output_sections_)" ( (field_expression "pRVar5->output_sections_" 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) ;) (if_statement "if ((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }" if (parenthesized_expression "((uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30)" ( (binary_expression "(uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar30" (call_expression "(uint)((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2)" ( (binary_expression "(int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8 >> 2" (binary_expression "(int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish - (int)ppOVar8" (field_expression "(int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl._M_finish" (field_expression "(int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              ._M_impl" (binary_expression "(int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(int)(pRVar5->output_sections_).\n                              super__Vector_base<gold::Output_section*,_std" (binary_expression "(int)(pRVar5->output_sections_).\n                              super__Vector_base<gold" (cast_expression "(int)(pRVar5->output_sections_).\n                              super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(pRVar5->output_sections_).\n                              super__Vector_base" (parenthesized_expression "(pRVar5->output_sections_)" ( (field_expression "pRVar5->output_sections_" 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) - (cast_expression "(int)ppOVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }" { comment (expression_statement "do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section")" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") ))) ;) })) (expression_statement "pOVar20 = ppOVar8[uVar30];" (assignment_expression "pOVar20 = ppOVar8[uVar30]" identifier = (subscript_expression "ppOVar8[uVar30]" identifier [ identifier ])) ;) }) (else_clause "else {\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }" else (compound_statement "{\n              pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);\n            }" { (expression_statement "pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30);" (assignment_expression "pOVar20 = (Output_section *)(*p_Var7)(pRVar5,uVar30)" identifier = (cast_expression "(Output_section *)(*p_Var7)(pRVar5,uVar30)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var7)(pRVar5,uVar30)" (parenthesized_expression "(*p_Var7)" ( (pointer_expression "*p_Var7" * identifier) )) (argument_list "(pRVar5,uVar30)" ( identifier , identifier ))))) ;) }))) (if_statement "if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }" if (parenthesized_expression "(((pOVar20->super_Output_data).field_0x1c & 1) == 0)" ( (binary_expression "((pOVar20->super_Output_data).field_0x1c & 1) == 0" (parenthesized_expression "((pOVar20->super_Output_data).field_0x1c & 1)" ( (binary_expression "(pOVar20->super_Output_data).field_0x1c & 1" (field_expression "(pOVar20->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar20->super_Output_data)" ( (field_expression "pOVar20->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/output.h",0xc5,"address");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xc5,"address");" (call_expression "do_gold_unreachable("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;) })) (expression_statement "uVar30 = (uint)(pOVar20->super_Output_data).address_;" (assignment_expression "uVar30 = (uint)(pOVar20->super_Output_data).address_" identifier = (field_expression "(uint)(pOVar20->super_Output_data).address_" (call_expression "(uint)(pOVar20->super_Output_data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar20->super_Output_data)" ( (field_expression "pOVar20->super_Output_data" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);" (assignment_expression "iVar26 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4)" identifier = (pointer_expression "*(int *)((int)&(pOVar20->super_Output_data).address_ + 4)" * (cast_expression "(int *)((int)&(pOVar20->super_Output_data).address_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar20->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar20->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar20->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar20->super_Output_data).address_" & (field_expression "(pOVar20->super_Output_data).address_" (parenthesized_expression "(pOVar20->super_Output_data)" ( (field_expression "pOVar20->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);" (assignment_expression "uVar18 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx)" identifier = (call_expression "(*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx)" (parenthesized_expression "(*(pRVar5->super_Object)._vptr_Object[0x1a])" ( (pointer_expression "*(pRVar5->super_Object)._vptr_Object[0x1a]" * (subscript_expression "(pRVar5->super_Object)._vptr_Object[0x1a]" (field_expression "(pRVar5->super_Object)._vptr_Object" (parenthesized_expression "(pRVar5->super_Object)" ( (field_expression "pRVar5->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(pRVar5,pRVar9->shndx)" ( identifier , (field_expression "pRVar9->shndx" identifier -> field_identifier) )))) ;) (expression_statement "uVar19 = uVar18 + uVar30;" (assignment_expression "uVar19 = uVar18 + uVar30" identifier = (binary_expression "uVar18 + uVar30" identifier + identifier)) ;) (expression_statement "iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30);" (assignment_expression "iVar26 = extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30)" identifier = (binary_expression "extraout_EDX + iVar26 + (uint)CARRY4(uVar18,uVar30)" (binary_expression "extraout_EDX + iVar26" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar18,uVar30)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,uVar30)" identifier (argument_list "(uVar18,uVar30)" ( identifier , identifier )))))) ;) (ERROR "local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold::" (assignment_expression "local_54 = (pDVar6->range_list_).\n                       super__Vector_base<gold" identifier = (binary_expression "(pDVar6->range_list_).\n                       super__Vector_base<gold" (field_expression "(pDVar6->range_list_).\n                       super__Vector_base" (parenthesized_expression "(pDVar6->range_list_)" ( (field_expression "pDVar6->range_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;" statement_identifier (ERROR "::Range,_std::allocator<gold:" : : (comma_expression "Range,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_range_list::Range>_>\n                       ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Range>_>\n                       ._M_impl._M_start;" (field_expression "Range>_>\n                       ._M_impl._M_start" (field_expression "Range>_>\n                       ._M_impl" (binary_expression "Range>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) }))) (expression_statement "oVar14 = pRVar9->start;" (assignment_expression "oVar14 = pRVar9->start" identifier = (field_expression "pRVar9->start" identifier -> field_identifier)) ;) (expression_statement "oVar15 = pRVar9->start;" (assignment_expression "oVar15 = pRVar9->start" identifier = (field_expression "pRVar9->start" identifier -> field_identifier)) ;) (expression_statement "iVar35 = *(int *)((int)&pRVar9->start + 4);" (assignment_expression "iVar35 = *(int *)((int)&pRVar9->start + 4)" identifier = (pointer_expression "*(int *)((int)&pRVar9->start + 4)" * (cast_expression "(int *)((int)&pRVar9->start + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pRVar9->start + 4)" ( (binary_expression "(int)&pRVar9->start + 4" (cast_expression "(int)&pRVar9->start" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pRVar9->start" & (field_expression "pRVar9->start" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "oVar16 = pRVar9->end;" (assignment_expression "oVar16 = pRVar9->end" identifier = (field_expression "pRVar9->end" identifier -> field_identifier)) ;) (expression_statement "iVar24 = *(int *)((int)&pRVar9->end + 4);" (assignment_expression "iVar24 = *(int *)((int)&pRVar9->end + 4)" identifier = (pointer_expression "*(int *)((int)&pRVar9->end + 4)" * (cast_expression "(int *)((int)&pRVar9->end + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pRVar9->end + 4)" ( (binary_expression "(int)&pRVar9->end + 4" (cast_expression "(int)&pRVar9->end" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pRVar9->end" & (field_expression "pRVar9->end" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar31 = uVar31 + 1;" (assignment_expression "uVar31 = uVar31 + 1" identifier = (binary_expression "uVar31 + 1" identifier + number_literal)) ;) (expression_statement "puVar25[2] = uVar19 + (int)pRVar9->end;" (assignment_expression "puVar25[2] = uVar19 + (int)pRVar9->end" (subscript_expression "puVar25[2]" identifier [ number_literal ]) = (binary_expression "uVar19 + (int)pRVar9->end" identifier + (cast_expression "(int)pRVar9->end" ( (type_descriptor "int" primitive_type) ) (field_expression "pRVar9->end" identifier -> field_identifier)))) ;) (expression_statement "buffer = puVar25 + 5;" (assignment_expression "buffer = puVar25 + 5" identifier = (binary_expression "puVar25 + 5" identifier + number_literal)) ;) (expression_statement "puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14);" (assignment_expression "puVar25[1] = iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14)" (subscript_expression "puVar25[1]" identifier [ number_literal ]) = (binary_expression "iVar26 + iVar35 + (uint)CARRY4(uVar19,(uint)oVar14)" (binary_expression "iVar26 + iVar35" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar19,(uint)oVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar19,(uint)oVar14)" identifier (argument_list "(uVar19,(uint)oVar14)" ( identifier , (cast_expression "(uint)oVar14" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "puVar25[4] = uVar22;" (assignment_expression "puVar25[4] = uVar22" (subscript_expression "puVar25[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar25 = uVar19 + (int)oVar15;" (assignment_expression "*puVar25 = uVar19 + (int)oVar15" (pointer_expression "*puVar25" * identifier) = (binary_expression "uVar19 + (int)oVar15" identifier + (cast_expression "(int)oVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (ERROR "pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold::" (assignment_expression "pRVar9 = (pDVar6->range_list_).\n                   super__Vector_base<gold" identifier = (binary_expression "(pDVar6->range_list_).\n                   super__Vector_base<gold" (field_expression "(pDVar6->range_list_).\n                   super__Vector_base" (parenthesized_expression "(pDVar6->range_list_)" ( (field_expression "pDVar6->range_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Dwarf_range_list::Range,_std::allocator<gold::Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;" statement_identifier (ERROR "::Range,_std::allocator<gold:" : : (comma_expression "Range,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Dwarf_range_list::Range>_>\n                   ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Range>_>\n                   ._M_impl._M_finish;" (field_expression "Range>_>\n                   ._M_impl._M_finish" (field_expression "Range>_>\n                   ._M_impl" (binary_expression "Range>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (expression_statement "puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16);" (assignment_expression "puVar25[3] = iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16)" (subscript_expression "puVar25[3]" identifier [ number_literal ]) = (binary_expression "iVar26 + iVar24 + (uint)CARRY4(uVar19,(uint)oVar16)" (binary_expression "iVar26 + iVar24" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar19,(uint)oVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar19,(uint)oVar16)" identifier (argument_list "(uVar19,(uint)oVar16)" ( identifier , (cast_expression "(uint)oVar16" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "puVar25 = buffer;" (assignment_expression "puVar25 = buffer" identifier = identifier) ;) }) while (parenthesized_expression "(uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333))" ( (binary_expression "uVar31 < (uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333)" identifier < (call_expression "(uint)(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)pRVar9 - (int)local_54 >> 2) * -0x33333333)" ( (binary_expression "((int)pRVar9 - (int)local_54 >> 2) * -0x33333333" (parenthesized_expression "((int)pRVar9 - (int)local_54 >> 2)" ( (binary_expression "(int)pRVar9 - (int)local_54 >> 2" (binary_expression "(int)pRVar9 - (int)local_54" (cast_expression "(int)pRVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) )))) )) ;) (ERROR "pPVar21 = (this->ranges_).\n                  super__Vector_base<gold::" (assignment_expression "pPVar21 = (this->ranges_).\n                  super__Vector_base<gold" identifier = (binary_expression "(this->ranges_).\n                  super__Vector_base<gold" (field_expression "(this->ranges_).\n                  super__Vector_base" (parenthesized_expression "(this->ranges_)" ( (field_expression "this->ranges_" identifier -> field_identifier) )) . field_identifier) < identifier)) : :) (labeled_statement "Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                  ._M_impl._M_start;" statement_identifier (ERROR "::Per_cu_range_list,_std::allocator<gold:" : : (comma_expression "Per_cu_range_list,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Gdb_index::Per_cu_range_list>_>\n                  ._M_impl._M_start;" statement_identifier : (ERROR ":" :) (expression_statement "Per_cu_range_list>_>\n                  ._M_impl._M_start;" (field_expression "Per_cu_range_list>_>\n                  ._M_impl._M_start" (field_expression "Per_cu_range_list>_>\n                  ._M_impl" (binary_expression "Per_cu_range_list>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) })) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" identifier = (binary_expression "local_30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_30 <\n             (uint)(((int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2) * -0x55555555))" ( (binary_expression "local_30 <\n             (uint)(((int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2) * -0x55555555)" identifier < (call_expression "(uint)(((int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2) * -0x55555555)" ( (binary_expression "((int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2) * -0x55555555" (parenthesized_expression "((int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2)" ( (ERROR "(int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std::allocator<gold::Gdb_index::" (comma_expression "(int)(this->ranges_).\n                          super__Vector_base<gold::Gdb_index::Per_cu_range_list,_std" (binary_expression "(int)(this->ranges_).\n                          super__Vector_base<gold" (cast_expression "(int)(this->ranges_).\n                          super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->ranges_).\n                          super__Vector_base" (parenthesized_expression "(this->ranges_)" ( (field_expression "this->ranges_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Gdb_index::Per_cu_range_list" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (binary_expression "Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21 >> 2" (binary_expression "Per_cu_range_list>_>\n                          ._M_impl._M_finish - (int)pPVar21" (field_expression "Per_cu_range_list>_>\n                          ._M_impl._M_finish" (field_expression "Per_cu_range_list>_>\n                          ._M_impl" (binary_expression "Per_cu_range_list>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)pPVar21" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal) )))) )) ;) (expression_statement "local_54 = (pointer)((int)buffer - (int)puVar17);" (assignment_expression "local_54 = (pointer)((int)buffer - (int)puVar17)" identifier = (call_expression "(pointer)((int)buffer - (int)puVar17)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)buffer - (int)puVar17)" ( (binary_expression "(int)buffer - (int)puVar17" (cast_expression "(int)buffer" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) (if_statement "if (*(int *)((int)&this->symtab_offset_ + 4) != local_50 ||\n      (pointer)(int)this->symtab_offset_ != local_54) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x518,"do_write");\n  }" if (parenthesized_expression "(*(int *)((int)&this->symtab_offset_ + 4) != local_50 ||\n      (pointer)(int)this->symtab_offset_ != local_54)" ( (binary_expression "*(int *)((int)&this->symtab_offset_ + 4) != local_50 ||\n      (pointer)(int)this->symtab_offset_ != local_54" (binary_expression "*(int *)((int)&this->symtab_offset_ + 4) != local_50" (pointer_expression "*(int *)((int)&this->symtab_offset_ + 4)" * (cast_expression "(int *)((int)&this->symtab_offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->symtab_offset_ + 4)" ( (binary_expression "(int)&this->symtab_offset_ + 4" (cast_expression "(int)&this->symtab_offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->symtab_offset_" & (field_expression "this->symtab_offset_" identifier -> field_identifier))) + number_literal) )))) != identifier) || (binary_expression "(pointer)(int)this->symtab_offset_ != local_54" (cast_expression "(pointer)(int)this->symtab_offset_" ( (type_descriptor "pointer" type_identifier) ) (cast_expression "(int)this->symtab_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->symtab_offset_" identifier -> field_identifier))) != identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x518,"do_write");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/gdb-index.cc",0x518,"do_write");" (call_expression "do_gold_unreachable("../../gold/gdb-index.cc",0x518,"do_write")" identifier (argument_list "("../../gold/gdb-index.cc",0x518,"do_write")" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })) (expression_statement "pGVar10 = this->gdb_symtab_;" (assignment_expression "pGVar10 = this->gdb_symtab_" identifier = (field_expression "this->gdb_symtab_" identifier -> field_identifier)) ;) (if_statement "if (pGVar10->capacity_ != 0) {\n    ppGVar11 = pGVar10->hashtab_;\n    uVar31 = 0;\n    puVar25 = buffer;\n    do {\n      pGVar12 = ppGVar11[uVar31];\n      if (pGVar12 == (Gdb_symbol *)0x0) {\n        uVar30 = 0;\n        uVar22 = 0;\n      }\n      else {\n        if ((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar22 = pGVar12->name_key - 1;\n        uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4);\n        uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index);\n      }\n      puVar25[1] = uVar22;\n      buffer = puVar25 + 2;\n      uVar31 = uVar31 + 1;\n      *puVar25 = uVar30;\n      puVar25 = buffer;\n    } while (uVar31 < pGVar10->capacity_);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }" if (parenthesized_expression "(pGVar10->capacity_ != 0)" ( (binary_expression "pGVar10->capacity_ != 0" (field_expression "pGVar10->capacity_" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    ppGVar11 = pGVar10->hashtab_;\n    uVar31 = 0;\n    puVar25 = buffer;\n    do {\n      pGVar12 = ppGVar11[uVar31];\n      if (pGVar12 == (Gdb_symbol *)0x0) {\n        uVar30 = 0;\n        uVar22 = 0;\n      }\n      else {\n        if ((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar22 = pGVar12->name_key - 1;\n        uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4);\n        uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index);\n      }\n      puVar25[1] = uVar22;\n      buffer = puVar25 + 2;\n      uVar31 = uVar31 + 1;\n      *puVar25 = uVar30;\n      puVar25 = buffer;\n    } while (uVar31 < pGVar10->capacity_);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }" { (expression_statement "ppGVar11 = pGVar10->hashtab_;" (assignment_expression "ppGVar11 = pGVar10->hashtab_" identifier = (field_expression "pGVar10->hashtab_" identifier -> field_identifier)) ;) (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (expression_statement "puVar25 = buffer;" (assignment_expression "puVar25 = buffer" identifier = identifier) ;) (do_statement "do {\n      pGVar12 = ppGVar11[uVar31];\n      if (pGVar12 == (Gdb_symbol *)0x0) {\n        uVar30 = 0;\n        uVar22 = 0;\n      }\n      else {\n        if ((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar22 = pGVar12->name_key - 1;\n        uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4);\n        uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index);\n      }\n      puVar25[1] = uVar22;\n      buffer = puVar25 + 2;\n      uVar31 = uVar31 + 1;\n      *puVar25 = uVar30;\n      puVar25 = buffer;\n    } while (uVar31 < pGVar10->capacity_);" do (compound_statement "{\n      pGVar12 = ppGVar11[uVar31];\n      if (pGVar12 == (Gdb_symbol *)0x0) {\n        uVar30 = 0;\n        uVar22 = 0;\n      }\n      else {\n        if ((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar22 = pGVar12->name_key - 1;\n        uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4);\n        uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index);\n      }\n      puVar25[1] = uVar22;\n      buffer = puVar25 + 2;\n      uVar31 = uVar31 + 1;\n      *puVar25 = uVar30;\n      puVar25 = buffer;\n    }" { (expression_statement "pGVar12 = ppGVar11[uVar31];" (assignment_expression "pGVar12 = ppGVar11[uVar31]" identifier = (subscript_expression "ppGVar11[uVar31]" identifier [ identifier ])) ;) (if_statement "if (pGVar12 == (Gdb_symbol *)0x0) {\n        uVar30 = 0;\n        uVar22 = 0;\n      }\n      else {\n        if ((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar22 = pGVar12->name_key - 1;\n        uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4);\n        uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index);\n      }" if (parenthesized_expression "(pGVar12 == (Gdb_symbol *)0x0)" ( (binary_expression "pGVar12 == (Gdb_symbol *)0x0" identifier == (cast_expression "(Gdb_symbol *)0x0" ( (type_descriptor "Gdb_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar30 = 0;\n        uVar22 = 0;\n      }" { (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        if ((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar22 = pGVar12->name_key - 1;\n        uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4);\n        uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index);\n      }" else (compound_statement "{\n        if ((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar22 = pGVar12->name_key - 1;\n        uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4);\n        uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index);\n      }" { (if_statement "if ((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" if (parenthesized_expression "((this->stringpool_).key_to_offset_.size_ < pGVar12->name_key)" ( (binary_expression "(this->stringpool_).key_to_offset_.size_ < pGVar12->name_key" (field_expression "(this->stringpool_).key_to_offset_.size_" (field_expression "(this->stringpool_).key_to_offset_" (parenthesized_expression "(this->stringpool_)" ( (field_expression "this->stringpool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) < (field_expression "pGVar12->name_key" identifier -> field_identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key");" (call_expression "do_gold_unreachable("../../gold/stringpool.h",0x108,"get_offset_from_key")" identifier (argument_list "("../../gold/stringpool.h",0x108,"get_offset_from_key")" ( (string_literal ""../../gold/stringpool.h"" " string_content ") , number_literal , (string_literal ""get_offset_from_key"" " string_content ") ))) ;) })) (expression_statement "uVar22 = pGVar12->name_key - 1;" (assignment_expression "uVar22 = pGVar12->name_key - 1" identifier = (binary_expression "pGVar12->name_key - 1" (field_expression "pGVar12->name_key" identifier -> field_identifier) - number_literal)) ;) (expression_statement "uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4);" (assignment_expression "uVar30 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4)" identifier = (binary_expression "((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +\n                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4)" (parenthesized_expression "((int)this->stringpool_offset_ - (int)this->cu_pool_offset_)" ( (binary_expression "(int)this->stringpool_offset_ - (int)this->cu_pool_offset_" (cast_expression "(int)this->stringpool_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->stringpool_offset_" identifier -> field_identifier)) - (cast_expression "(int)this->cu_pool_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->cu_pool_offset_" identifier -> field_identifier))) )) + (pointer_expression "*(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4)" * (cast_expression "(int *)((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4)" ( (ERROR "(int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std::allocator<int>_>,_std::allocator<std::vector<int,_std::allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std::" (comma_expression "(int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int,_std" (binary_expression "(int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std::vector<int" (binary_expression "(int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base<std" (cast_expression "(int)(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->stringpool_).key_to_offset_.chunks_.\n                               super__Vector_base" (field_expression "(this->stringpool_).key_to_offset_.chunks_" (field_expression "(this->stringpool_).key_to_offset_" (parenthesized_expression "(this->stringpool_)" ( (field_expression "this->stringpool_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) < identifier) (ERROR "::vector" : : identifier) < identifier) , identifier) : : (binary_expression "allocator<int>_>,_std" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "vector<int,_std" (binary_expression "vector<int" identifier < identifier) , identifier) : : (comma_expression "allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int,_std" (binary_expression "allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base<int" (field_expression "allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd].\n                               super__Vector_base" (subscript_expression "allocator<int>_>_>_>\n                               ._M_impl._M_start[uVar22 >> 0xd]" (field_expression "allocator<int>_>_>_>\n                               ._M_impl._M_start" (field_expression "allocator<int>_>_>_>\n                               ._M_impl" (binary_expression "allocator<int>_>_>_" (binary_expression "allocator<int>_>_" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ (binary_expression "uVar22 >> 0xd" identifier >> number_literal) ]) . field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<int>_>._M_impl._M_start +\n                         (uVar22 & 0x1fff) * 4" (field_expression "allocator<int>_>._M_impl._M_start" (field_expression "allocator<int>_>._M_impl" (binary_expression "allocator<int>_" (binary_expression "allocator<int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) + (binary_expression "(uVar22 & 0x1fff) * 4" (parenthesized_expression "(uVar22 & 0x1fff)" ( (binary_expression "uVar22 & 0x1fff" identifier & number_literal) )) * number_literal)) )))))) ;) (expression_statement "uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index);" (assignment_expression "uVar22 = *(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index)" identifier = (pointer_expression "*(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index)" * (cast_expression "(uint *)(this->cu_vector_offsets_ + pGVar12->cu_vector_index)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this->cu_vector_offsets_ + pGVar12->cu_vector_index)" ( (binary_expression "this->cu_vector_offsets_ + pGVar12->cu_vector_index" (field_expression "this->cu_vector_offsets_" identifier -> field_identifier) + (field_expression "pGVar12->cu_vector_index" identifier -> field_identifier)) ))))) ;) }))) (expression_statement "puVar25[1] = uVar22;" (assignment_expression "puVar25[1] = uVar22" (subscript_expression "puVar25[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "buffer = puVar25 + 2;" (assignment_expression "buffer = puVar25 + 2" identifier = (binary_expression "puVar25 + 2" identifier + number_literal)) ;) (expression_statement "uVar31 = uVar31 + 1;" (assignment_expression "uVar31 = uVar31 + 1" identifier = (binary_expression "uVar31 + 1" identifier + number_literal)) ;) (expression_statement "*puVar25 = uVar30;" (assignment_expression "*puVar25 = uVar30" (pointer_expression "*puVar25" * identifier) = identifier) ;) (expression_statement "puVar25 = buffer;" (assignment_expression "puVar25 = buffer" identifier = identifier) ;) }) while (parenthesized_expression "(uVar31 < pGVar10->capacity_)" ( (binary_expression "uVar31 < pGVar10->capacity_" identifier < (field_expression "pGVar10->capacity_" identifier -> field_identifier)) )) ;) (expression_statement "local_54 = (pointer)((int)buffer - (int)puVar17);" (assignment_expression "local_54 = (pointer)((int)buffer - (int)puVar17)" identifier = (call_expression "(pointer)((int)buffer - (int)puVar17)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)buffer - (int)puVar17)" ( (binary_expression "(int)buffer - (int)puVar17" (cast_expression "(int)buffer" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) (if_statement "if (*(int *)((int)&this->cu_pool_offset_ + 4) != local_50 ||\n      (pointer)(int)this->cu_pool_offset_ != local_54) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x52b,"do_write");\n  }" if (parenthesized_expression "(*(int *)((int)&this->cu_pool_offset_ + 4) != local_50 ||\n      (pointer)(int)this->cu_pool_offset_ != local_54)" ( (binary_expression "*(int *)((int)&this->cu_pool_offset_ + 4) != local_50 ||\n      (pointer)(int)this->cu_pool_offset_ != local_54" (binary_expression "*(int *)((int)&this->cu_pool_offset_ + 4) != local_50" (pointer_expression "*(int *)((int)&this->cu_pool_offset_ + 4)" * (cast_expression "(int *)((int)&this->cu_pool_offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->cu_pool_offset_ + 4)" ( (binary_expression "(int)&this->cu_pool_offset_ + 4" (cast_expression "(int)&this->cu_pool_offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->cu_pool_offset_" & (field_expression "this->cu_pool_offset_" identifier -> field_identifier))) + number_literal) )))) != identifier) || (binary_expression "(pointer)(int)this->cu_pool_offset_ != local_54" (cast_expression "(pointer)(int)this->cu_pool_offset_" ( (type_descriptor "pointer" type_identifier) ) (cast_expression "(int)this->cu_pool_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->cu_pool_offset_" identifier -> field_identifier))) != identifier)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x52b,"do_write");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/gdb-index.cc",0x52b,"do_write");" (call_expression "do_gold_unreachable("../../gold/gdb-index.cc",0x52b,"do_write")" identifier (argument_list "("../../gold/gdb-index.cc",0x52b,"do_write")" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })) (ERROR "ppvVar34 = (this->cu_vector_list_).\n             super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::" (comma_expression "ppvVar34 = (this->cu_vector_list_).\n             super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std" (binary_expression "ppvVar34 = (this->cu_vector_list_).\n             super__Vector_base<std::vector<std::pair<int" (binary_expression "ppvVar34 = (this->cu_vector_list_).\n             super__Vector_base<std::vector<std" (assignment_expression "ppvVar34 = (this->cu_vector_list_).\n             super__Vector_base<std" identifier = (binary_expression "(this->cu_vector_list_).\n             super__Vector_base<std" (field_expression "(this->cu_vector_list_).\n             super__Vector_base" (parenthesized_expression "(this->cu_vector_list_)" ( (field_expression "this->cu_vector_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_unsigned_char>_>_>*,_std" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_>*,_std" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_unsigned_char>,_std" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (expression_statement "pair<int,_unsigned_char>_>_>*>_>\n             ._M_impl._M_start;" (comma_expression "pair<int,_unsigned_char>_>_>*>_>\n             ._M_impl._M_start" (binary_expression "pair<int" identifier < identifier) , (field_expression "_unsigned_char>_>_>*>_>\n             ._M_impl._M_start" (field_expression "_unsigned_char>_>_>*>_>\n             ._M_impl" (binary_expression "_unsigned_char>_>_>*>_" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier)) ;) (ERROR "uVar31 = (int)(this->cu_vector_list_).\n                super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>*,_std::allocator<std::vector<std::pair<int,_unsigned_char>,_std::allocator<std::" (comma_expression "uVar31 = (int)(this->cu_vector_list_).\n                super__Vector_base<std::vector<std::pair<int,_unsigned_char>,_std" (binary_expression "uVar31 = (int)(this->cu_vector_list_).\n                super__Vector_base<std::vector<std::pair<int" (binary_expression "uVar31 = (int)(this->cu_vector_list_).\n                super__Vector_base<std::vector<std" (assignment_expression "uVar31 = (int)(this->cu_vector_list_).\n                super__Vector_base<std" identifier = (binary_expression "(int)(this->cu_vector_list_).\n                super__Vector_base<std" (cast_expression "(int)(this->cu_vector_list_).\n                super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(this->cu_vector_list_).\n                super__Vector_base" (parenthesized_expression "(this->cu_vector_list_)" ( (field_expression "this->cu_vector_list_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<int,_unsigned_char>_>_>*,_std" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_>*,_std" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "vector<std" identifier < identifier) : : (comma_expression "pair<int,_unsigned_char>,_std" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (expression_statement "pair<int,_unsigned_char>_>_>*>_>\n                ._M_impl._M_finish - (int)ppvVar34;" (comma_expression "pair<int,_unsigned_char>_>_>*>_>\n                ._M_impl._M_finish - (int)ppvVar34" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_>*>_>\n                ._M_impl._M_finish - (int)ppvVar34" (field_expression "_unsigned_char>_>_>*>_>\n                ._M_impl._M_finish" (field_expression "_unsigned_char>_>_>*>_>\n                ._M_impl" (binary_expression "_unsigned_char>_>_>*>_" (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier) > (pointer_expression "*>_" * (ERROR ">" >) identifier)) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppvVar34" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar31 >> 2 != 0) {\n    ppvVar23 = (pointer)(uVar31 + (int)ppvVar34);\n    do {\n      ppVar13 = ((*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                )._M_impl._M_start;\n      uVar31 = (int)((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish - (int)ppVar13 >> 3;\n      *buffer = uVar31;\n      puVar25 = buffer + 1;\n      if (uVar31 != 0) {\n        puVar32 = &ppVar13->second;\n        puVar36 = buffer + 1;\n        do {\n          uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;\n          if ((int)uVar22 < 0) {\n            uVar22 = (iVar33 + -1) - uVar22;\n          }\n          bVar2 = *puVar32;\n          puVar25 = puVar36 + 1;\n          puVar32 = puVar32 + 8;\n          *puVar36 = (uint)bVar2 << 0x18 | uVar22;\n          puVar36 = puVar25;\n        } while (puVar25 != buffer + uVar31 + 1);\n      }\n      buffer = puVar25;\n      ppvVar34 = ppvVar34 + 1;\n    } while (ppvVar23 != ppvVar34);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }" if (parenthesized_expression "(uVar31 >> 2 != 0)" ( (binary_expression "uVar31 >> 2 != 0" (binary_expression "uVar31 >> 2" identifier >> number_literal) != number_literal) )) (compound_statement "{\n    ppvVar23 = (pointer)(uVar31 + (int)ppvVar34);\n    do {\n      ppVar13 = ((*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                )._M_impl._M_start;\n      uVar31 = (int)((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish - (int)ppVar13 >> 3;\n      *buffer = uVar31;\n      puVar25 = buffer + 1;\n      if (uVar31 != 0) {\n        puVar32 = &ppVar13->second;\n        puVar36 = buffer + 1;\n        do {\n          uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;\n          if ((int)uVar22 < 0) {\n            uVar22 = (iVar33 + -1) - uVar22;\n          }\n          bVar2 = *puVar32;\n          puVar25 = puVar36 + 1;\n          puVar32 = puVar32 + 8;\n          *puVar36 = (uint)bVar2 << 0x18 | uVar22;\n          puVar36 = puVar25;\n        } while (puVar25 != buffer + uVar31 + 1);\n      }\n      buffer = puVar25;\n      ppvVar34 = ppvVar34 + 1;\n    } while (ppvVar23 != ppvVar34);\n    local_54 = (pointer)((int)buffer - (int)puVar17);\n    local_50 = (int)local_54 >> 0x1f;\n  }" { (expression_statement "ppvVar23 = (pointer)(uVar31 + (int)ppvVar34);" (assignment_expression "ppvVar23 = (pointer)(uVar31 + (int)ppvVar34)" identifier = (call_expression "(pointer)(uVar31 + (int)ppvVar34)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(uVar31 + (int)ppvVar34)" ( (binary_expression "uVar31 + (int)ppvVar34" identifier + (cast_expression "(int)ppvVar34" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n      ppVar13 = ((*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                )._M_impl._M_start;\n      uVar31 = (int)((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish - (int)ppVar13 >> 3;\n      *buffer = uVar31;\n      puVar25 = buffer + 1;\n      if (uVar31 != 0) {\n        puVar32 = &ppVar13->second;\n        puVar36 = buffer + 1;\n        do {\n          uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;\n          if ((int)uVar22 < 0) {\n            uVar22 = (iVar33 + -1) - uVar22;\n          }\n          bVar2 = *puVar32;\n          puVar25 = puVar36 + 1;\n          puVar32 = puVar32 + 8;\n          *puVar36 = (uint)bVar2 << 0x18 | uVar22;\n          puVar36 = puVar25;\n        } while (puVar25 != buffer + uVar31 + 1);\n      }\n      buffer = puVar25;\n      ppvVar34 = ppvVar34 + 1;\n    } while (ppvVar23 != ppvVar34);" do (compound_statement "{\n      ppVar13 = ((*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                )._M_impl._M_start;\n      uVar31 = (int)((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish - (int)ppVar13 >> 3;\n      *buffer = uVar31;\n      puVar25 = buffer + 1;\n      if (uVar31 != 0) {\n        puVar32 = &ppVar13->second;\n        puVar36 = buffer + 1;\n        do {\n          uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;\n          if ((int)uVar22 < 0) {\n            uVar22 = (iVar33 + -1) - uVar22;\n          }\n          bVar2 = *puVar32;\n          puVar25 = puVar36 + 1;\n          puVar32 = puVar32 + 8;\n          *puVar36 = (uint)bVar2 << 0x18 | uVar22;\n          puVar36 = puVar25;\n        } while (puVar25 != buffer + uVar31 + 1);\n      }\n      buffer = puVar25;\n      ppvVar34 = ppvVar34 + 1;\n    }" { (expression_statement "ppVar13 = ((*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                )._M_impl._M_start;" (assignment_expression "ppVar13 = ((*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                )._M_impl._M_start" identifier = (field_expression "((*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                )._M_impl._M_start" (field_expression "((*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                )._M_impl" (parenthesized_expression "((*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                )" ( (ERROR "(*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::" (comma_expression "(*ppvVar34)->\n                super__Vector_base<std::pair<int,_unsigned_char>,_std" (binary_expression "(*ppvVar34)->\n                super__Vector_base<std::pair<int" (binary_expression "(*ppvVar34)->\n                super__Vector_base<std" (field_expression "(*ppvVar34)->\n                super__Vector_base" (parenthesized_expression "(*ppvVar34)" ( (pointer_expression "*ppvVar34" * identifier) )) -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (comma_expression "pair<int,_unsigned_char>_>_" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar31 = (int)((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish - (int)ppVar13 >> 3;" (assignment_expression "uVar31 = (int)((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish - (int)ppVar13 >> 3" identifier = (binary_expression "(int)((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish - (int)ppVar13 >> 3" (binary_expression "(int)((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish - (int)ppVar13" (cast_expression "(int)((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish" ( (type_descriptor "int" primitive_type) ) (field_expression "((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl._M_finish" (field_expression "((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )._M_impl" (parenthesized_expression "((*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::pair<int,_unsigned_char>_>_>\n                    )" ( (ERROR "(*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std::allocator<std::" (comma_expression "(*ppvVar34)->\n                    super__Vector_base<std::pair<int,_unsigned_char>,_std" (binary_expression "(*ppvVar34)->\n                    super__Vector_base<std::pair<int" (binary_expression "(*ppvVar34)->\n                    super__Vector_base<std" (field_expression "(*ppvVar34)->\n                    super__Vector_base" (parenthesized_expression "(*ppvVar34)" ( (pointer_expression "*ppvVar34" * identifier) )) -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_unsigned_char>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : :) (comma_expression "pair<int,_unsigned_char>_>_" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char>_>_" (binary_expression "_unsigned_char>_" identifier > identifier) > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier)) - (cast_expression "(int)ppVar13" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "*buffer = uVar31;" (assignment_expression "*buffer = uVar31" (pointer_expression "*buffer" * identifier) = identifier) ;) (expression_statement "puVar25 = buffer + 1;" (assignment_expression "puVar25 = buffer + 1" identifier = (binary_expression "buffer + 1" identifier + number_literal)) ;) (if_statement "if (uVar31 != 0) {\n        puVar32 = &ppVar13->second;\n        puVar36 = buffer + 1;\n        do {\n          uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;\n          if ((int)uVar22 < 0) {\n            uVar22 = (iVar33 + -1) - uVar22;\n          }\n          bVar2 = *puVar32;\n          puVar25 = puVar36 + 1;\n          puVar32 = puVar32 + 8;\n          *puVar36 = (uint)bVar2 << 0x18 | uVar22;\n          puVar36 = puVar25;\n        } while (puVar25 != buffer + uVar31 + 1);\n      }" if (parenthesized_expression "(uVar31 != 0)" ( (binary_expression "uVar31 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar32 = &ppVar13->second;\n        puVar36 = buffer + 1;\n        do {\n          uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;\n          if ((int)uVar22 < 0) {\n            uVar22 = (iVar33 + -1) - uVar22;\n          }\n          bVar2 = *puVar32;\n          puVar25 = puVar36 + 1;\n          puVar32 = puVar32 + 8;\n          *puVar36 = (uint)bVar2 << 0x18 | uVar22;\n          puVar36 = puVar25;\n        } while (puVar25 != buffer + uVar31 + 1);\n      }" { (expression_statement "puVar32 = &ppVar13->second;" (assignment_expression "puVar32 = &ppVar13->second" identifier = (pointer_expression "&ppVar13->second" & (field_expression "ppVar13->second" identifier -> field_identifier))) ;) (expression_statement "puVar36 = buffer + 1;" (assignment_expression "puVar36 = buffer + 1" identifier = (binary_expression "buffer + 1" identifier + number_literal)) ;) (do_statement "do {\n          uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;\n          if ((int)uVar22 < 0) {\n            uVar22 = (iVar33 + -1) - uVar22;\n          }\n          bVar2 = *puVar32;\n          puVar25 = puVar36 + 1;\n          puVar32 = puVar32 + 8;\n          *puVar36 = (uint)bVar2 << 0x18 | uVar22;\n          puVar36 = puVar25;\n        } while (puVar25 != buffer + uVar31 + 1);" do (compound_statement "{\n          uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;\n          if ((int)uVar22 < 0) {\n            uVar22 = (iVar33 + -1) - uVar22;\n          }\n          bVar2 = *puVar32;\n          puVar25 = puVar36 + 1;\n          puVar32 = puVar32 + 8;\n          *puVar36 = (uint)bVar2 << 0x18 | uVar22;\n          puVar36 = puVar25;\n        }" { (expression_statement "uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first;" (assignment_expression "uVar22 = ((pair<int,_unsigned_char> *)(puVar32 + -4))->first" identifier = (field_expression "((pair<int,_unsigned_char> *)(puVar32 + -4))->first" (parenthesized_expression "((pair<int,_unsigned_char> *)(puVar32 + -4))" ( (call_expression "(pair<int,_unsigned_char> *)(puVar32 + -4)" (parenthesized_expression "(pair<int,_unsigned_char> *)" ( (comma_expression "pair<int,_unsigned_char> *" (binary_expression "pair<int" identifier < identifier) , (binary_expression "_unsigned_char> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(puVar32 + -4)" ( (binary_expression "puVar32 + -4" identifier + number_literal) ))) )) -> field_identifier)) ;) (if_statement "if ((int)uVar22 < 0) {\n            uVar22 = (iVar33 + -1) - uVar22;\n          }" if (parenthesized_expression "((int)uVar22 < 0)" ( (binary_expression "(int)uVar22 < 0" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar22 = (iVar33 + -1) - uVar22;\n          }" { (expression_statement "uVar22 = (iVar33 + -1) - uVar22;" (assignment_expression "uVar22 = (iVar33 + -1) - uVar22" identifier = (binary_expression "(iVar33 + -1) - uVar22" (parenthesized_expression "(iVar33 + -1)" ( (binary_expression "iVar33 + -1" identifier + number_literal) )) - identifier)) ;) })) (expression_statement "bVar2 = *puVar32;" (assignment_expression "bVar2 = *puVar32" identifier = (pointer_expression "*puVar32" * identifier)) ;) (expression_statement "puVar25 = puVar36 + 1;" (assignment_expression "puVar25 = puVar36 + 1" identifier = (binary_expression "puVar36 + 1" identifier + number_literal)) ;) (expression_statement "puVar32 = puVar32 + 8;" (assignment_expression "puVar32 = puVar32 + 8" identifier = (binary_expression "puVar32 + 8" identifier + number_literal)) ;) (expression_statement "*puVar36 = (uint)bVar2 << 0x18 | uVar22;" (assignment_expression "*puVar36 = (uint)bVar2 << 0x18 | uVar22" (pointer_expression "*puVar36" * identifier) = (binary_expression "(uint)bVar2 << 0x18 | uVar22" (binary_expression "(uint)bVar2 << 0x18" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) | identifier)) ;) (expression_statement "puVar36 = puVar25;" (assignment_expression "puVar36 = puVar25" identifier = identifier) ;) }) while (parenthesized_expression "(puVar25 != buffer + uVar31 + 1)" ( (binary_expression "puVar25 != buffer + uVar31 + 1" identifier != (binary_expression "buffer + uVar31 + 1" (binary_expression "buffer + uVar31" identifier + identifier) + number_literal)) )) ;) })) (expression_statement "buffer = puVar25;" (assignment_expression "buffer = puVar25" identifier = identifier) ;) (expression_statement "ppvVar34 = ppvVar34 + 1;" (assignment_expression "ppvVar34 = ppvVar34 + 1" identifier = (binary_expression "ppvVar34 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppvVar23 != ppvVar34)" ( (binary_expression "ppvVar23 != ppvVar34" identifier != identifier) )) ;) (expression_statement "local_54 = (pointer)((int)buffer - (int)puVar17);" (assignment_expression "local_54 = (pointer)((int)buffer - (int)puVar17)" identifier = (call_expression "(pointer)((int)buffer - (int)puVar17)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)buffer - (int)puVar17)" ( (binary_expression "(int)buffer - (int)puVar17" (cast_expression "(int)buffer" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) (expression_statement "iVar26 = (int)this->stringpool_offset_;" (assignment_expression "iVar26 = (int)this->stringpool_offset_" identifier = (cast_expression "(int)this->stringpool_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->stringpool_offset_" identifier -> field_identifier))) ;) (if_statement "if (*(int *)((int)&this->stringpool_offset_ + 4) != local_50 || local_54 != (pointer)iVar26) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x53f,"do_write");\n  }" if (parenthesized_expression "(*(int *)((int)&this->stringpool_offset_ + 4) != local_50 || local_54 != (pointer)iVar26)" ( (binary_expression "*(int *)((int)&this->stringpool_offset_ + 4) != local_50 || local_54 != (pointer)iVar26" (binary_expression "*(int *)((int)&this->stringpool_offset_ + 4) != local_50" (pointer_expression "*(int *)((int)&this->stringpool_offset_ + 4)" * (cast_expression "(int *)((int)&this->stringpool_offset_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->stringpool_offset_ + 4)" ( (binary_expression "(int)&this->stringpool_offset_ + 4" (cast_expression "(int)&this->stringpool_offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->stringpool_offset_" & (field_expression "this->stringpool_offset_" identifier -> field_identifier))) + number_literal) )))) != identifier) || (binary_expression "local_54 != (pointer)iVar26" identifier != (cast_expression "(pointer)iVar26" ( (type_descriptor "pointer" type_identifier) ) identifier))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/gdb-index.cc",0x53f,"do_write");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/gdb-index.cc",0x53f,"do_write");" (call_expression "do_gold_unreachable("../../gold/gdb-index.cc",0x53f,"do_write")" identifier (argument_list "("../../gold/gdb-index.cc",0x53f,"do_write")" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })) (expression_statement "Stringpool_template<char>::write_to_buffer(&this->stringpool_,(uchar *)buffer,uVar3 - iVar26);" (binary_expression "Stringpool_template<char>::write_to_buffer(&this->stringpool_,(uchar *)buffer,uVar3 - iVar26)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "write_to_buffer(&this->stringpool_,(uchar *)buffer,uVar3 - iVar26)" identifier (argument_list "(&this->stringpool_,(uchar *)buffer,uVar3 - iVar26)" ( (pointer_expression "&this->stringpool_" & (field_expression "this->stringpool_" identifier -> field_identifier)) , (cast_expression "(uchar *)buffer" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "uVar3 - iVar26" identifier - identifier) )))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000d5e50(int param_1,int param_2)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  longlong lVar7;\n  undefined4 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint uVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  uint *puVar15;\n  int iVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  int iVar21;\n  int *piVar22;\n  uint uVar23;\n  longlong lVar24;\n  uint local_54;\n  uint local_50;\n  uint local_30;\n  \n  bVar1 = *(byte *)(param_1 + 0x1c);\n  if ((bVar1 & 4) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }\n  uVar23 = *(uint *)(param_1 + 0x14);\n  iVar13 = *(int *)(param_1 + 0x18);\n  if ((bVar1 & 2) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xcf,"data_size");\n  }\n  uVar2 = *(uint *)(param_1 + 0xc);\n  if ((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)) {\n                    \n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }\n  uVar11 = *(uint *)(param_1 + 0xf4);\n  puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);\n  uVar23 = *(uint *)(param_1 + 0xf8);\n  *puVar8 = 7;\n  puVar15 = *(uint **)(param_1 + 0x70);\n  puVar8[1] = 0x18;\n  iVar13 = *(int *)(param_1 + 0x74);\n  puVar8[2] = uVar11;\n  iVar13 = iVar13 - (int)puVar15;\n  iVar21 = iVar13 >> 4;\n  puVar8[3] = *(undefined4 *)(param_1 + 0xfc);\n  puVar8[4] = *(undefined4 *)(param_1 + 0x104);\n  puVar8[5] = *(undefined4 *)(param_1 + 0x10c);\n  puVar9 = puVar8 + 6;\n  local_54 = 0x18;\n  if (iVar21 != 0) {\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }\n  local_50 = (int)local_54 >> 0x1f;\n  uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;\n  if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }\n  iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);\n  if ((iVar13 >> 3) * -0x55555555 != 0) {\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }\n  if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }\n  iVar13 = *(int *)(param_1 + 0x88);\n  if (iVar13 != *(int *)(param_1 + 0x8c)) {\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }\n  iVar13 = *(int *)(param_1 + 0x94);\n  if (*(int *)(iVar13 + 4) != 0) {\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;\n  if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }\n  piVar22 = *(int **)(param_1 + 0x98);\n  uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;\n  if (uVar23 >> 2 != 0) {\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x114);\n  if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }\n  FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);\n  return;\n}\n\n" (function_definition "void FUN_000d5e50(int param_1,int param_2)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  longlong lVar7;\n  undefined4 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint uVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  uint *puVar15;\n  int iVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  int iVar21;\n  int *piVar22;\n  uint uVar23;\n  longlong lVar24;\n  uint local_54;\n  uint local_50;\n  uint local_30;\n  \n  bVar1 = *(byte *)(param_1 + 0x1c);\n  if ((bVar1 & 4) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }\n  uVar23 = *(uint *)(param_1 + 0x14);\n  iVar13 = *(int *)(param_1 + 0x18);\n  if ((bVar1 & 2) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xcf,"data_size");\n  }\n  uVar2 = *(uint *)(param_1 + 0xc);\n  if ((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)) {\n                    \n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }\n  uVar11 = *(uint *)(param_1 + 0xf4);\n  puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);\n  uVar23 = *(uint *)(param_1 + 0xf8);\n  *puVar8 = 7;\n  puVar15 = *(uint **)(param_1 + 0x70);\n  puVar8[1] = 0x18;\n  iVar13 = *(int *)(param_1 + 0x74);\n  puVar8[2] = uVar11;\n  iVar13 = iVar13 - (int)puVar15;\n  iVar21 = iVar13 >> 4;\n  puVar8[3] = *(undefined4 *)(param_1 + 0xfc);\n  puVar8[4] = *(undefined4 *)(param_1 + 0x104);\n  puVar8[5] = *(undefined4 *)(param_1 + 0x10c);\n  puVar9 = puVar8 + 6;\n  local_54 = 0x18;\n  if (iVar21 != 0) {\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }\n  local_50 = (int)local_54 >> 0x1f;\n  uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;\n  if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }\n  iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);\n  if ((iVar13 >> 3) * -0x55555555 != 0) {\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }\n  if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }\n  iVar13 = *(int *)(param_1 + 0x88);\n  if (iVar13 != *(int *)(param_1 + 0x8c)) {\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }\n  iVar13 = *(int *)(param_1 + 0x94);\n  if (*(int *)(iVar13 + 4) != 0) {\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;\n  if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }\n  piVar22 = *(int **)(param_1 + 0x98);\n  uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;\n  if (uVar23 >> 2 != 0) {\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x114);\n  if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }\n  FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);\n  return;\n}" primitive_type (function_declarator "FUN_000d5e50(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  longlong lVar7;\n  undefined4 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint uVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  uint *puVar15;\n  int iVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  int iVar21;\n  int *piVar22;\n  uint uVar23;\n  longlong lVar24;\n  uint local_54;\n  uint local_50;\n  uint local_30;\n  \n  bVar1 = *(byte *)(param_1 + 0x1c);\n  if ((bVar1 & 4) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }\n  uVar23 = *(uint *)(param_1 + 0x14);\n  iVar13 = *(int *)(param_1 + 0x18);\n  if ((bVar1 & 2) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xcf,"data_size");\n  }\n  uVar2 = *(uint *)(param_1 + 0xc);\n  if ((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)) {\n                    \n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }\n  uVar11 = *(uint *)(param_1 + 0xf4);\n  puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);\n  uVar23 = *(uint *)(param_1 + 0xf8);\n  *puVar8 = 7;\n  puVar15 = *(uint **)(param_1 + 0x70);\n  puVar8[1] = 0x18;\n  iVar13 = *(int *)(param_1 + 0x74);\n  puVar8[2] = uVar11;\n  iVar13 = iVar13 - (int)puVar15;\n  iVar21 = iVar13 >> 4;\n  puVar8[3] = *(undefined4 *)(param_1 + 0xfc);\n  puVar8[4] = *(undefined4 *)(param_1 + 0x104);\n  puVar8[5] = *(undefined4 *)(param_1 + 0x10c);\n  puVar9 = puVar8 + 6;\n  local_54 = 0x18;\n  if (iVar21 != 0) {\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }\n  local_50 = (int)local_54 >> 0x1f;\n  uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;\n  if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }\n  iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);\n  if ((iVar13 >> 3) * -0x55555555 != 0) {\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }\n  if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }\n  iVar13 = *(int *)(param_1 + 0x88);\n  if (iVar13 != *(int *)(param_1 + 0x8c)) {\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }\n  iVar13 = *(int *)(param_1 + 0x94);\n  if (*(int *)(iVar13 + 4) != 0) {\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;\n  if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }\n  piVar22 = *(int **)(param_1 + 0x98);\n  uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;\n  if (uVar23 >> 2 != 0) {\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x114);\n  if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }\n  FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "longlong lVar24;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "bVar1 = *(byte *)(param_1 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x1c)" identifier = (pointer_expression "*(byte *)(param_1 + 0x1c)" * (cast_expression "(byte *)(param_1 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }" { (expression_statement "FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);" (call_expression "FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1)" identifier (argument_list "("../../gold/output.h",0xe3,"offset",bVar1)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar23 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar23 = *(uint *)(param_1 + 0x14)" identifier = (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 2) == 0) {\n                    \n    FUN_000da200("../../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                    \n    FUN_000da200("../../gold/output.h",0xcf,"data_size");\n  }" { (expression_statement "FUN_000da200("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_000da200("../../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 "uVar2 = *(uint *)(param_1 + 0xc);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0xc)" identifier = (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)) {\n                    \n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }" if (parenthesized_expression "((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0))" ( (binary_expression "(iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)" (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) || (parenthesized_expression "(iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)" ( (comma_expression "iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0" (assignment_expression "iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23)" identifier = (binary_expression "iVar13 + (uint)CARRY4(uVar2,uVar23)" identifier + (cast_expression "(uint)CARRY4(uVar2,uVar23)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar2,uVar23)" identifier (argument_list "(uVar2,uVar23)" ( identifier , identifier )))))) , (comma_expression "uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0" (assignment_expression "uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23)" identifier = (call_expression "(uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_2 + 8) < uVar2 + uVar23)" ( (binary_expression "*(uint *)(param_2 + 8) < uVar2 + uVar23" (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) < (binary_expression "uVar2 + uVar23" identifier + identifier)) )))) , (comma_expression "iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0" (assignment_expression "iVar21 = *(int *)(param_2 + 0xc) - iVar16" identifier = (binary_expression "*(int *)(param_2 + 0xc) - iVar16" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) - identifier)) , (binary_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11))" ( (binary_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)" (call_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar16)" identifier (argument_list "(*(int *)(param_2 + 0xc),iVar16)" ( (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) , identifier ))) != (call_expression "SBORROW4(iVar21,uVar11)" identifier (argument_list "(iVar21,uVar11)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar21 - uVar11) < 0" (cast_expression "(int)(iVar21 - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar21 - uVar11)" ( (binary_expression "iVar21 - uVar11" identifier - identifier) ))) < number_literal))))) ))) )) (compound_statement "{\n                    \n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }" { (expression_statement "FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);" (call_expression "FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13)" identifier (argument_list "("../../gold/output.h",0x6f,"get_output_view",iVar13)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""get_output_view"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar11 = *(uint *)(param_1 + 0xf4);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0xf4)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf4)" * (cast_expression "(uint *)(param_1 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);" (assignment_expression "puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23)" identifier = (cast_expression "(undefined4 *)(*(int *)(param_2 + 0x10) + uVar23)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0x10) + uVar23)" ( (binary_expression "*(int *)(param_2 + 0x10) + uVar23" (pointer_expression "*(int *)(param_2 + 0x10)" * (cast_expression "(int *)(param_2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "uVar23 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar23 = *(uint *)(param_1 + 0xf8)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) (expression_statement "*puVar8 = 7;" (assignment_expression "*puVar8 = 7" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "puVar15 = *(uint **)(param_1 + 0x70);" (assignment_expression "puVar15 = *(uint **)(param_1 + 0x70)" identifier = (pointer_expression "*(uint **)(param_1 + 0x70)" * (cast_expression "(uint **)(param_1 + 0x70)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "puVar8[1] = 0x18;" (assignment_expression "puVar8[1] = 0x18" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar13 = *(int *)(param_1 + 0x74);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x74)" identifier = (pointer_expression "*(int *)(param_1 + 0x74)" * (cast_expression "(int *)(param_1 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x74)" ( (binary_expression "param_1 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "puVar8[2] = uVar11;" (assignment_expression "puVar8[2] = uVar11" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar13 = iVar13 - (int)puVar15;" (assignment_expression "iVar13 = iVar13 - (int)puVar15" identifier = (binary_expression "iVar13 - (int)puVar15" identifier - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar21 = iVar13 >> 4;" (assignment_expression "iVar21 = iVar13 >> 4" identifier = (binary_expression "iVar13 >> 4" identifier >> number_literal)) ;) (expression_statement "puVar8[3] = *(undefined4 *)(param_1 + 0xfc);" (assignment_expression "puVar8[3] = *(undefined4 *)(param_1 + 0xfc)" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0xfc)" * (cast_expression "(undefined4 *)(param_1 + 0xfc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) ))))) ;) (expression_statement "puVar8[4] = *(undefined4 *)(param_1 + 0x104);" (assignment_expression "puVar8[4] = *(undefined4 *)(param_1 + 0x104)" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x104)" * (cast_expression "(undefined4 *)(param_1 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x104)" ( (binary_expression "param_1 + 0x104" identifier + number_literal) ))))) ;) (expression_statement "puVar8[5] = *(undefined4 *)(param_1 + 0x10c);" (assignment_expression "puVar8[5] = *(undefined4 *)(param_1 + 0x10c)" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x10c)" * (cast_expression "(undefined4 *)(param_1 + 0x10c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = puVar8 + 6;" (assignment_expression "puVar9 = puVar8 + 6" identifier = (binary_expression "puVar8 + 6" identifier + number_literal)) ;) (expression_statement "local_54 = 0x18;" (assignment_expression "local_54 = 0x18" identifier = number_literal) ;) (if_statement "if (iVar21 != 0) {\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }" { (expression_statement "puVar14 = puVar15;" (assignment_expression "puVar14 = puVar15" identifier = identifier) ;) (expression_statement "puVar19 = puVar9;" (assignment_expression "puVar19 = puVar9" identifier = identifier) ;) (do_statement "do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);" do (compound_statement "{\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    }" { (expression_statement "uVar23 = puVar14[1];" (assignment_expression "uVar23 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "puVar17 = puVar14 + 4;" (assignment_expression "puVar17 = puVar14 + 4" identifier = (binary_expression "puVar14 + 4" identifier + number_literal)) ;) (expression_statement "*puVar19 = *puVar14;" (assignment_expression "*puVar19 = *puVar14" (pointer_expression "*puVar19" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "puVar19[1] = uVar23;" (assignment_expression "puVar19[1] = uVar23" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar23 = puVar14[3];" (assignment_expression "uVar23 = puVar14[3]" identifier = (subscript_expression "puVar14[3]" identifier [ number_literal ])) ;) (expression_statement "puVar19[2] = puVar14[2];" (assignment_expression "puVar19[2] = puVar14[2]" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (subscript_expression "puVar14[2]" identifier [ number_literal ])) ;) (expression_statement "puVar19[3] = uVar23;" (assignment_expression "puVar19[3] = uVar23" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar14 = puVar17;" (assignment_expression "puVar14 = puVar17" identifier = identifier) ;) (expression_statement "puVar19 = puVar19 + 4;" (assignment_expression "puVar19 = puVar19 + 4" identifier = (binary_expression "puVar19 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "((uint *)((int)puVar15 + iVar13) != puVar17)" ( (binary_expression "(uint *)((int)puVar15 + iVar13) != puVar17" (cast_expression "(uint *)((int)puVar15 + iVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar15 + iVar13)" ( (binary_expression "(int)puVar15 + iVar13" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) != identifier) )) ;) (expression_statement "puVar9 = (uint *)((int)puVar9 + iVar13);" (assignment_expression "puVar9 = (uint *)((int)puVar9 + iVar13)" identifier = (cast_expression "(uint *)((int)puVar9 + iVar13)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar13)" ( (binary_expression "(int)puVar9 + iVar13" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "local_54 = (int)puVar9 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar9 - (int)puVar8" identifier = (binary_expression "(int)puVar9 - (int)puVar8" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar11 = *(uint *)(param_1 + 0xf4);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0xf4)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf4)" * (cast_expression "(uint *)(param_1 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar23 = *(uint *)(param_1 + 0xf8)" identifier = (pointer_expression "*(uint *)(param_1 + 0xf8)" * (cast_expression "(uint *)(param_1 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) ))))) ;) })) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;" (assignment_expression "uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11" identifier = (binary_expression "uVar23 ^ local_50 | local_54 ^ uVar11" (binary_expression "uVar23 ^ local_50" identifier ^ identifier) | (binary_expression "local_54 ^ uVar11" identifier ^ identifier))) ;) (if_statement "if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }" { (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23)" identifier (argument_list "("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23)" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c)" identifier = (binary_expression "*(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c)" (pointer_expression "*(int *)(param_1 + 0x80)" * (cast_expression "(int *)(param_1 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x80)" ( (binary_expression "param_1 + 0x80" identifier + number_literal) )))) - (cast_expression "(int)*(uint **)(param_1 + 0x7c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint **)(param_1 + 0x7c)" * (cast_expression "(uint **)(param_1 + 0x7c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))))) ;) (if_statement "if ((iVar13 >> 3) * -0x55555555 != 0) {\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }" if (parenthesized_expression "((iVar13 >> 3) * -0x55555555 != 0)" ( (binary_expression "(iVar13 >> 3) * -0x55555555 != 0" (binary_expression "(iVar13 >> 3) * -0x55555555" (parenthesized_expression "(iVar13 >> 3)" ( (binary_expression "iVar13 >> 3" identifier >> number_literal) )) * number_literal) != number_literal) )) (compound_statement "{\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }" { (expression_statement "puVar14 = (uint *)(iVar13 + (int)puVar9);" (assignment_expression "puVar14 = (uint *)(iVar13 + (int)puVar9)" identifier = (cast_expression "(uint *)(iVar13 + (int)puVar9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + (int)puVar9)" ( (binary_expression "iVar13 + (int)puVar9" identifier + (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar15 = *(uint **)(param_1 + 0x7c);" (assignment_expression "puVar15 = *(uint **)(param_1 + 0x7c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x7c)" * (cast_expression "(uint **)(param_1 + 0x7c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x7c)" ( (binary_expression "param_1 + 0x7c" identifier + number_literal) ))))) ;) (do_statement "do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);" do (compound_statement "{\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    }" { (expression_statement "uVar23 = puVar15[1];" (assignment_expression "uVar23 = puVar15[1]" identifier = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "puVar19 = puVar9 + 6;" (assignment_expression "puVar19 = puVar9 + 6" identifier = (binary_expression "puVar9 + 6" identifier + number_literal)) ;) (expression_statement "*puVar9 = *puVar15;" (assignment_expression "*puVar9 = *puVar15" (pointer_expression "*puVar9" * identifier) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "puVar9[1] = uVar23;" (assignment_expression "puVar9[1] = uVar23" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar23 = puVar15[3];" (assignment_expression "uVar23 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar9[2] = puVar15[2];" (assignment_expression "puVar9[2] = puVar15[2]" (subscript_expression "puVar9[2]" identifier [ number_literal ]) = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "puVar9[3] = uVar23;" (assignment_expression "puVar9[3] = uVar23" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar23 = puVar15[5];" (assignment_expression "uVar23 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "puVar9[4] = puVar15[4];" (assignment_expression "puVar9[4] = puVar15[4]" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = (subscript_expression "puVar15[4]" identifier [ number_literal ])) ;) (expression_statement "puVar9[5] = uVar23;" (assignment_expression "puVar9[5] = uVar23" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = puVar19;" (assignment_expression "puVar9 = puVar19" identifier = identifier) ;) (expression_statement "puVar15 = puVar15 + 6;" (assignment_expression "puVar15 = puVar15 + 6" identifier = (binary_expression "puVar15 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar19 != puVar14)" ( (binary_expression "puVar19 != puVar14" identifier != identifier) )) ;) (expression_statement "local_54 = (int)puVar14 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar14 - (int)puVar8" identifier = (binary_expression "(int)puVar14 - (int)puVar8" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "puVar9 = puVar14;" (assignment_expression "puVar9 = puVar14" identifier = identifier) ;) })) (if_statement "if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54)" ( (binary_expression "*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54" (binary_expression "*(uint *)(param_1 + 0x100) != local_50" (pointer_expression "*(uint *)(param_1 + 0x100)" * (cast_expression "(uint *)(param_1 + 0x100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) != identifier) || (binary_expression "*(uint *)(param_1 + 0xfc) != local_54" (pointer_expression "*(uint *)(param_1 + 0xfc)" * (cast_expression "(uint *)(param_1 + 0xfc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xfc)" ( (binary_expression "param_1 + 0xfc" identifier + number_literal) )))) != identifier)) )) (compound_statement "{\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }" { (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1)" identifier (argument_list "("../../gold/gdb-index.cc",0x4fa,"do_write",param_1)" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar13 = *(int *)(param_1 + 0x88);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x88)" identifier = (pointer_expression "*(int *)(param_1 + 0x88)" * (cast_expression "(int *)(param_1 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 != *(int *)(param_1 + 0x8c)) {\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" if (parenthesized_expression "(iVar13 != *(int *)(param_1 + 0x8c))" ( (binary_expression "iVar13 != *(int *)(param_1 + 0x8c)" identifier != (pointer_expression "*(int *)(param_1 + 0x8c)" * (cast_expression "(int *)(param_1 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x8c)" ( (binary_expression "param_1 + 0x8c" identifier + number_literal) ))))) )) (compound_statement "{\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (do_statement "do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));" do (compound_statement "{\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    }" { (expression_statement "piVar22 = (int *)(iVar13 + local_30 * 0xc);" (assignment_expression "piVar22 = (int *)(iVar13 + local_30 * 0xc)" identifier = (cast_expression "(int *)(iVar13 + local_30 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + local_30 * 0xc)" ( (binary_expression "iVar13 + local_30 * 0xc" identifier + (binary_expression "local_30 * 0xc" identifier * number_literal)) )))) ;) (expression_statement "uVar23 = piVar22[1];" (assignment_expression "uVar23 = piVar22[1]" identifier = (subscript_expression "piVar22[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = (iVar21 + -1) - uVar23;" (assignment_expression "uVar11 = (iVar21 + -1) - uVar23" identifier = (binary_expression "(iVar21 + -1) - uVar23" (parenthesized_expression "(iVar21 + -1)" ( (binary_expression "iVar21 + -1" identifier + number_literal) )) - identifier)) ;) (if_statement "if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }" if (parenthesized_expression "(-1 < (int)uVar23)" ( (binary_expression "-1 < (int)uVar23" number_literal < (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar11 = uVar23;\n      }" { (expression_statement "uVar11 = uVar23;" (assignment_expression "uVar11 = uVar23" identifier = identifier) ;) })) (expression_statement "piVar12 = (int *)*piVar22;" (assignment_expression "piVar12 = (int *)*piVar22" identifier = (cast_expression "(int *)*piVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar22" * identifier))) ;) (expression_statement "piVar22 = (int *)piVar22[2];" (assignment_expression "piVar22 = (int *)piVar22[2]" identifier = (cast_expression "(int *)piVar22[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[2]" identifier [ number_literal ]))) ;) (expression_statement "local_54 = *piVar22;" (assignment_expression "local_54 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (if_statement "if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }" if (parenthesized_expression "(piVar22[1] != local_54)" ( (binary_expression "piVar22[1] != local_54" (subscript_expression "piVar22[1]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" identifier = identifier) ;) (do_statement "do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));" do (compound_statement "{\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        }" { (expression_statement "puVar9 = (uint *)(local_54 + uVar23 * 0x14);" (assignment_expression "puVar9 = (uint *)(local_54 + uVar23 * 0x14)" identifier = (cast_expression "(uint *)(local_54 + uVar23 * 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + uVar23 * 0x14)" ( (binary_expression "local_54 + uVar23 * 0x14" identifier + (binary_expression "uVar23 * 0x14" identifier * number_literal)) )))) ;) (expression_statement "uVar18 = *puVar9;" (assignment_expression "uVar18 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (if_statement "if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n            lVar24 = 0;\n          }" { (expression_statement "lVar24 = 0;" (assignment_expression "lVar24 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }" else (compound_statement "{\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }" { (if_statement "if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }" if (parenthesized_expression "(*(code **)(*piVar12 + 0x60) == FUN_000a5850)" ( (binary_expression "*(code **)(*piVar12 + 0x60) == FUN_000a5850" (pointer_expression "*(code **)(*piVar12 + 0x60)" * (cast_expression "(code **)(*piVar12 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0x60)" ( (binary_expression "*piVar12 + 0x60" (pointer_expression "*piVar12" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }" { (if_statement "if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }" if (parenthesized_expression "((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18)" ( (binary_expression "(uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18" (call_expression "(uint)(piVar12[0xf] - piVar12[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar12[0xf] - piVar12[0xe] >> 2)" ( (binary_expression "piVar12[0xf] - piVar12[0xe] >> 2" (binary_expression "piVar12[0xf] - piVar12[0xe]" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar12[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }" { (expression_statement "FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "FUN_000da200("../../gold/object.h",0x5c8,"do_output_section")" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") ))) ;) })) (expression_statement "iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);" (assignment_expression "iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4)" identifier = (pointer_expression "*(int *)(piVar12[0xe] + uVar18 * 4)" * (cast_expression "(int *)(piVar12[0xe] + uVar18 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0xe] + uVar18 * 4)" ( (binary_expression "piVar12[0xe] + uVar18 * 4" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) + (binary_expression "uVar18 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }" else (compound_statement "{\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }" { (expression_statement "iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);" (assignment_expression "iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18)" identifier = (call_expression "(**(code **)(*piVar12 + 0x60))(piVar12,uVar18)" (parenthesized_expression "(**(code **)(*piVar12 + 0x60))" ( (pointer_expression "**(code **)(*piVar12 + 0x60)" * (pointer_expression "*(code **)(*piVar12 + 0x60)" * (cast_expression "(code **)(*piVar12 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0x60)" ( (binary_expression "*piVar12 + 0x60" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) )) (argument_list "(piVar12,uVar18)" ( identifier , identifier )))) ;) }))) (if_statement "if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }" if (parenthesized_expression "((*(byte *)(iVar13 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar13 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar13 + 0x1c) & 1)" ( (binary_expression "*(byte *)(iVar13 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar13 + 0x1c)" * (cast_expression "(byte *)(iVar13 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x1c)" ( (binary_expression "iVar13 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }" { (expression_statement "FUN_000da200("../../gold/output.h",0xc5,"address");" (call_expression "FUN_000da200("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;) })) (expression_statement "lVar7 = *(longlong *)(iVar13 + 4);" (assignment_expression "lVar7 = *(longlong *)(iVar13 + 4)" identifier = (pointer_expression "*(longlong *)(iVar13 + 4)" * (cast_expression "(longlong *)(iVar13 + 4)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) ))))) ;) (expression_statement "lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);" (assignment_expression "lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9)" identifier = (call_expression "(**(code **)(*piVar12 + 0x68))(piVar12,*puVar9)" (parenthesized_expression "(**(code **)(*piVar12 + 0x68))" ( (pointer_expression "**(code **)(*piVar12 + 0x68)" * (pointer_expression "*(code **)(*piVar12 + 0x68)" * (cast_expression "(code **)(*piVar12 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar12 + 0x68)" ( (binary_expression "*piVar12 + 0x68" (pointer_expression "*piVar12" * identifier) + number_literal) ))))) )) (argument_list "(piVar12,*puVar9)" ( identifier , (pointer_expression "*puVar9" * identifier) )))) ;) (expression_statement "lVar24 = lVar24 + lVar7;" (assignment_expression "lVar24 = lVar24 + lVar7" identifier = (binary_expression "lVar24 + lVar7" identifier + identifier)) ;) (expression_statement "local_54 = *piVar22;" (assignment_expression "local_54 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) }))) (expression_statement "iVar16 = (int)((ulonglong)lVar24 >> 0x20);" (assignment_expression "iVar16 = (int)((ulonglong)lVar24 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar24 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar24 >> 0x20)" ( (binary_expression "(ulonglong)lVar24 >> 0x20" (cast_expression "(ulonglong)lVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar10 = (uint)lVar24;" (assignment_expression "uVar10 = (uint)lVar24" identifier = (cast_expression "(uint)lVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar3 = puVar9[1];" (assignment_expression "uVar3 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar9[1];" (assignment_expression "uVar18 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = puVar9[2];" (assignment_expression "uVar4 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar9[3];" (assignment_expression "uVar5 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar9[4];" (assignment_expression "uVar6 = puVar9[4]" identifier = (subscript_expression "puVar9[4]" identifier [ number_literal ])) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "puVar15[2] = uVar10 + puVar9[3];" (assignment_expression "puVar15[2] = uVar10 + puVar9[3]" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (binary_expression "uVar10 + puVar9[3]" identifier + (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar9 = puVar15 + 5;" (assignment_expression "puVar9 = puVar15 + 5" identifier = (binary_expression "puVar15 + 5" identifier + number_literal)) ;) (expression_statement "puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);" (assignment_expression "puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3)" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = (binary_expression "iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3)" (binary_expression "iVar16 + uVar4" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar10,uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,uVar3)" identifier (argument_list "(uVar10,uVar3)" ( identifier , identifier )))))) ;) (expression_statement "puVar15[4] = uVar11;" (assignment_expression "puVar15[4] = uVar11" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar15 = uVar10 + uVar18;" (assignment_expression "*puVar15 = uVar10 + uVar18" (pointer_expression "*puVar15" * identifier) = (binary_expression "uVar10 + uVar18" identifier + identifier)) ;) (expression_statement "iVar13 = piVar22[1];" (assignment_expression "iVar13 = piVar22[1]" identifier = (subscript_expression "piVar22[1]" identifier [ number_literal ])) ;) (expression_statement "puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);" (assignment_expression "puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5)" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (binary_expression "iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5)" (binary_expression "iVar16 + uVar6" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar10,uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,uVar5)" identifier (argument_list "(uVar10,uVar5)" ( identifier , identifier )))))) ;) (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" identifier = identifier) ;) }) while (parenthesized_expression "(uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333))" ( (binary_expression "uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333)" identifier < (call_expression "(uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)(iVar13 - local_54) >> 2) * -0x33333333)" ( (binary_expression "((int)(iVar13 - local_54) >> 2) * -0x33333333" (parenthesized_expression "((int)(iVar13 - local_54) >> 2)" ( (binary_expression "(int)(iVar13 - local_54) >> 2" (cast_expression "(int)(iVar13 - local_54)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar13 - local_54)" ( (binary_expression "iVar13 - local_54" identifier - identifier) ))) >> number_literal) )) * number_literal) )))) )) ;) (expression_statement "iVar13 = *(int *)(param_1 + 0x88);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x88)" identifier = (pointer_expression "*(int *)(param_1 + 0x88)" * (cast_expression "(int *)(param_1 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) ;) })) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" identifier = (binary_expression "local_30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555))" ( (binary_expression "local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555)" identifier < (call_expression "(uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555)" ( (binary_expression "(*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555" (parenthesized_expression "(*(int *)(param_1 + 0x8c) - iVar13 >> 2)" ( (binary_expression "*(int *)(param_1 + 0x8c) - iVar13 >> 2" (binary_expression "*(int *)(param_1 + 0x8c) - iVar13" (pointer_expression "*(int *)(param_1 + 0x8c)" * (cast_expression "(int *)(param_1 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x8c)" ( (binary_expression "param_1 + 0x8c" identifier + number_literal) )))) - identifier) >> number_literal) )) * number_literal) )))) )) ;) (expression_statement "local_54 = (int)puVar9 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar9 - (int)puVar8" identifier = (binary_expression "(int)puVar9 - (int)puVar8" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) (if_statement "if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54)" ( (binary_expression "*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54" (binary_expression "*(uint *)(param_1 + 0x108) != local_50" (pointer_expression "*(uint *)(param_1 + 0x108)" * (cast_expression "(uint *)(param_1 + 0x108)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) != identifier) || (binary_expression "*(uint *)(param_1 + 0x104) != local_54" (pointer_expression "*(uint *)(param_1 + 0x104)" * (cast_expression "(uint *)(param_1 + 0x104)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x104)" ( (binary_expression "param_1 + 0x104" identifier + number_literal) )))) != identifier)) )) (compound_statement "{\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }" { (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9)" identifier (argument_list "("../../gold/gdb-index.cc",0x518,"do_write",puVar9)" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar13 = *(int *)(param_1 + 0x94);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x94)" identifier = (pointer_expression "*(int *)(param_1 + 0x94)" * (cast_expression "(int *)(param_1 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x94)" ( (binary_expression "param_1 + 0x94" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar13 + 4) != 0) {\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" if (parenthesized_expression "(*(int *)(iVar13 + 4) != 0)" ( (binary_expression "*(int *)(iVar13 + 4) != 0" (pointer_expression "*(int *)(iVar13 + 4)" * (cast_expression "(int *)(iVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" { (expression_statement "iVar16 = *(int *)(iVar13 + 8);" (assignment_expression "iVar16 = *(int *)(iVar13 + 8)" identifier = (pointer_expression "*(int *)(iVar13 + 8)" * (cast_expression "(int *)(iVar13 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" identifier = identifier) ;) (do_statement "do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));" do (compound_statement "{\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    }" { (expression_statement "puVar9 = *(uint **)(iVar16 + uVar23 * 4);" (assignment_expression "puVar9 = *(uint **)(iVar16 + uVar23 * 4)" identifier = (pointer_expression "*(uint **)(iVar16 + uVar23 * 4)" * (cast_expression "(uint **)(iVar16 + uVar23 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + uVar23 * 4)" ( (binary_expression "iVar16 + uVar23 * 4" identifier + (binary_expression "uVar23 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }" if (parenthesized_expression "(puVar9 == (uint *)0x0)" ( (binary_expression "puVar9 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar18 = 0;\n        uVar11 = 0;\n      }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }" else (compound_statement "{\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }" { (if_statement "if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" if (parenthesized_expression "(*(uint *)(param_1 + 0xd0) < *puVar9)" ( (binary_expression "*(uint *)(param_1 + 0xd0) < *puVar9" (pointer_expression "*(uint *)(param_1 + 0xd0)" * (cast_expression "(uint *)(param_1 + 0xd0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd0)" ( (binary_expression "param_1 + 0xd0" identifier + number_literal) )))) < (pointer_expression "*puVar9" * identifier)) )) (compound_statement "{\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" { (expression_statement "FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");" (call_expression "FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key")" identifier (argument_list "("../../gold/stringpool.h",0x108,"get_offset_from_key")" ( (string_literal ""../../gold/stringpool.h"" " string_content ") , number_literal , (string_literal ""get_offset_from_key"" " string_content ") ))) ;) })) (expression_statement "uVar11 = *puVar9 - 1;" (assignment_expression "uVar11 = *puVar9 - 1" identifier = (binary_expression "*puVar9 - 1" (pointer_expression "*puVar9" * identifier) - number_literal)) ;) (expression_statement "uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);" (assignment_expression "uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" identifier = (binary_expression "(*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" (parenthesized_expression "(*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c))" ( (binary_expression "*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)" (pointer_expression "*(int *)(param_1 + 0x114)" * (cast_expression "(int *)(param_1 + 0x114)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) )))) - (pointer_expression "*(int *)(param_1 + 0x10c)" * (cast_expression "(int *)(param_1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) ))))) )) + (pointer_expression "*(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" * (cast_expression "(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc)" * (cast_expression "(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc)" ( (binary_expression "*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc" (pointer_expression "*(int *)(param_1 + 0xc4)" * (cast_expression "(int *)(param_1 + 0xc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc4)" ( (binary_expression "param_1 + 0xc4" identifier + number_literal) )))) + (binary_expression "(uVar11 >> 0xd) * 0xc" (parenthesized_expression "(uVar11 >> 0xd)" ( (binary_expression "uVar11 >> 0xd" identifier >> number_literal) )) * number_literal)) )))) + (binary_expression "(uVar11 & 0x1fff) * 4" (parenthesized_expression "(uVar11 & 0x1fff)" ( (binary_expression "uVar11 & 0x1fff" identifier & number_literal) )) * number_literal)) )))))) ;) (expression_statement "uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);" (assignment_expression "uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8)" identifier = (pointer_expression "*(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8)" * (cast_expression "(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xa4) + puVar9[2] * 8)" ( (binary_expression "*(int *)(param_1 + 0xa4) + puVar9[2] * 8" (pointer_expression "*(int *)(param_1 + 0xa4)" * (cast_expression "(int *)(param_1 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa4)" ( (binary_expression "param_1 + 0xa4" identifier + number_literal) )))) + (binary_expression "puVar9[2] * 8" (subscript_expression "puVar9[2]" identifier [ number_literal ]) * number_literal)) ))))) ;) }))) (expression_statement "puVar15[1] = uVar11;" (assignment_expression "puVar15[1] = uVar11" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar9 = puVar15 + 2;" (assignment_expression "puVar9 = puVar15 + 2" identifier = (binary_expression "puVar15 + 2" identifier + number_literal)) ;) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "*puVar15 = uVar18;" (assignment_expression "*puVar15 = uVar18" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" identifier = identifier) ;) }) while (parenthesized_expression "(uVar23 < *(uint *)(iVar13 + 4))" ( (binary_expression "uVar23 < *(uint *)(iVar13 + 4)" identifier < (pointer_expression "*(uint *)(iVar13 + 4)" * (cast_expression "(uint *)(iVar13 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) ))))) )) ;) (expression_statement "local_54 = (int)puVar9 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar9 - (int)puVar8" identifier = (binary_expression "(int)puVar9 - (int)puVar8" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) (expression_statement "uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;" (assignment_expression "uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54" identifier = (binary_expression "*(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54" (binary_expression "*(uint *)(param_1 + 0x110) ^ local_50" (pointer_expression "*(uint *)(param_1 + 0x110)" * (cast_expression "(uint *)(param_1 + 0x110)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ^ identifier) | (binary_expression "*(uint *)(param_1 + 0x10c) ^ local_54" (pointer_expression "*(uint *)(param_1 + 0x10c)" * (cast_expression "(uint *)(param_1 + 0x10c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) )))) ^ identifier))) ;) (if_statement "if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }" { (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23)" identifier (argument_list "("../../gold/gdb-index.cc",0x52b,"do_write",uVar23)" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) (expression_statement "piVar22 = *(int **)(param_1 + 0x98);" (assignment_expression "piVar22 = *(int **)(param_1 + 0x98)" identifier = (pointer_expression "*(int **)(param_1 + 0x98)" * (cast_expression "(int **)(param_1 + 0x98)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;" (assignment_expression "uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22" identifier = (binary_expression "*(int *)(param_1 + 0x9c) - (int)piVar22" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) - (cast_expression "(int)piVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar23 >> 2 != 0) {\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" if (parenthesized_expression "(uVar23 >> 2 != 0)" ( (binary_expression "uVar23 >> 2 != 0" (binary_expression "uVar23 >> 2" identifier >> number_literal) != number_literal) )) (compound_statement "{\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" { (expression_statement "piVar12 = (int *)(uVar23 + (int)piVar22);" (assignment_expression "piVar12 = (int *)(uVar23 + (int)piVar22)" identifier = (cast_expression "(int *)(uVar23 + (int)piVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar23 + (int)piVar22)" ( (binary_expression "uVar23 + (int)piVar22" identifier + (cast_expression "(int)piVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);" do (compound_statement "{\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    }" { (expression_statement "iVar13 = *(int *)*piVar22;" (assignment_expression "iVar13 = *(int *)*piVar22" identifier = (pointer_expression "*(int *)*piVar22" * (cast_expression "(int *)*piVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar22" * identifier)))) ;) (expression_statement "uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;" (assignment_expression "uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3" identifier = (binary_expression "((int *)*piVar22)[1] - iVar13 >> 3" (binary_expression "((int *)*piVar22)[1] - iVar13" (subscript_expression "((int *)*piVar22)[1]" (parenthesized_expression "((int *)*piVar22)" ( (cast_expression "(int *)*piVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar22" * identifier)) )) [ number_literal ]) - identifier) >> number_literal)) ;) (expression_statement "*puVar9 = uVar23;" (assignment_expression "*puVar9 = uVar23" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "puVar15 = puVar9 + 1;" (assignment_expression "puVar15 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (if_statement "if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }" if (parenthesized_expression "(uVar23 != 0)" ( (binary_expression "uVar23 != 0" identifier != number_literal) )) (compound_statement "{\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }" { (expression_statement "pbVar20 = (byte *)(iVar13 + 4);" (assignment_expression "pbVar20 = (byte *)(iVar13 + 4)" identifier = (cast_expression "(byte *)(iVar13 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))) ;) (expression_statement "puVar14 = puVar9 + 1;" (assignment_expression "puVar14 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (do_statement "do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);" do (compound_statement "{\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        }" { (expression_statement "uVar11 = *(uint *)(pbVar20 + -4);" (assignment_expression "uVar11 = *(uint *)(pbVar20 + -4)" identifier = (pointer_expression "*(uint *)(pbVar20 + -4)" * (cast_expression "(uint *)(pbVar20 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar20 + -4)" ( (binary_expression "pbVar20 + -4" identifier + number_literal) ))))) ;) (if_statement "if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            uVar11 = (iVar21 + -1) - uVar11;\n          }" { (expression_statement "uVar11 = (iVar21 + -1) - uVar11;" (assignment_expression "uVar11 = (iVar21 + -1) - uVar11" identifier = (binary_expression "(iVar21 + -1) - uVar11" (parenthesized_expression "(iVar21 + -1)" ( (binary_expression "iVar21 + -1" identifier + number_literal) )) - identifier)) ;) })) (expression_statement "bVar1 = *pbVar20;" (assignment_expression "bVar1 = *pbVar20" identifier = (pointer_expression "*pbVar20" * identifier)) ;) (expression_statement "puVar15 = puVar14 + 1;" (assignment_expression "puVar15 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + 8;" (assignment_expression "pbVar20 = pbVar20 + 8" identifier = (binary_expression "pbVar20 + 8" identifier + number_literal)) ;) (expression_statement "*puVar14 = (uint)bVar1 << 0x18 | uVar11;" (assignment_expression "*puVar14 = (uint)bVar1 << 0x18 | uVar11" (pointer_expression "*puVar14" * identifier) = (binary_expression "(uint)bVar1 << 0x18 | uVar11" (binary_expression "(uint)bVar1 << 0x18" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) | identifier)) ;) (expression_statement "puVar14 = puVar15;" (assignment_expression "puVar14 = puVar15" identifier = identifier) ;) }) while (parenthesized_expression "(puVar15 != puVar9 + uVar23 + 1)" ( (binary_expression "puVar15 != puVar9 + uVar23 + 1" identifier != (binary_expression "puVar9 + uVar23 + 1" (binary_expression "puVar9 + uVar23" identifier + identifier) + number_literal)) )) ;) })) (expression_statement "puVar9 = puVar15;" (assignment_expression "puVar9 = puVar15" identifier = identifier) ;) (expression_statement "piVar22 = piVar22 + 1;" (assignment_expression "piVar22 = piVar22 + 1" identifier = (binary_expression "piVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar12 != piVar22)" ( (binary_expression "piVar12 != piVar22" identifier != identifier) )) ;) (expression_statement "local_54 = (int)puVar9 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar9 - (int)puVar8" identifier = (binary_expression "(int)puVar9 - (int)puVar8" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" identifier = (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) })) (expression_statement "uVar23 = *(uint *)(param_1 + 0x114);" (assignment_expression "uVar23 = *(uint *)(param_1 + 0x114)" identifier = (pointer_expression "*(uint *)(param_1 + 0x114)" * (cast_expression "(uint *)(param_1 + 0x114)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x114)" ( (binary_expression "param_1 + 0x114" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23)" ( (binary_expression "*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23" (binary_expression "*(uint *)(param_1 + 0x118) != local_50" (pointer_expression "*(uint *)(param_1 + 0x118)" * (cast_expression "(uint *)(param_1 + 0x118)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x118)" ( (binary_expression "param_1 + 0x118" identifier + number_literal) )))) != identifier) || (binary_expression "local_54 != uVar23" identifier != identifier)) )) (compound_statement "{\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }" { (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23)" identifier (argument_list "("../../gold/gdb-index.cc",0x53f,"do_write",uVar23)" ( (string_literal ""../../gold/gdb-index.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") , identifier ))) ;) })) (expression_statement "FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);" (call_expression "FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23)" identifier (argument_list "(param_1 + 0xa8,puVar9,uVar2 - uVar23)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) , identifier , (binary_expression "uVar2 - uVar23" identifier - identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor 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 ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) , (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (binary_expression IDENT + IDENT)) )))) , (comma_expression (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) != (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) != (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) < LIT))))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT ^ IDENT) | (binary_expression IDENT ^ IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) || (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) }) (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 ( IDENT , IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) >> LIT) )) * LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) >> LIT) )) * LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) || (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * 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 (pointer_expression * IDENT) - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) )))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) ))))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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) ))))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ^ IDENT) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ^ IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ]) - IDENT) >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) | IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression IDENT + IDENT) + LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) || (binary_expression IDENT != IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT - IDENT) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_000d5e50(int param_1,int param_2)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  longlong lVar7;\n  undefined4 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint uVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  uint *puVar15;\n  int iVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  int iVar21;\n  int *piVar22;\n  uint uVar23;\n  longlong lVar24;\n  uint local_54;\n  uint local_50;\n  uint local_30;\n  \n  bVar1 = *(byte *)(param_1 + 0x1c);\n  if ((bVar1 & 4) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }\n  uVar23 = *(uint *)(param_1 + 0x14);\n  iVar13 = *(int *)(param_1 + 0x18);\n  if ((bVar1 & 2) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xcf,"data_size");\n  }\n  uVar2 = *(uint *)(param_1 + 0xc);\n  if ((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)) {\n                    \n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }\n  uVar11 = *(uint *)(param_1 + 0xf4);\n  puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);\n  uVar23 = *(uint *)(param_1 + 0xf8);\n  *puVar8 = 7;\n  puVar15 = *(uint **)(param_1 + 0x70);\n  puVar8[1] = 0x18;\n  iVar13 = *(int *)(param_1 + 0x74);\n  puVar8[2] = uVar11;\n  iVar13 = iVar13 - (int)puVar15;\n  iVar21 = iVar13 >> 4;\n  puVar8[3] = *(undefined4 *)(param_1 + 0xfc);\n  puVar8[4] = *(undefined4 *)(param_1 + 0x104);\n  puVar8[5] = *(undefined4 *)(param_1 + 0x10c);\n  puVar9 = puVar8 + 6;\n  local_54 = 0x18;\n  if (iVar21 != 0) {\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }\n  local_50 = (int)local_54 >> 0x1f;\n  uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;\n  if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }\n  iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);\n  if ((iVar13 >> 3) * -0x55555555 != 0) {\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }\n  if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }\n  iVar13 = *(int *)(param_1 + 0x88);\n  if (iVar13 != *(int *)(param_1 + 0x8c)) {\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }\n  iVar13 = *(int *)(param_1 + 0x94);\n  if (*(int *)(iVar13 + 4) != 0) {\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;\n  if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }\n  piVar22 = *(int **)(param_1 + 0x98);\n  uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;\n  if (uVar23 >> 2 != 0) {\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x114);\n  if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }\n  FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000d5e50(int param_1,int param_2)" (identifier "FUN_000d5e50") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  longlong lVar7;\n  undefined4 *puVar8;\n  uint *puVar9;\n  uint uVar10;\n  uint uVar11;\n  int *piVar12;\n  int iVar13;\n  uint *puVar14;\n  uint *puVar15;\n  int iVar16;\n  uint *puVar17;\n  uint uVar18;\n  uint *puVar19;\n  byte *pbVar20;\n  int iVar21;\n  int *piVar22;\n  uint uVar23;\n  longlong lVar24;\n  uint local_54;\n  uint local_50;\n  uint local_30;\n  \n  bVar1 = *(byte *)(param_1 + 0x1c);\n  if ((bVar1 & 4) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }\n  uVar23 = *(uint *)(param_1 + 0x14);\n  iVar13 = *(int *)(param_1 + 0x18);\n  if ((bVar1 & 2) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xcf,"data_size");\n  }\n  uVar2 = *(uint *)(param_1 + 0xc);\n  if ((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)) {\n                    \n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }\n  uVar11 = *(uint *)(param_1 + 0xf4);\n  puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);\n  uVar23 = *(uint *)(param_1 + 0xf8);\n  *puVar8 = 7;\n  puVar15 = *(uint **)(param_1 + 0x70);\n  puVar8[1] = 0x18;\n  iVar13 = *(int *)(param_1 + 0x74);\n  puVar8[2] = uVar11;\n  iVar13 = iVar13 - (int)puVar15;\n  iVar21 = iVar13 >> 4;\n  puVar8[3] = *(undefined4 *)(param_1 + 0xfc);\n  puVar8[4] = *(undefined4 *)(param_1 + 0x104);\n  puVar8[5] = *(undefined4 *)(param_1 + 0x10c);\n  puVar9 = puVar8 + 6;\n  local_54 = 0x18;\n  if (iVar21 != 0) {\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }\n  local_50 = (int)local_54 >> 0x1f;\n  uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;\n  if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }\n  iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);\n  if ((iVar13 >> 3) * -0x55555555 != 0) {\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }\n  if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }\n  iVar13 = *(int *)(param_1 + 0x88);\n  if (iVar13 != *(int *)(param_1 + 0x8c)) {\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }\n  iVar13 = *(int *)(param_1 + 0x94);\n  if (*(int *)(iVar13 + 4) != 0) {\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;\n  if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }\n  piVar22 = *(int **)(param_1 + 0x98);\n  uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;\n  if (uVar23 >> 2 != 0) {\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }\n  uVar23 = *(uint *)(param_1 + 0x114);\n  if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }\n  FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "longlong lVar7;" (type_identifier "longlong") (identifier "lVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint *puVar15;" (type_identifier "uint") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "uint *puVar17;" (type_identifier "uint") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "uint *puVar19;" (type_identifier "uint") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "longlong lVar24;" (type_identifier "longlong") (identifier "lVar24") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (expression_statement "bVar1 = *(byte *)(param_1 + 0x1c);" (assignment_expression "bVar1 = *(byte *)(param_1 + 0x1c)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(param_1 + 0x1c)" (* "*") (cast_expression "(byte *)(param_1 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 4) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }" (if "if") (parenthesized_expression "((bVar1 & 4) == 0)" (( "(") (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);\n  }" ({ "{") (expression_statement "FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);" (call_expression "FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1)" (identifier "FUN_000da200") (argument_list "("../../gold/output.h",0xe3,"offset",bVar1)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xe3") (, ",") (string_literal ""offset"" (" """) (string_content "offset") (" """)) (, ",") (identifier "bVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar23 = *(uint *)(param_1 + 0x14);" (assignment_expression "uVar23 = *(uint *)(param_1 + 0x14)" (identifier "uVar23") (= "=") (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar13 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x18)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 2) == 0) {\n                    \n    FUN_000da200("../../gold/output.h",0xcf,"data_size");\n  }" (if "if") (parenthesized_expression "((bVar1 & 2) == 0)" (( "(") (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_000da200("../../gold/output.h",0xcf,"data_size");\n  }" ({ "{") (expression_statement "FUN_000da200("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_000da200("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_000da200") (argument_list "("../../gold/output.h",0xcf,"data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xcf") (, ",") (string_literal ""data_size"" (" """) (string_content "data_size") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = *(uint *)(param_1 + 0xc);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0xc)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)) {\n                    \n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }" (if "if") (parenthesized_expression "((iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0))" (( "(") (binary_expression "(iVar13 < 0) ||\n     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)" (parenthesized_expression "(iVar13 < 0)" (( "(") (binary_expression "iVar13 < 0" (identifier "iVar13") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0)" (( "(") (comma_expression "iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),\n     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0" (assignment_expression "iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23)" (identifier "iVar16") (= "=") (binary_expression "iVar13 + (uint)CARRY4(uVar2,uVar23)" (identifier "iVar13") (+ "+") (cast_expression "(uint)CARRY4(uVar2,uVar23)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar2,uVar23)" (identifier "CARRY4") (argument_list "(uVar2,uVar23)" (( "(") (identifier "uVar2") (, ",") (identifier "uVar23") () ")")))))) (, ",") (comma_expression "uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),\n     iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0" (assignment_expression "uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23)" (identifier "uVar11") (= "=") (call_expression "(uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(param_2 + 8) < uVar2 + uVar23)" (( "(") (binary_expression "*(uint *)(param_2 + 8) < uVar2 + uVar23" (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (< "<") (binary_expression "uVar2 + uVar23" (identifier "uVar2") (+ "+") (identifier "uVar23"))) () ")")))) (, ",") (comma_expression "iVar21 = *(int *)(param_2 + 0xc) - iVar16,\n     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0" (assignment_expression "iVar21 = *(int *)(param_2 + 0xc) - iVar16" (identifier "iVar21") (= "=") (binary_expression "*(int *)(param_2 + 0xc) - iVar16" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (identifier "iVar16"))) (, ",") (binary_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=\n     (int)(iVar21 - uVar11) < 0" (parenthesized_expression "(SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11))" (( "(") (binary_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)" (call_expression "SBORROW4(*(int *)(param_2 + 0xc),iVar16)" (identifier "SBORROW4") (argument_list "(*(int *)(param_2 + 0xc),iVar16)" (( "(") (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "iVar16") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar21,uVar11)" (identifier "SBORROW4") (argument_list "(iVar21,uVar11)" (( "(") (identifier "iVar21") (, ",") (identifier "uVar11") () ")")))) () ")")) (!= "!=") (binary_expression "(int)(iVar21 - uVar11) < 0" (cast_expression "(int)(iVar21 - uVar11)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar21 - uVar11)" (( "(") (binary_expression "iVar21 - uVar11" (identifier "iVar21") (- "-") (identifier "uVar11")) () ")"))) (< "<") (number_literal "0")))))) () ")"))) () ")")) (compound_statement "{\n                    \n    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);\n  }" ({ "{") (expression_statement "FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);" (call_expression "FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13)" (identifier "FUN_000da200") (argument_list "("../../gold/output.h",0x6f,"get_output_view",iVar13)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x6f") (, ",") (string_literal ""get_output_view"" (" """) (string_content "get_output_view") (" """)) (, ",") (identifier "iVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar11 = *(uint *)(param_1 + 0xf4);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0xf4)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(param_1 + 0xf4)" (* "*") (cast_expression "(uint *)(param_1 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf4)" (( "(") (binary_expression "param_1 + 0xf4" (identifier "param_1") (+ "+") (number_literal "0xf4")) () ")"))))) (; ";")) (expression_statement "puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);" (assignment_expression "puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(*(int *)(param_2 + 0x10) + uVar23)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x10) + uVar23)" (( "(") (binary_expression "*(int *)(param_2 + 0x10) + uVar23" (pointer_expression "*(int *)(param_2 + 0x10)" (* "*") (cast_expression "(int *)(param_2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "uVar23")) () ")")))) (; ";")) (expression_statement "uVar23 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar23 = *(uint *)(param_1 + 0xf8)" (identifier "uVar23") (= "=") (pointer_expression "*(uint *)(param_1 + 0xf8)" (* "*") (cast_expression "(uint *)(param_1 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (expression_statement "*puVar8 = 7;" (assignment_expression "*puVar8 = 7" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "7")) (; ";")) (expression_statement "puVar15 = *(uint **)(param_1 + 0x70);" (assignment_expression "puVar15 = *(uint **)(param_1 + 0x70)" (identifier "puVar15") (= "=") (pointer_expression "*(uint **)(param_1 + 0x70)" (* "*") (cast_expression "(uint **)(param_1 + 0x70)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "puVar8[1] = 0x18;" (assignment_expression "puVar8[1] = 0x18" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x18")) (; ";")) (expression_statement "iVar13 = *(int *)(param_1 + 0x74);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x74)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x74)" (* "*") (cast_expression "(int *)(param_1 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x74)" (( "(") (binary_expression "param_1 + 0x74" (identifier "param_1") (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (expression_statement "puVar8[2] = uVar11;" (assignment_expression "puVar8[2] = uVar11" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "iVar13 = iVar13 - (int)puVar15;" (assignment_expression "iVar13 = iVar13 - (int)puVar15" (identifier "iVar13") (= "=") (binary_expression "iVar13 - (int)puVar15" (identifier "iVar13") (- "-") (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")))) (; ";")) (expression_statement "iVar21 = iVar13 >> 4;" (assignment_expression "iVar21 = iVar13 >> 4" (identifier "iVar21") (= "=") (binary_expression "iVar13 >> 4" (identifier "iVar13") (>> ">>") (number_literal "4"))) (; ";")) (expression_statement "puVar8[3] = *(undefined4 *)(param_1 + 0xfc);" (assignment_expression "puVar8[3] = *(undefined4 *)(param_1 + 0xfc)" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xfc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xfc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xfc)" (( "(") (binary_expression "param_1 + 0xfc" (identifier "param_1") (+ "+") (number_literal "0xfc")) () ")"))))) (; ";")) (expression_statement "puVar8[4] = *(undefined4 *)(param_1 + 0x104);" (assignment_expression "puVar8[4] = *(undefined4 *)(param_1 + 0x104)" (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x104)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x104)" (( "(") (binary_expression "param_1 + 0x104" (identifier "param_1") (+ "+") (number_literal "0x104")) () ")"))))) (; ";")) (expression_statement "puVar8[5] = *(undefined4 *)(param_1 + 0x10c);" (assignment_expression "puVar8[5] = *(undefined4 *)(param_1 + 0x10c)" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x10c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")"))))) (; ";")) (expression_statement "puVar9 = puVar8 + 6;" (assignment_expression "puVar9 = puVar8 + 6" (identifier "puVar9") (= "=") (binary_expression "puVar8 + 6" (identifier "puVar8") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "local_54 = 0x18;" (assignment_expression "local_54 = 0x18" (identifier "local_54") (= "=") (number_literal "0x18")) (; ";")) (if_statement "if (iVar21 != 0) {\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }" (if "if") (parenthesized_expression "(iVar21 != 0)" (( "(") (binary_expression "iVar21 != 0" (identifier "iVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar14 = puVar15;\n    puVar19 = puVar9;\n    do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);\n    puVar9 = (uint *)((int)puVar9 + iVar13);\n    local_54 = (int)puVar9 - (int)puVar8;\n    uVar11 = *(uint *)(param_1 + 0xf4);\n    uVar23 = *(uint *)(param_1 + 0xf8);\n  }" ({ "{") (expression_statement "puVar14 = puVar15;" (assignment_expression "puVar14 = puVar15" (identifier "puVar14") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar19 = puVar9;" (assignment_expression "puVar19 = puVar9" (identifier "puVar19") (= "=") (identifier "puVar9")) (; ";")) (do_statement "do {\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    } while ((uint *)((int)puVar15 + iVar13) != puVar17);" (do "do") (compound_statement "{\n      uVar23 = puVar14[1];\n      puVar17 = puVar14 + 4;\n      *puVar19 = *puVar14;\n      puVar19[1] = uVar23;\n      uVar23 = puVar14[3];\n      puVar19[2] = puVar14[2];\n      puVar19[3] = uVar23;\n      puVar14 = puVar17;\n      puVar19 = puVar19 + 4;\n    }" ({ "{") (expression_statement "uVar23 = puVar14[1];" (assignment_expression "uVar23 = puVar14[1]" (identifier "uVar23") (= "=") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar17 = puVar14 + 4;" (assignment_expression "puVar17 = puVar14 + 4" (identifier "puVar17") (= "=") (binary_expression "puVar14 + 4" (identifier "puVar14") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*puVar19 = *puVar14;" (assignment_expression "*puVar19 = *puVar14" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "puVar19[1] = uVar23;" (assignment_expression "puVar19[1] = uVar23" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "uVar23 = puVar14[3];" (assignment_expression "uVar23 = puVar14[3]" (identifier "uVar23") (= "=") (subscript_expression "puVar14[3]" (identifier "puVar14") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar19[2] = puVar14[2];" (assignment_expression "puVar19[2] = puVar14[2]" (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar14[2]" (identifier "puVar14") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar19[3] = uVar23;" (assignment_expression "puVar19[3] = uVar23" (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "puVar14 = puVar17;" (assignment_expression "puVar14 = puVar17" (identifier "puVar14") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "puVar19 = puVar19 + 4;" (assignment_expression "puVar19 = puVar19 + 4" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 4" (identifier "puVar19") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uint *)((int)puVar15 + iVar13) != puVar17)" (( "(") (binary_expression "(uint *)((int)puVar15 + iVar13) != puVar17" (cast_expression "(uint *)((int)puVar15 + iVar13)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar15 + iVar13)" (( "(") (binary_expression "(int)puVar15 + iVar13" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (identifier "iVar13")) () ")"))) (!= "!=") (identifier "puVar17")) () ")")) (; ";")) (expression_statement "puVar9 = (uint *)((int)puVar9 + iVar13);" (assignment_expression "puVar9 = (uint *)((int)puVar9 + iVar13)" (identifier "puVar9") (= "=") (cast_expression "(uint *)((int)puVar9 + iVar13)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + iVar13)" (( "(") (binary_expression "(int)puVar9 + iVar13" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "iVar13")) () ")")))) (; ";")) (expression_statement "local_54 = (int)puVar9 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar9 - (int)puVar8" (identifier "local_54") (= "=") (binary_expression "(int)puVar9 - (int)puVar8" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")))) (; ";")) (expression_statement "uVar11 = *(uint *)(param_1 + 0xf4);" (assignment_expression "uVar11 = *(uint *)(param_1 + 0xf4)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(param_1 + 0xf4)" (* "*") (cast_expression "(uint *)(param_1 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf4)" (( "(") (binary_expression "param_1 + 0xf4" (identifier "param_1") (+ "+") (number_literal "0xf4")) () ")"))))) (; ";")) (expression_statement "uVar23 = *(uint *)(param_1 + 0xf8);" (assignment_expression "uVar23 = *(uint *)(param_1 + 0xf8)" (identifier "uVar23") (= "=") (pointer_expression "*(uint *)(param_1 + 0xf8)" (* "*") (cast_expression "(uint *)(param_1 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" (identifier "local_50") (= "=") (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;" (assignment_expression "uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11" (identifier "uVar23") (= "=") (binary_expression "uVar23 ^ local_50 | local_54 ^ uVar11" (binary_expression "uVar23 ^ local_50" (identifier "uVar23") (^ "^") (identifier "local_50")) (| "|") (binary_expression "local_54 ^ uVar11" (identifier "local_54") (^ "^") (identifier "uVar11")))) (; ";")) (if_statement "if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }" (if "if") (parenthesized_expression "(uVar23 != 0)" (( "(") (binary_expression "uVar23 != 0" (identifier "uVar23") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);\n  }" ({ "{") (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23)" (identifier "FUN_000da200") (argument_list "("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23)" (( "(") (string_literal ""../../gold/gdb-index.cc"" (" """) (string_content "../../gold/gdb-index.cc") (" """)) (, ",") (number_literal "0x4ee") (, ",") (string_literal ""do_write"" (" """) (string_content "do_write") (" """)) (, ",") (identifier "uVar23") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c)" (identifier "iVar13") (= "=") (binary_expression "*(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c)" (pointer_expression "*(int *)(param_1 + 0x80)" (* "*") (cast_expression "(int *)(param_1 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x80)" (( "(") (binary_expression "param_1 + 0x80" (identifier "param_1") (+ "+") (number_literal "0x80")) () ")")))) (- "-") (cast_expression "(int)*(uint **)(param_1 + 0x7c)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint **)(param_1 + 0x7c)" (* "*") (cast_expression "(uint **)(param_1 + 0x7c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")"))))))) (; ";")) (if_statement "if ((iVar13 >> 3) * -0x55555555 != 0) {\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }" (if "if") (parenthesized_expression "((iVar13 >> 3) * -0x55555555 != 0)" (( "(") (binary_expression "(iVar13 >> 3) * -0x55555555 != 0" (binary_expression "(iVar13 >> 3) * -0x55555555" (parenthesized_expression "(iVar13 >> 3)" (( "(") (binary_expression "iVar13 >> 3" (identifier "iVar13") (>> ">>") (number_literal "3")) () ")")) (* "*") (number_literal "-0x55555555")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar14 = (uint *)(iVar13 + (int)puVar9);\n    puVar15 = *(uint **)(param_1 + 0x7c);\n    do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);\n    local_54 = (int)puVar14 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n    puVar9 = puVar14;\n  }" ({ "{") (expression_statement "puVar14 = (uint *)(iVar13 + (int)puVar9);" (assignment_expression "puVar14 = (uint *)(iVar13 + (int)puVar9)" (identifier "puVar14") (= "=") (cast_expression "(uint *)(iVar13 + (int)puVar9)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + (int)puVar9)" (( "(") (binary_expression "iVar13 + (int)puVar9" (identifier "iVar13") (+ "+") (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9"))) () ")")))) (; ";")) (expression_statement "puVar15 = *(uint **)(param_1 + 0x7c);" (assignment_expression "puVar15 = *(uint **)(param_1 + 0x7c)" (identifier "puVar15") (= "=") (pointer_expression "*(uint **)(param_1 + 0x7c)" (* "*") (cast_expression "(uint **)(param_1 + 0x7c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x7c)" (( "(") (binary_expression "param_1 + 0x7c" (identifier "param_1") (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (do_statement "do {\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    } while (puVar19 != puVar14);" (do "do") (compound_statement "{\n      uVar23 = puVar15[1];\n      puVar19 = puVar9 + 6;\n      *puVar9 = *puVar15;\n      puVar9[1] = uVar23;\n      uVar23 = puVar15[3];\n      puVar9[2] = puVar15[2];\n      puVar9[3] = uVar23;\n      uVar23 = puVar15[5];\n      puVar9[4] = puVar15[4];\n      puVar9[5] = uVar23;\n      puVar9 = puVar19;\n      puVar15 = puVar15 + 6;\n    }" ({ "{") (expression_statement "uVar23 = puVar15[1];" (assignment_expression "uVar23 = puVar15[1]" (identifier "uVar23") (= "=") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar19 = puVar9 + 6;" (assignment_expression "puVar19 = puVar9 + 6" (identifier "puVar19") (= "=") (binary_expression "puVar9 + 6" (identifier "puVar9") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "*puVar9 = *puVar15;" (assignment_expression "*puVar9 = *puVar15" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "puVar9[1] = uVar23;" (assignment_expression "puVar9[1] = uVar23" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "uVar23 = puVar15[3];" (assignment_expression "uVar23 = puVar15[3]" (identifier "uVar23") (= "=") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar9[2] = puVar15[2];" (assignment_expression "puVar9[2] = puVar15[2]" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar9[3] = uVar23;" (assignment_expression "puVar9[3] = uVar23" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "uVar23 = puVar15[5];" (assignment_expression "uVar23 = puVar15[5]" (identifier "uVar23") (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar9[4] = puVar15[4];" (assignment_expression "puVar9[4] = puVar15[4]" (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar9[5] = uVar23;" (assignment_expression "puVar9[5] = uVar23" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "puVar9 = puVar19;" (assignment_expression "puVar9 = puVar19" (identifier "puVar9") (= "=") (identifier "puVar19")) (; ";")) (expression_statement "puVar15 = puVar15 + 6;" (assignment_expression "puVar15 = puVar15 + 6" (identifier "puVar15") (= "=") (binary_expression "puVar15 + 6" (identifier "puVar15") (+ "+") (number_literal "6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar19 != puVar14)" (( "(") (binary_expression "puVar19 != puVar14" (identifier "puVar19") (!= "!=") (identifier "puVar14")) () ")")) (; ";")) (expression_statement "local_54 = (int)puVar14 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar14 - (int)puVar8" (identifier "local_54") (= "=") (binary_expression "(int)puVar14 - (int)puVar8" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (- "-") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")))) (; ";")) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" (identifier "local_50") (= "=") (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "puVar9 = puVar14;" (assignment_expression "puVar9 = puVar14" (identifier "puVar9") (= "=") (identifier "puVar14")) (; ";")) (} "}"))) (if_statement "if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54)" (( "(") (binary_expression "*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54" (binary_expression "*(uint *)(param_1 + 0x100) != local_50" (pointer_expression "*(uint *)(param_1 + 0x100)" (* "*") (cast_expression "(uint *)(param_1 + 0x100)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (!= "!=") (identifier "local_50")) (|| "||") (binary_expression "*(uint *)(param_1 + 0xfc) != local_54" (pointer_expression "*(uint *)(param_1 + 0xfc)" (* "*") (cast_expression "(uint *)(param_1 + 0xfc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xfc)" (( "(") (binary_expression "param_1 + 0xfc" (identifier "param_1") (+ "+") (number_literal "0xfc")) () ")")))) (!= "!=") (identifier "local_54"))) () ")")) (compound_statement "{\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);\n  }" ({ "{") (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1)" (identifier "FUN_000da200") (argument_list "("../../gold/gdb-index.cc",0x4fa,"do_write",param_1)" (( "(") (string_literal ""../../gold/gdb-index.cc"" (" """) (string_content "../../gold/gdb-index.cc") (" """)) (, ",") (number_literal "0x4fa") (, ",") (string_literal ""do_write"" (" """) (string_content "do_write") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = *(int *)(param_1 + 0x88);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x88)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x88)" (* "*") (cast_expression "(int *)(param_1 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (if_statement "if (iVar13 != *(int *)(param_1 + 0x8c)) {\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" (if "if") (parenthesized_expression "(iVar13 != *(int *)(param_1 + 0x8c))" (( "(") (binary_expression "iVar13 != *(int *)(param_1 + 0x8c)" (identifier "iVar13") (!= "!=") (pointer_expression "*(int *)(param_1 + 0x8c)" (* "*") (cast_expression "(int *)(param_1 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x8c)" (( "(") (binary_expression "param_1 + 0x8c" (identifier "param_1") (+ "+") (number_literal "0x8c")) () ")"))))) () ")")) (compound_statement "{\n    local_30 = 0;\n    do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" ({ "{") (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));" (do "do") (compound_statement "{\n      piVar22 = (int *)(iVar13 + local_30 * 0xc);\n      uVar23 = piVar22[1];\n      uVar11 = (iVar21 + -1) - uVar23;\n      if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }\n      piVar12 = (int *)*piVar22;\n      piVar22 = (int *)piVar22[2];\n      local_54 = *piVar22;\n      if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }\n      local_30 = local_30 + 1;\n    }" ({ "{") (expression_statement "piVar22 = (int *)(iVar13 + local_30 * 0xc);" (assignment_expression "piVar22 = (int *)(iVar13 + local_30 * 0xc)" (identifier "piVar22") (= "=") (cast_expression "(int *)(iVar13 + local_30 * 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + local_30 * 0xc)" (( "(") (binary_expression "iVar13 + local_30 * 0xc" (identifier "iVar13") (+ "+") (binary_expression "local_30 * 0xc" (identifier "local_30") (* "*") (number_literal "0xc"))) () ")")))) (; ";")) (expression_statement "uVar23 = piVar22[1];" (assignment_expression "uVar23 = piVar22[1]" (identifier "uVar23") (= "=") (subscript_expression "piVar22[1]" (identifier "piVar22") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar11 = (iVar21 + -1) - uVar23;" (assignment_expression "uVar11 = (iVar21 + -1) - uVar23" (identifier "uVar11") (= "=") (binary_expression "(iVar21 + -1) - uVar23" (parenthesized_expression "(iVar21 + -1)" (( "(") (binary_expression "iVar21 + -1" (identifier "iVar21") (+ "+") (number_literal "-1")) () ")")) (- "-") (identifier "uVar23"))) (; ";")) (if_statement "if (-1 < (int)uVar23) {\n        uVar11 = uVar23;\n      }" (if "if") (parenthesized_expression "(-1 < (int)uVar23)" (( "(") (binary_expression "-1 < (int)uVar23" (number_literal "-1") (< "<") (cast_expression "(int)uVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar23"))) () ")")) (compound_statement "{\n        uVar11 = uVar23;\n      }" ({ "{") (expression_statement "uVar11 = uVar23;" (assignment_expression "uVar11 = uVar23" (identifier "uVar11") (= "=") (identifier "uVar23")) (; ";")) (} "}"))) (expression_statement "piVar12 = (int *)*piVar22;" (assignment_expression "piVar12 = (int *)*piVar22" (identifier "piVar12") (= "=") (cast_expression "(int *)*piVar22" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar22" (* "*") (identifier "piVar22")))) (; ";")) (expression_statement "piVar22 = (int *)piVar22[2];" (assignment_expression "piVar22 = (int *)piVar22[2]" (identifier "piVar22") (= "=") (cast_expression "(int *)piVar22[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar22[2]" (identifier "piVar22") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_54 = *piVar22;" (assignment_expression "local_54 = *piVar22" (identifier "local_54") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (if_statement "if (piVar22[1] != local_54) {\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }" (if "if") (parenthesized_expression "(piVar22[1] != local_54)" (( "(") (binary_expression "piVar22[1] != local_54" (subscript_expression "piVar22[1]" (identifier "piVar22") ([ "[") (number_literal "1") (] "]")) (!= "!=") (identifier "local_54")) () ")")) (compound_statement "{\n        uVar23 = 0;\n        puVar15 = puVar9;\n        do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));\n        iVar13 = *(int *)(param_1 + 0x88);\n      }" ({ "{") (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" (identifier "puVar15") (= "=") (identifier "puVar9")) (; ";")) (do_statement "do {\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));" (do "do") (compound_statement "{\n          puVar9 = (uint *)(local_54 + uVar23 * 0x14);\n          uVar18 = *puVar9;\n          if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }\n          iVar16 = (int)((ulonglong)lVar24 >> 0x20);\n          uVar10 = (uint)lVar24;\n          uVar3 = puVar9[1];\n          uVar18 = puVar9[1];\n          uVar4 = puVar9[2];\n          uVar5 = puVar9[3];\n          uVar6 = puVar9[4];\n          uVar23 = uVar23 + 1;\n          puVar15[2] = uVar10 + puVar9[3];\n          puVar9 = puVar15 + 5;\n          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);\n          puVar15[4] = uVar11;\n          *puVar15 = uVar10 + uVar18;\n          iVar13 = piVar22[1];\n          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);\n          puVar15 = puVar9;\n        }" ({ "{") (expression_statement "puVar9 = (uint *)(local_54 + uVar23 * 0x14);" (assignment_expression "puVar9 = (uint *)(local_54 + uVar23 * 0x14)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(local_54 + uVar23 * 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + uVar23 * 0x14)" (( "(") (binary_expression "local_54 + uVar23 * 0x14" (identifier "local_54") (+ "+") (binary_expression "uVar23 * 0x14" (identifier "uVar23") (* "*") (number_literal "0x14"))) () ")")))) (; ";")) (expression_statement "uVar18 = *puVar9;" (assignment_expression "uVar18 = *puVar9" (identifier "uVar18") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (if_statement "if (uVar18 == 0) {\n            lVar24 = 0;\n          }\n          else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }" (if "if") (parenthesized_expression "(uVar18 == 0)" (( "(") (binary_expression "uVar18 == 0" (identifier "uVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            lVar24 = 0;\n          }" ({ "{") (expression_statement "lVar24 = 0;" (assignment_expression "lVar24 = 0" (identifier "lVar24") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }" (else "else") (compound_statement "{\n            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }\n            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }\n            lVar7 = *(longlong *)(iVar13 + 4);\n            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);\n            lVar24 = lVar24 + lVar7;\n            local_54 = *piVar22;\n          }" ({ "{") (if_statement "if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }\n            else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }" (if "if") (parenthesized_expression "(*(code **)(*piVar12 + 0x60) == FUN_000a5850)" (( "(") (binary_expression "*(code **)(*piVar12 + 0x60) == FUN_000a5850" (pointer_expression "*(code **)(*piVar12 + 0x60)" (* "*") (cast_expression "(code **)(*piVar12 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar12 + 0x60)" (( "(") (binary_expression "*piVar12 + 0x60" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (+ "+") (number_literal "0x60")) () ")")))) (== "==") (identifier "FUN_000a5850")) () ")")) (compound_statement "{\n              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);\n            }" ({ "{") (if_statement "if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }" (if "if") (parenthesized_expression "((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18)" (( "(") (binary_expression "(uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18" (call_expression "(uint)(piVar12[0xf] - piVar12[0xe] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar12[0xf] - piVar12[0xe] >> 2)" (( "(") (binary_expression "piVar12[0xf] - piVar12[0xe] >> 2" (binary_expression "piVar12[0xf] - piVar12[0xe]" (subscript_expression "piVar12[0xf]" (identifier "piVar12") ([ "[") (number_literal "0xf") (] "]")) (- "-") (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar18")) () ")")) (compound_statement "{\n                    \n                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");\n              }" ({ "{") (expression_statement "FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "FUN_000da200("../../gold/object.h",0x5c8,"do_output_section")" (identifier "FUN_000da200") (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x5c8") (, ",") (string_literal ""do_output_section"" (" """) (string_content "do_output_section") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);" (assignment_expression "iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(piVar12[0xe] + uVar18 * 4)" (* "*") (cast_expression "(int *)(piVar12[0xe] + uVar18 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar12[0xe] + uVar18 * 4)" (( "(") (binary_expression "piVar12[0xe] + uVar18 * 4" (subscript_expression "piVar12[0xe]" (identifier "piVar12") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "uVar18 * 4" (identifier "uVar18") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }" (else "else") (compound_statement "{\n              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);\n            }" ({ "{") (expression_statement "iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);" (assignment_expression "iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18)" (identifier "iVar13") (= "=") (call_expression "(**(code **)(*piVar12 + 0x60))(piVar12,uVar18)" (parenthesized_expression "(**(code **)(*piVar12 + 0x60))" (( "(") (pointer_expression "**(code **)(*piVar12 + 0x60)" (* "*") (pointer_expression "*(code **)(*piVar12 + 0x60)" (* "*") (cast_expression "(code **)(*piVar12 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar12 + 0x60)" (( "(") (binary_expression "*piVar12 + 0x60" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(piVar12,uVar18)" (( "(") (identifier "piVar12") (, ",") (identifier "uVar18") () ")")))) (; ";")) (} "}")))) (if_statement "if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }" (if "if") (parenthesized_expression "((*(byte *)(iVar13 + 0x1c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar13 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar13 + 0x1c) & 1)" (( "(") (binary_expression "*(byte *)(iVar13 + 0x1c) & 1" (pointer_expression "*(byte *)(iVar13 + 0x1c)" (* "*") (cast_expression "(byte *)(iVar13 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x1c)" (( "(") (binary_expression "iVar13 + 0x1c" (identifier "iVar13") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n              FUN_000da200("../../gold/output.h",0xc5,"address");\n            }" ({ "{") (expression_statement "FUN_000da200("../../gold/output.h",0xc5,"address");" (call_expression "FUN_000da200("../../gold/output.h",0xc5,"address")" (identifier "FUN_000da200") (argument_list "("../../gold/output.h",0xc5,"address")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xc5") (, ",") (string_literal ""address"" (" """) (string_content "address") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar7 = *(longlong *)(iVar13 + 4);" (assignment_expression "lVar7 = *(longlong *)(iVar13 + 4)" (identifier "lVar7") (= "=") (pointer_expression "*(longlong *)(iVar13 + 4)" (* "*") (cast_expression "(longlong *)(iVar13 + 4)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 4)" (( "(") (binary_expression "iVar13 + 4" (identifier "iVar13") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);" (assignment_expression "lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9)" (identifier "lVar24") (= "=") (call_expression "(**(code **)(*piVar12 + 0x68))(piVar12,*puVar9)" (parenthesized_expression "(**(code **)(*piVar12 + 0x68))" (( "(") (pointer_expression "**(code **)(*piVar12 + 0x68)" (* "*") (pointer_expression "*(code **)(*piVar12 + 0x68)" (* "*") (cast_expression "(code **)(*piVar12 + 0x68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar12 + 0x68)" (( "(") (binary_expression "*piVar12 + 0x68" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (argument_list "(piVar12,*puVar9)" (( "(") (identifier "piVar12") (, ",") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) () ")")))) (; ";")) (expression_statement "lVar24 = lVar24 + lVar7;" (assignment_expression "lVar24 = lVar24 + lVar7" (identifier "lVar24") (= "=") (binary_expression "lVar24 + lVar7" (identifier "lVar24") (+ "+") (identifier "lVar7"))) (; ";")) (expression_statement "local_54 = *piVar22;" (assignment_expression "local_54 = *piVar22" (identifier "local_54") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (} "}")))) (expression_statement "iVar16 = (int)((ulonglong)lVar24 >> 0x20);" (assignment_expression "iVar16 = (int)((ulonglong)lVar24 >> 0x20)" (identifier "iVar16") (= "=") (cast_expression "(int)((ulonglong)lVar24 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar24 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar24 >> 0x20" (cast_expression "(ulonglong)lVar24" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar24")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar10 = (uint)lVar24;" (assignment_expression "uVar10 = (uint)lVar24" (identifier "uVar10") (= "=") (cast_expression "(uint)lVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar24"))) (; ";")) (expression_statement "uVar3 = puVar9[1];" (assignment_expression "uVar3 = puVar9[1]" (identifier "uVar3") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar18 = puVar9[1];" (assignment_expression "uVar18 = puVar9[1]" (identifier "uVar18") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = puVar9[2];" (assignment_expression "uVar4 = puVar9[2]" (identifier "uVar4") (= "=") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar9[3];" (assignment_expression "uVar5 = puVar9[3]" (identifier "uVar5") (= "=") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar9[4];" (assignment_expression "uVar6 = puVar9[4]" (identifier "uVar6") (= "=") (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar15[2] = uVar10 + puVar9[3];" (assignment_expression "puVar15[2] = uVar10 + puVar9[3]" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar10 + puVar9[3]" (identifier "uVar10") (+ "+") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar9 = puVar15 + 5;" (assignment_expression "puVar9 = puVar15 + 5" (identifier "puVar9") (= "=") (binary_expression "puVar15 + 5" (identifier "puVar15") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);" (assignment_expression "puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3)" (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3)" (binary_expression "iVar16 + uVar4" (identifier "iVar16") (+ "+") (identifier "uVar4")) (+ "+") (cast_expression "(uint)CARRY4(uVar10,uVar3)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar10,uVar3)" (identifier "CARRY4") (argument_list "(uVar10,uVar3)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar3") () ")")))))) (; ";")) (expression_statement "puVar15[4] = uVar11;" (assignment_expression "puVar15[4] = uVar11" (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*puVar15 = uVar10 + uVar18;" (assignment_expression "*puVar15 = uVar10 + uVar18" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (binary_expression "uVar10 + uVar18" (identifier "uVar10") (+ "+") (identifier "uVar18"))) (; ";")) (expression_statement "iVar13 = piVar22[1];" (assignment_expression "iVar13 = piVar22[1]" (identifier "iVar13") (= "=") (subscript_expression "piVar22[1]" (identifier "piVar22") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);" (assignment_expression "puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5)" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5)" (binary_expression "iVar16 + uVar6" (identifier "iVar16") (+ "+") (identifier "uVar6")) (+ "+") (cast_expression "(uint)CARRY4(uVar10,uVar5)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar10,uVar5)" (identifier "CARRY4") (argument_list "(uVar10,uVar5)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar5") () ")")))))) (; ";")) (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" (identifier "puVar15") (= "=") (identifier "puVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333))" (( "(") (binary_expression "uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333)" (identifier "uVar23") (< "<") (call_expression "(uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(((int)(iVar13 - local_54) >> 2) * -0x33333333)" (( "(") (binary_expression "((int)(iVar13 - local_54) >> 2) * -0x33333333" (parenthesized_expression "((int)(iVar13 - local_54) >> 2)" (( "(") (binary_expression "(int)(iVar13 - local_54) >> 2" (cast_expression "(int)(iVar13 - local_54)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar13 - local_54)" (( "(") (binary_expression "iVar13 - local_54" (identifier "iVar13") (- "-") (identifier "local_54")) () ")"))) (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "-0x33333333")) () ")")))) () ")")) (; ";")) (expression_statement "iVar13 = *(int *)(param_1 + 0x88);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x88)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x88)" (* "*") (cast_expression "(int *)(param_1 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" (identifier "local_30") (= "=") (binary_expression "local_30 + 1" (identifier "local_30") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555))" (( "(") (binary_expression "local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555)" (identifier "local_30") (< "<") (call_expression "(uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555)" (( "(") (binary_expression "(*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555" (parenthesized_expression "(*(int *)(param_1 + 0x8c) - iVar13 >> 2)" (( "(") (binary_expression "*(int *)(param_1 + 0x8c) - iVar13 >> 2" (binary_expression "*(int *)(param_1 + 0x8c) - iVar13" (pointer_expression "*(int *)(param_1 + 0x8c)" (* "*") (cast_expression "(int *)(param_1 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x8c)" (( "(") (binary_expression "param_1 + 0x8c" (identifier "param_1") (+ "+") (number_literal "0x8c")) () ")")))) (- "-") (identifier "iVar13")) (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "-0x55555555")) () ")")))) () ")")) (; ";")) (expression_statement "local_54 = (int)puVar9 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar9 - (int)puVar8" (identifier "local_54") (= "=") (binary_expression "(int)puVar9 - (int)puVar8" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")))) (; ";")) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" (identifier "local_50") (= "=") (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (>> ">>") (number_literal "0x1f"))) (; ";")) (} "}"))) (if_statement "if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54)" (( "(") (binary_expression "*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54" (binary_expression "*(uint *)(param_1 + 0x108) != local_50" (pointer_expression "*(uint *)(param_1 + 0x108)" (* "*") (cast_expression "(uint *)(param_1 + 0x108)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (!= "!=") (identifier "local_50")) (|| "||") (binary_expression "*(uint *)(param_1 + 0x104) != local_54" (pointer_expression "*(uint *)(param_1 + 0x104)" (* "*") (cast_expression "(uint *)(param_1 + 0x104)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x104)" (( "(") (binary_expression "param_1 + 0x104" (identifier "param_1") (+ "+") (number_literal "0x104")) () ")")))) (!= "!=") (identifier "local_54"))) () ")")) (compound_statement "{\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);\n  }" ({ "{") (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9)" (identifier "FUN_000da200") (argument_list "("../../gold/gdb-index.cc",0x518,"do_write",puVar9)" (( "(") (string_literal ""../../gold/gdb-index.cc"" (" """) (string_content "../../gold/gdb-index.cc") (" """)) (, ",") (number_literal "0x518") (, ",") (string_literal ""do_write"" (" """) (string_content "do_write") (" """)) (, ",") (identifier "puVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar13 = *(int *)(param_1 + 0x94);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x94)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x94)" (* "*") (cast_expression "(int *)(param_1 + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x94)" (( "(") (binary_expression "param_1 + 0x94" (identifier "param_1") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar13 + 4) != 0) {\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar13 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar13 + 4) != 0" (pointer_expression "*(int *)(iVar13 + 4)" (* "*") (cast_expression "(int *)(iVar13 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 4)" (( "(") (binary_expression "iVar13 + 4" (identifier "iVar13") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar16 = *(int *)(iVar13 + 8);\n    uVar23 = 0;\n    puVar15 = puVar9;\n    do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" ({ "{") (expression_statement "iVar16 = *(int *)(iVar13 + 8);" (assignment_expression "iVar16 = *(int *)(iVar13 + 8)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar13 + 8)" (* "*") (cast_expression "(int *)(iVar13 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" (identifier "uVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" (identifier "puVar15") (= "=") (identifier "puVar9")) (; ";")) (do_statement "do {\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    } while (uVar23 < *(uint *)(iVar13 + 4));" (do "do") (compound_statement "{\n      puVar9 = *(uint **)(iVar16 + uVar23 * 4);\n      if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }\n      puVar15[1] = uVar11;\n      puVar9 = puVar15 + 2;\n      uVar23 = uVar23 + 1;\n      *puVar15 = uVar18;\n      puVar15 = puVar9;\n    }" ({ "{") (expression_statement "puVar9 = *(uint **)(iVar16 + uVar23 * 4);" (assignment_expression "puVar9 = *(uint **)(iVar16 + uVar23 * 4)" (identifier "puVar9") (= "=") (pointer_expression "*(uint **)(iVar16 + uVar23 * 4)" (* "*") (cast_expression "(uint **)(iVar16 + uVar23 * 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar16 + uVar23 * 4)" (( "(") (binary_expression "iVar16 + uVar23 * 4" (identifier "iVar16") (+ "+") (binary_expression "uVar23 * 4" (identifier "uVar23") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (puVar9 == (uint *)0x0) {\n        uVar18 = 0;\n        uVar11 = 0;\n      }\n      else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }" (if "if") (parenthesized_expression "(puVar9 == (uint *)0x0)" (( "(") (binary_expression "puVar9 == (uint *)0x0" (identifier "puVar9") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar18 = 0;\n        uVar11 = 0;\n      }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }" (else "else") (compound_statement "{\n        if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }\n        uVar11 = *puVar9 - 1;\n        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);\n        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);\n      }" ({ "{") (if_statement "if (*(uint *)(param_1 + 0xd0) < *puVar9) {\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0xd0) < *puVar9)" (( "(") (binary_expression "*(uint *)(param_1 + 0xd0) < *puVar9" (pointer_expression "*(uint *)(param_1 + 0xd0)" (* "*") (cast_expression "(uint *)(param_1 + 0xd0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd0)" (( "(") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")")))) (< "<") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) () ")")) (compound_statement "{\n                    \n          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");\n        }" ({ "{") (expression_statement "FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");" (call_expression "FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key")" (identifier "FUN_000da200") (argument_list "("../../gold/stringpool.h",0x108,"get_offset_from_key")" (( "(") (string_literal ""../../gold/stringpool.h"" (" """) (string_content "../../gold/stringpool.h") (" """)) (, ",") (number_literal "0x108") (, ",") (string_literal ""get_offset_from_key"" (" """) (string_content "get_offset_from_key") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar11 = *puVar9 - 1;" (assignment_expression "uVar11 = *puVar9 - 1" (identifier "uVar11") (= "=") (binary_expression "*puVar9 - 1" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4);" (assignment_expression "uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" (identifier "uVar18") (= "=") (binary_expression "(*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +\n                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" (parenthesized_expression "(*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c))" (( "(") (binary_expression "*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)" (pointer_expression "*(int *)(param_1 + 0x114)" (* "*") (cast_expression "(int *)(param_1 + 0x114)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x114)" (( "(") (binary_expression "param_1 + 0x114" (identifier "param_1") (+ "+") (number_literal "0x114")) () ")")))) (- "-") (pointer_expression "*(int *)(param_1 + 0x10c)" (* "*") (cast_expression "(int *)(param_1 + 0x10c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")"))))) () ")")) (+ "+") (pointer_expression "*(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +\n                         (uVar11 & 0x1fff) * 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc)" (( "(") (binary_expression "*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc" (pointer_expression "*(int *)(param_1 + 0xc4)" (* "*") (cast_expression "(int *)(param_1 + 0xc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc4)" (( "(") (binary_expression "param_1 + 0xc4" (identifier "param_1") (+ "+") (number_literal "0xc4")) () ")")))) (+ "+") (binary_expression "(uVar11 >> 0xd) * 0xc" (parenthesized_expression "(uVar11 >> 0xd)" (( "(") (binary_expression "uVar11 >> 0xd" (identifier "uVar11") (>> ">>") (number_literal "0xd")) () ")")) (* "*") (number_literal "0xc"))) () ")")))) (+ "+") (binary_expression "(uVar11 & 0x1fff) * 4" (parenthesized_expression "(uVar11 & 0x1fff)" (( "(") (binary_expression "uVar11 & 0x1fff" (identifier "uVar11") (& "&") (number_literal "0x1fff")) () ")")) (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);" (assignment_expression "uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8)" (* "*") (cast_expression "(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xa4) + puVar9[2] * 8)" (( "(") (binary_expression "*(int *)(param_1 + 0xa4) + puVar9[2] * 8" (pointer_expression "*(int *)(param_1 + 0xa4)" (* "*") (cast_expression "(int *)(param_1 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa4)" (( "(") (binary_expression "param_1 + 0xa4" (identifier "param_1") (+ "+") (number_literal "0xa4")) () ")")))) (+ "+") (binary_expression "puVar9[2] * 8" (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")))) (expression_statement "puVar15[1] = uVar11;" (assignment_expression "puVar15[1] = uVar11" (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar9 = puVar15 + 2;" (assignment_expression "puVar9 = puVar15 + 2" (identifier "puVar9") (= "=") (binary_expression "puVar15 + 2" (identifier "puVar15") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar23 = uVar23 + 1;" (assignment_expression "uVar23 = uVar23 + 1" (identifier "uVar23") (= "=") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar15 = uVar18;" (assignment_expression "*puVar15 = uVar18" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar15 = puVar9;" (assignment_expression "puVar15 = puVar9" (identifier "puVar15") (= "=") (identifier "puVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar23 < *(uint *)(iVar13 + 4))" (( "(") (binary_expression "uVar23 < *(uint *)(iVar13 + 4)" (identifier "uVar23") (< "<") (pointer_expression "*(uint *)(iVar13 + 4)" (* "*") (cast_expression "(uint *)(iVar13 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 4)" (( "(") (binary_expression "iVar13 + 4" (identifier "iVar13") (+ "+") (number_literal "4")) () ")"))))) () ")")) (; ";")) (expression_statement "local_54 = (int)puVar9 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar9 - (int)puVar8" (identifier "local_54") (= "=") (binary_expression "(int)puVar9 - (int)puVar8" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")))) (; ";")) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" (identifier "local_50") (= "=") (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (>> ">>") (number_literal "0x1f"))) (; ";")) (} "}"))) (expression_statement "uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;" (assignment_expression "uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54" (identifier "uVar23") (= "=") (binary_expression "*(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54" (binary_expression "*(uint *)(param_1 + 0x110) ^ local_50" (pointer_expression "*(uint *)(param_1 + 0x110)" (* "*") (cast_expression "(uint *)(param_1 + 0x110)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (^ "^") (identifier "local_50")) (| "|") (binary_expression "*(uint *)(param_1 + 0x10c) ^ local_54" (pointer_expression "*(uint *)(param_1 + 0x10c)" (* "*") (cast_expression "(uint *)(param_1 + 0x10c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")")))) (^ "^") (identifier "local_54")))) (; ";")) (if_statement "if (uVar23 != 0) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }" (if "if") (parenthesized_expression "(uVar23 != 0)" (( "(") (binary_expression "uVar23 != 0" (identifier "uVar23") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);\n  }" ({ "{") (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23)" (identifier "FUN_000da200") (argument_list "("../../gold/gdb-index.cc",0x52b,"do_write",uVar23)" (( "(") (string_literal ""../../gold/gdb-index.cc"" (" """) (string_content "../../gold/gdb-index.cc") (" """)) (, ",") (number_literal "0x52b") (, ",") (string_literal ""do_write"" (" """) (string_content "do_write") (" """)) (, ",") (identifier "uVar23") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar22 = *(int **)(param_1 + 0x98);" (assignment_expression "piVar22 = *(int **)(param_1 + 0x98)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(param_1 + 0x98)" (* "*") (cast_expression "(int **)(param_1 + 0x98)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x98)" (( "(") (binary_expression "param_1 + 0x98" (identifier "param_1") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;" (assignment_expression "uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22" (identifier "uVar23") (= "=") (binary_expression "*(int *)(param_1 + 0x9c) - (int)piVar22" (pointer_expression "*(int *)(param_1 + 0x9c)" (* "*") (cast_expression "(int *)(param_1 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9c)" (( "(") (binary_expression "param_1 + 0x9c" (identifier "param_1") (+ "+") (number_literal "0x9c")) () ")")))) (- "-") (cast_expression "(int)piVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar22")))) (; ";")) (if_statement "if (uVar23 >> 2 != 0) {\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" (if "if") (parenthesized_expression "(uVar23 >> 2 != 0)" (( "(") (binary_expression "uVar23 >> 2 != 0" (binary_expression "uVar23 >> 2" (identifier "uVar23") (>> ">>") (number_literal "2")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar12 = (int *)(uVar23 + (int)piVar22);\n    do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);\n    local_54 = (int)puVar9 - (int)puVar8;\n    local_50 = (int)local_54 >> 0x1f;\n  }" ({ "{") (expression_statement "piVar12 = (int *)(uVar23 + (int)piVar22);" (assignment_expression "piVar12 = (int *)(uVar23 + (int)piVar22)" (identifier "piVar12") (= "=") (cast_expression "(int *)(uVar23 + (int)piVar22)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar23 + (int)piVar22)" (( "(") (binary_expression "uVar23 + (int)piVar22" (identifier "uVar23") (+ "+") (cast_expression "(int)piVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar22"))) () ")")))) (; ";")) (do_statement "do {\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    } while (piVar12 != piVar22);" (do "do") (compound_statement "{\n      iVar13 = *(int *)*piVar22;\n      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;\n      *puVar9 = uVar23;\n      puVar15 = puVar9 + 1;\n      if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }\n      puVar9 = puVar15;\n      piVar22 = piVar22 + 1;\n    }" ({ "{") (expression_statement "iVar13 = *(int *)*piVar22;" (assignment_expression "iVar13 = *(int *)*piVar22" (identifier "iVar13") (= "=") (pointer_expression "*(int *)*piVar22" (* "*") (cast_expression "(int *)*piVar22" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))))) (; ";")) (expression_statement "uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;" (assignment_expression "uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3" (identifier "uVar23") (= "=") (binary_expression "((int *)*piVar22)[1] - iVar13 >> 3" (binary_expression "((int *)*piVar22)[1] - iVar13" (subscript_expression "((int *)*piVar22)[1]" (parenthesized_expression "((int *)*piVar22)" (( "(") (cast_expression "(int *)*piVar22" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) () ")")) ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "iVar13")) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "*puVar9 = uVar23;" (assignment_expression "*puVar9 = uVar23" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "puVar15 = puVar9 + 1;" (assignment_expression "puVar15 = puVar9 + 1" (identifier "puVar15") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar23 != 0) {\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }" (if "if") (parenthesized_expression "(uVar23 != 0)" (( "(") (binary_expression "uVar23 != 0" (identifier "uVar23") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pbVar20 = (byte *)(iVar13 + 4);\n        puVar14 = puVar9 + 1;\n        do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);\n      }" ({ "{") (expression_statement "pbVar20 = (byte *)(iVar13 + 4);" (assignment_expression "pbVar20 = (byte *)(iVar13 + 4)" (identifier "pbVar20") (= "=") (cast_expression "(byte *)(iVar13 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 4)" (( "(") (binary_expression "iVar13 + 4" (identifier "iVar13") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "puVar14 = puVar9 + 1;" (assignment_expression "puVar14 = puVar9 + 1" (identifier "puVar14") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        } while (puVar15 != puVar9 + uVar23 + 1);" (do "do") (compound_statement "{\n          uVar11 = *(uint *)(pbVar20 + -4);\n          if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }\n          bVar1 = *pbVar20;\n          puVar15 = puVar14 + 1;\n          pbVar20 = pbVar20 + 8;\n          *puVar14 = (uint)bVar1 << 0x18 | uVar11;\n          puVar14 = puVar15;\n        }" ({ "{") (expression_statement "uVar11 = *(uint *)(pbVar20 + -4);" (assignment_expression "uVar11 = *(uint *)(pbVar20 + -4)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(pbVar20 + -4)" (* "*") (cast_expression "(uint *)(pbVar20 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar20 + -4)" (( "(") (binary_expression "pbVar20 + -4" (identifier "pbVar20") (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (if_statement "if ((int)uVar11 < 0) {\n            uVar11 = (iVar21 + -1) - uVar11;\n          }" (if "if") (parenthesized_expression "((int)uVar11 < 0)" (( "(") (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            uVar11 = (iVar21 + -1) - uVar11;\n          }" ({ "{") (expression_statement "uVar11 = (iVar21 + -1) - uVar11;" (assignment_expression "uVar11 = (iVar21 + -1) - uVar11" (identifier "uVar11") (= "=") (binary_expression "(iVar21 + -1) - uVar11" (parenthesized_expression "(iVar21 + -1)" (( "(") (binary_expression "iVar21 + -1" (identifier "iVar21") (+ "+") (number_literal "-1")) () ")")) (- "-") (identifier "uVar11"))) (; ";")) (} "}"))) (expression_statement "bVar1 = *pbVar20;" (assignment_expression "bVar1 = *pbVar20" (identifier "bVar1") (= "=") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20"))) (; ";")) (expression_statement "puVar15 = puVar14 + 1;" (assignment_expression "puVar15 = puVar14 + 1" (identifier "puVar15") (= "=") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + 8;" (assignment_expression "pbVar20 = pbVar20 + 8" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + 8" (identifier "pbVar20") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "*puVar14 = (uint)bVar1 << 0x18 | uVar11;" (assignment_expression "*puVar14 = (uint)bVar1 << 0x18 | uVar11" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (binary_expression "(uint)bVar1 << 0x18 | uVar11" (binary_expression "(uint)bVar1 << 0x18" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (<< "<<") (number_literal "0x18")) (| "|") (identifier "uVar11"))) (; ";")) (expression_statement "puVar14 = puVar15;" (assignment_expression "puVar14 = puVar15" (identifier "puVar14") (= "=") (identifier "puVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar15 != puVar9 + uVar23 + 1)" (( "(") (binary_expression "puVar15 != puVar9 + uVar23 + 1" (identifier "puVar15") (!= "!=") (binary_expression "puVar9 + uVar23 + 1" (binary_expression "puVar9 + uVar23" (identifier "puVar9") (+ "+") (identifier "uVar23")) (+ "+") (number_literal "1"))) () ")")) (; ";")) (} "}"))) (expression_statement "puVar9 = puVar15;" (assignment_expression "puVar9 = puVar15" (identifier "puVar9") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "piVar22 = piVar22 + 1;" (assignment_expression "piVar22 = piVar22 + 1" (identifier "piVar22") (= "=") (binary_expression "piVar22 + 1" (identifier "piVar22") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar12 != piVar22)" (( "(") (binary_expression "piVar12 != piVar22" (identifier "piVar12") (!= "!=") (identifier "piVar22")) () ")")) (; ";")) (expression_statement "local_54 = (int)puVar9 - (int)puVar8;" (assignment_expression "local_54 = (int)puVar9 - (int)puVar8" (identifier "local_54") (= "=") (binary_expression "(int)puVar9 - (int)puVar8" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (- "-") (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")))) (; ";")) (expression_statement "local_50 = (int)local_54 >> 0x1f;" (assignment_expression "local_50 = (int)local_54 >> 0x1f" (identifier "local_50") (= "=") (binary_expression "(int)local_54 >> 0x1f" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (>> ">>") (number_literal "0x1f"))) (; ";")) (} "}"))) (expression_statement "uVar23 = *(uint *)(param_1 + 0x114);" (assignment_expression "uVar23 = *(uint *)(param_1 + 0x114)" (identifier "uVar23") (= "=") (pointer_expression "*(uint *)(param_1 + 0x114)" (* "*") (cast_expression "(uint *)(param_1 + 0x114)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x114)" (( "(") (binary_expression "param_1 + 0x114" (identifier "param_1") (+ "+") (number_literal "0x114")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23)" (( "(") (binary_expression "*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23" (binary_expression "*(uint *)(param_1 + 0x118) != local_50" (pointer_expression "*(uint *)(param_1 + 0x118)" (* "*") (cast_expression "(uint *)(param_1 + 0x118)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x118)" (( "(") (binary_expression "param_1 + 0x118" (identifier "param_1") (+ "+") (number_literal "0x118")) () ")")))) (!= "!=") (identifier "local_50")) (|| "||") (binary_expression "local_54 != uVar23" (identifier "local_54") (!= "!=") (identifier "uVar23"))) () ")")) (compound_statement "{\n                    \n    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);\n  }" ({ "{") (expression_statement "FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);" (call_expression "FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23)" (identifier "FUN_000da200") (argument_list "("../../gold/gdb-index.cc",0x53f,"do_write",uVar23)" (( "(") (string_literal ""../../gold/gdb-index.cc"" (" """) (string_content "../../gold/gdb-index.cc") (" """)) (, ",") (number_literal "0x53f") (, ",") (string_literal ""do_write"" (" """) (string_content "do_write") (" """)) (, ",") (identifier "uVar23") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);" (call_expression "FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23)" (identifier "FUN_001e09f0") (argument_list "(param_1 + 0xa8,puVar9,uVar2 - uVar23)" (( "(") (binary_expression "param_1 + 0xa8" (identifier "param_1") (+ "+") (number_literal "0xa8")) (, ",") (identifier "puVar9") (, ",") (binary_expression "uVar2 - uVar23" (identifier "uVar2") (- "-") (identifier "uVar23")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* DWARF original prototype: void do_write(Gdb_index * this, Output_file * of) */

void __thiscall var_30::type_1::function_1(type_1 *this,type_2 *of)

{
  type_3 pPVar1;
  type_4 var_2;
  type_5 var_6;
  type_3 pCVar4;
  type_6 *pRVar5;
  type_7 *pDVar6;
  type_8 *p_Var7;
  type_3 ppOVar8;
  type_3 pRVar9;
  Gdb_hashtab<var_30::Gdb_index::var_1> *pGVar10;
  var_1 **ppGVar11;
  var_1 *var_35;
  type_3 ppVar13;
  type_9 oVar14;
  type_9 oVar15;
  type_9 oVar16;
  type_10 *var_14;
  type_5 *var_22;
  type_5 var_32;
  type_5 var_34;
  type_11 *pOVar20;
  type_3 var_26;
  type_5 var_11;
  type_3 var_42;
  int var_10;
  type_5 *var_17;
  int var_4;
  type_3 var_16;
  type_3 var_18;
  type_3 var_23;
  int var_33;
  type_5 var_29;
  type_5 var_7;
  type_10 *var_40;
  int var_15;
  type_3 var_41;
  int var_8;
  type_5 *var_24;
  type_3 var_20;
  int var_19;
  type_5 var_27;
  
  var_2 = (this->super_Output_section_data).super_Output_data.field_0x1c;
  if ((var_2 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/output.h",0xe3,"offset");
  }
  var_7 = (type_5)(this->super_Output_section_data).super_Output_data.offset_;
  var_4 = *(int *)((int)&(this->super_Output_section_data).super_Output_data.offset_ + 4);
  if ((var_2 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/output.h",0xcf,"data_size");
  }
  var_6 = (type_5)(this->super_Output_section_data).super_Output_data.data_size_;
  if ((var_4 < 0) ||
     (var_8 = *(int *)((int)&of->file_size_ + 4), var_4 = var_4 + (type_5)var_5(var_6,var_7),
     var_11 = (type_5)((type_5)of->file_size_ < var_6 + var_7), var_10 = var_8 - var_4,
     (var_9(var_8,var_4) != var_9(var_10,var_11)) != (int)(var_10 - var_11) < 0)) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/output.h",0x6f,"get_output_view");
  }
  var_4 = (int)this->tu_offset_;
  var_14 = of->base_ + var_7;
  var_8 = *(int *)((int)&this->tu_offset_ + 4);
  var_14[0] = '\a';
  var_14[1] = '\0';
  var_14[2] = '\0';
  var_14[3] = '\0';
  pCVar4 = (this->comp_units_).
           super__Vector_base<var_30::Gdb_index::var_12,var_31::var_36<var_30::Gdb_index::var_12>var_13>
           ._M_impl._M_start;
  var_14[4] = '\x18';
  var_14[5] = '\0';
  var_14[6] = '\0';
  var_14[7] = '\0';
  var_16 = (this->comp_units_).
            super__Vector_base<var_30::Gdb_index::var_12,var_31::var_36<var_30::Gdb_index::var_12>var_13>
            ._M_impl._M_finish;
  *(int *)(var_14 + 8) = var_4;
  var_10 = (int)var_16 - (int)pCVar4;
  var_15 = var_10 >> 4;
  *(int *)(var_14 + 0xc) = (int)this->addr_offset_;
  *(int *)(var_14 + 0x10) = (int)this->symtab_offset_;
  *(int *)(var_14 + 0x14) = (int)this->cu_pool_offset_;
  var_22 = (type_5 *)(var_14 + 0x18);
  var_20 = (type_3)0x18;
  if (var_15 != 0) {
    var_16 = pCVar4;
    var_17 = var_22;
    do {
      var_7 = *(type_5 *)((int)&var_16->cu_offset + 4);
      var_18 = var_16 + 1;
      *var_17 = (type_5)var_16->cu_offset;
      var_17[1] = var_7;
      var_7 = *(type_5 *)((int)&var_16->cu_length + 4);
      var_17[2] = (type_5)var_16->cu_length;
      var_17[3] = var_7;
      var_16 = var_18;
      var_17 = var_17 + 4;
    } while ((type_3)((int)pCVar4 + var_10) != var_18);
    var_22 = (type_5 *)((int)var_22 + var_10);
    var_20 = (type_3)((int)var_22 - (int)var_14);
    var_4 = (int)this->tu_offset_;
    var_8 = *(int *)((int)&this->tu_offset_ + 4);
  }
  var_19 = (int)var_20 >> 0x1f;
  if (var_8 != var_19 || var_20 != (type_3)var_4) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/gdb-index.cc",0x4ee,"do_write");
  }
  var_23 = (this->type_units_).
            super__Vector_base<var_30::Gdb_index::var_21,var_31::var_36<var_30::Gdb_index::var_21>var_13>
            ._M_impl._M_start;
  var_4 = (int)(this->type_units_).
                super__Vector_base<var_30::Gdb_index::var_21,var_31::var_36<var_30::Gdb_index::var_21>var_13>
                ._M_impl._M_finish - (int)var_23;
  if ((var_4 >> 3) * -0x55555555 != 0) {
    var_17 = (type_5 *)(var_4 + (int)var_22);
    do {
      var_7 = *(type_5 *)((int)&var_23->tu_offset + 4);
      var_24 = var_22 + 6;
      *var_22 = (type_5)var_23->tu_offset;
      var_22[1] = var_7;
      var_7 = *(type_5 *)((int)&var_23->type_offset + 4);
      var_22[2] = (type_5)var_23->type_offset;
      var_22[3] = var_7;
      var_7 = *(type_5 *)((int)&var_23->type_signature + 4);
      var_22[4] = (type_5)var_23->type_signature;
      var_22[5] = var_7;
      var_22 = var_24;
      var_23 = var_23 + 1;
    } while (var_24 != var_17);
    var_20 = (type_3)((int)var_17 - (int)var_14);
    var_19 = (int)var_20 >> 0x1f;
    var_22 = var_17;
  }
  if (*(int *)((int)&this->addr_offset_ + 4) != var_19 ||
      (type_3)(int)this->addr_offset_ != var_20) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/gdb-index.cc",0x4fa,"do_write");
  }
  var_26 = (this->ranges_).
            super__Vector_base<var_30::Gdb_index::var_25,var_31::var_36<var_30::Gdb_index::var_25>var_13>
            ._M_impl._M_start;
  if (var_26 !=
      (this->ranges_).
      super__Vector_base<var_30::type_1::var_25,var_31::var_36<var_30::type_1::var_25>var_13>
      ._M_impl._M_finish) {
    var_27 = 0;
    do {
      pPVar1 = var_26 + var_27;
      var_7 = pPVar1->cu_index;
      var_11 = (var_15 + -1) - var_7;
      if (-1 < (int)var_7) {
        var_11 = var_7;
      }
      pRVar5 = pPVar1->object;
      pDVar6 = pPVar1->ranges;
      var_20 = (pDVar6->range_list_).
                 super__Vector_base<var_30::Dwarf_range_list::var_28,var_31::var_36<var_30::Dwarf_range_list::var_28>var_13>
                 ._M_impl._M_start;
      if ((pDVar6->range_list_).
          super__Vector_base<var_30::type_7::var_28,var_31::var_36<var_30::type_7::var_28>var_13>
          ._M_impl._M_finish != var_20) {
        var_7 = 0;
        var_17 = var_22;
        do {
          pRVar9 = var_20 + var_7;
          var_29 = pRVar9->shndx;
          if (var_29 == 0) {
            var_34 = 0;
            var_4 = 0;
          }
          else {
            p_Var7 = (pRVar5->super_Object)._vptr_Object[0x18];
            if (p_Var7 == type_6::do_output_section) {
              ppOVar8 = (pRVar5->output_sections_).
                        super__Vector_base<var_30::type_11*,var_31::var_36<var_30::type_11*>var_13>
                        ._M_impl._M_start;
              if ((type_5)((int)(pRVar5->output_sections_).
                              super__Vector_base<var_30::type_11*,var_31::var_36<var_30::type_11*>var_13>
                              ._M_impl._M_finish - (int)ppOVar8 >> 2) <= var_29) {
                    /* WARNING: Subroutine does not return */
                var_3("../../gold/object.h",0x5c8,"do_output_section");
              }
              pOVar20 = ppOVar8[var_29];
            }
            else {
              pOVar20 = (type_11 *)(*p_Var7)(pRVar5,var_29);
            }
            if (((pOVar20->super_Output_data).field_0x1c & 1) == 0) {
                    /* WARNING: Subroutine does not return */
              var_3("../../gold/output.h",0xc5,"address");
            }
            var_29 = (type_5)(pOVar20->super_Output_data).address_;
            var_4 = *(int *)((int)&(pOVar20->super_Output_data).address_ + 4);
            var_32 = (*(pRVar5->super_Object)._vptr_Object[0x1a])(pRVar5,pRVar9->shndx);
            var_34 = var_32 + var_29;
            var_4 = var_33 + var_4 + (type_5)var_5(var_32,var_29);
            var_20 = (pDVar6->range_list_).
                       super__Vector_base<var_30::Dwarf_range_list::var_28,var_31::var_36<var_30::Dwarf_range_list::var_28>var_13>
                       ._M_impl._M_start;
          }
          oVar14 = pRVar9->start;
          oVar15 = pRVar9->start;
          var_8 = *(int *)((int)&pRVar9->start + 4);
          oVar16 = pRVar9->end;
          var_10 = *(int *)((int)&pRVar9->end + 4);
          var_7 = var_7 + 1;
          var_17[2] = var_34 + (int)pRVar9->end;
          var_22 = var_17 + 5;
          var_17[1] = var_4 + var_8 + (type_5)var_5(var_34,(type_5)oVar14);
          var_17[4] = var_11;
          *var_17 = var_34 + (int)oVar15;
          pRVar9 = (pDVar6->range_list_).
                   super__Vector_base<var_30::Dwarf_range_list::var_28,var_31::var_36<var_30::Dwarf_range_list::var_28>var_13>
                   ._M_impl._M_finish;
          var_17[3] = var_4 + var_10 + (type_5)var_5(var_34,(type_5)oVar16);
          var_17 = var_22;
        } while (var_7 < (type_5)(((int)pRVar9 - (int)var_20 >> 2) * -0x33333333));
        var_26 = (this->ranges_).
                  super__Vector_base<var_30::Gdb_index::var_25,var_31::var_36<var_30::Gdb_index::var_25>var_13>
                  ._M_impl._M_start;
      }
      var_27 = var_27 + 1;
    } while (var_27 <
             (type_5)(((int)(this->ranges_).
                          super__Vector_base<var_30::type_1::var_25,var_31::var_36<var_30::type_1::var_25>var_13>
                          ._M_impl._M_finish - (int)var_26 >> 2) * -0x55555555));
    var_20 = (type_3)((int)var_22 - (int)var_14);
    var_19 = (int)var_20 >> 0x1f;
  }
  if (*(int *)((int)&this->symtab_offset_ + 4) != var_19 ||
      (type_3)(int)this->symtab_offset_ != var_20) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/gdb-index.cc",0x518,"do_write");
  }
  pGVar10 = this->gdb_symtab_;
  if (pGVar10->capacity_ != 0) {
    ppGVar11 = pGVar10->hashtab_;
    var_7 = 0;
    var_17 = var_22;
    do {
      var_35 = ppGVar11[var_7];
      if (var_35 == (var_1 *)0x0) {
        var_29 = 0;
        var_11 = 0;
      }
      else {
        if ((this->stringpool_).key_to_offset_.size_ < var_35->name_key) {
                    /* WARNING: Subroutine does not return */
          var_3("../../gold/stringpool.h",0x108,"get_offset_from_key");
        }
        var_11 = var_35->name_key - 1;
        var_29 = ((int)this->stringpool_offset_ - (int)this->cu_pool_offset_) +
                 *(int *)((int)(this->stringpool_).key_to_offset_.chunks_.
                               super__Vector_base<std::vector<var_37,var_31::var_36<var_37>var_13>,var_31::var_36<std::vector<var_37,var_31::var_36<var_37>var_13>var_13>var_13>
                               ._M_impl._M_start[var_11 >> 0xd].
                               super__Vector_base<var_37,var_31::var_36<var_37>var_13>._M_impl._M_start +
                         (var_11 & 0x1fff) * 4);
        var_11 = *(type_5 *)(this->cu_vector_offsets_ + var_35->cu_vector_index);
      }
      var_17[1] = var_11;
      var_22 = var_17 + 2;
      var_7 = var_7 + 1;
      *var_17 = var_29;
      var_17 = var_22;
    } while (var_7 < pGVar10->capacity_);
    var_20 = (type_3)((int)var_22 - (int)var_14);
    var_19 = (int)var_20 >> 0x1f;
  }
  if (*(int *)((int)&this->cu_pool_offset_ + 4) != var_19 ||
      (type_3)(int)this->cu_pool_offset_ != var_20) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/gdb-index.cc",0x52b,"do_write");
  }
  var_41 = (this->cu_vector_list_).
             super__Vector_base<std::vector<std::var_38<var_37,var_39>,var_31::var_36<std::var_38<var_37,var_39>var_13>var_13>*,var_31::var_36<std::vector<std::var_38<var_37,var_39>,var_31::var_36<std::var_38<var_37,var_39>var_13>var_13>*>var_13>
             ._M_impl._M_start;
  var_7 = (int)(this->cu_vector_list_).
                super__Vector_base<std::vector<std::var_38<var_37,var_39>,var_31::var_36<std::var_38<var_37,var_39>var_13>var_13>*,var_31::var_36<std::vector<std::var_38<var_37,var_39>,var_31::var_36<std::var_38<var_37,var_39>var_13>var_13>*>var_13>
                ._M_impl._M_finish - (int)var_41;
  if (var_7 >> 2 != 0) {
    var_42 = (type_3)(var_7 + (int)var_41);
    do {
      ppVar13 = ((*var_41)->
                super__Vector_base<std::var_38<var_37,var_39>,var_31::var_36<std::var_38<var_37,var_39>var_13>var_13>
                )._M_impl._M_start;
      var_7 = (int)((*var_41)->
                    super__Vector_base<std::var_38<var_37,var_39>,var_31::var_36<std::var_38<var_37,var_39>var_13>var_13>
                    )._M_impl._M_finish - (int)ppVar13 >> 3;
      *var_22 = var_7;
      var_17 = var_22 + 1;
      if (var_7 != 0) {
        var_40 = &ppVar13->second;
        var_24 = var_22 + 1;
        do {
          var_11 = ((var_38<var_37,var_39> *)(var_40 + -4))->first;
          if ((int)var_11 < 0) {
            var_11 = (var_15 + -1) - var_11;
          }
          var_2 = *var_40;
          var_17 = var_24 + 1;
          var_40 = var_40 + 8;
          *var_24 = (type_5)var_2 << 0x18 | var_11;
          var_24 = var_17;
        } while (var_17 != var_22 + var_7 + 1);
      }
      var_22 = var_17;
      var_41 = var_41 + 1;
    } while (var_42 != var_41);
    var_20 = (type_3)((int)var_22 - (int)var_14);
    var_19 = (int)var_20 >> 0x1f;
  }
  var_4 = (int)this->stringpool_offset_;
  if (*(int *)((int)&this->stringpool_offset_ + 4) != var_19 || var_20 != (type_3)var_4) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/gdb-index.cc",0x53f,"do_write");
  }
  var_43<var_44>::var_45(&this->stringpool_,(type_10 *)var_22,var_6 - var_4);
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(int param_1,int param_2)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  longlong lVar7;
  undefined4 *puVar8;
  uint *puVar9;
  uint uVar10;
  uint uVar11;
  int *piVar12;
  int iVar13;
  uint *puVar14;
  uint *puVar15;
  int iVar16;
  uint *puVar17;
  uint uVar18;
  uint *puVar19;
  byte *pbVar20;
  int iVar21;
  int *piVar22;
  uint uVar23;
  longlong lVar24;
  uint local_54;
  uint local_50;
  uint local_30;
  
  bVar1 = *(byte *)(param_1 + 0x1c);
  if ((bVar1 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/output.h",0xe3,"offset",bVar1);
  }
  uVar23 = *(uint *)(param_1 + 0x14);
  iVar13 = *(int *)(param_1 + 0x18);
  if ((bVar1 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/output.h",0xcf,"data_size");
  }
  uVar2 = *(uint *)(param_1 + 0xc);
  if ((iVar13 < 0) ||
     (iVar16 = iVar13 + (uint)CARRY4(uVar2,uVar23),
     uVar11 = (uint)(*(uint *)(param_2 + 8) < uVar2 + uVar23),
     iVar21 = *(int *)(param_2 + 0xc) - iVar16,
     (SBORROW4(*(int *)(param_2 + 0xc),iVar16) != SBORROW4(iVar21,uVar11)) !=
     (int)(iVar21 - uVar11) < 0)) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/output.h",0x6f,"get_output_view",iVar13);
  }
  uVar11 = *(uint *)(param_1 + 0xf4);
  puVar8 = (undefined4 *)(*(int *)(param_2 + 0x10) + uVar23);
  uVar23 = *(uint *)(param_1 + 0xf8);
  *puVar8 = 7;
  puVar15 = *(uint **)(param_1 + 0x70);
  puVar8[1] = 0x18;
  iVar13 = *(int *)(param_1 + 0x74);
  puVar8[2] = uVar11;
  iVar13 = iVar13 - (int)puVar15;
  iVar21 = iVar13 >> 4;
  puVar8[3] = *(undefined4 *)(param_1 + 0xfc);
  puVar8[4] = *(undefined4 *)(param_1 + 0x104);
  puVar8[5] = *(undefined4 *)(param_1 + 0x10c);
  puVar9 = puVar8 + 6;
  local_54 = 0x18;
  if (iVar21 != 0) {
    puVar14 = puVar15;
    puVar19 = puVar9;
    do {
      uVar23 = puVar14[1];
      puVar17 = puVar14 + 4;
      *puVar19 = *puVar14;
      puVar19[1] = uVar23;
      uVar23 = puVar14[3];
      puVar19[2] = puVar14[2];
      puVar19[3] = uVar23;
      puVar14 = puVar17;
      puVar19 = puVar19 + 4;
    } while ((uint *)((int)puVar15 + iVar13) != puVar17);
    puVar9 = (uint *)((int)puVar9 + iVar13);
    local_54 = (int)puVar9 - (int)puVar8;
    uVar11 = *(uint *)(param_1 + 0xf4);
    uVar23 = *(uint *)(param_1 + 0xf8);
  }
  local_50 = (int)local_54 >> 0x1f;
  uVar23 = uVar23 ^ local_50 | local_54 ^ uVar11;
  if (uVar23 != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/gdb-index.cc",0x4ee,"do_write",uVar23);
  }
  iVar13 = *(int *)(param_1 + 0x80) - (int)*(uint **)(param_1 + 0x7c);
  if ((iVar13 >> 3) * -0x55555555 != 0) {
    puVar14 = (uint *)(iVar13 + (int)puVar9);
    puVar15 = *(uint **)(param_1 + 0x7c);
    do {
      uVar23 = puVar15[1];
      puVar19 = puVar9 + 6;
      *puVar9 = *puVar15;
      puVar9[1] = uVar23;
      uVar23 = puVar15[3];
      puVar9[2] = puVar15[2];
      puVar9[3] = uVar23;
      uVar23 = puVar15[5];
      puVar9[4] = puVar15[4];
      puVar9[5] = uVar23;
      puVar9 = puVar19;
      puVar15 = puVar15 + 6;
    } while (puVar19 != puVar14);
    local_54 = (int)puVar14 - (int)puVar8;
    local_50 = (int)local_54 >> 0x1f;
    puVar9 = puVar14;
  }
  if (*(uint *)(param_1 + 0x100) != local_50 || *(uint *)(param_1 + 0xfc) != local_54) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/gdb-index.cc",0x4fa,"do_write",param_1);
  }
  iVar13 = *(int *)(param_1 + 0x88);
  if (iVar13 != *(int *)(param_1 + 0x8c)) {
    local_30 = 0;
    do {
      piVar22 = (int *)(iVar13 + local_30 * 0xc);
      uVar23 = piVar22[1];
      uVar11 = (iVar21 + -1) - uVar23;
      if (-1 < (int)uVar23) {
        uVar11 = uVar23;
      }
      piVar12 = (int *)*piVar22;
      piVar22 = (int *)piVar22[2];
      local_54 = *piVar22;
      if (piVar22[1] != local_54) {
        uVar23 = 0;
        puVar15 = puVar9;
        do {
          puVar9 = (uint *)(local_54 + uVar23 * 0x14);
          uVar18 = *puVar9;
          if (uVar18 == 0) {
            lVar24 = 0;
          }
          else {
            if (*(code **)(*piVar12 + 0x60) == FUN_000a5850) {
              if ((uint)(piVar12[0xf] - piVar12[0xe] >> 2) <= uVar18) {
                    /* WARNING: Subroutine does not return */
                FUN_000da200("../../gold/object.h",0x5c8,"do_output_section");
              }
              iVar13 = *(int *)(piVar12[0xe] + uVar18 * 4);
            }
            else {
              iVar13 = (**(code **)(*piVar12 + 0x60))(piVar12,uVar18);
            }
            if ((*(byte *)(iVar13 + 0x1c) & 1) == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_000da200("../../gold/output.h",0xc5,"address");
            }
            lVar7 = *(longlong *)(iVar13 + 4);
            lVar24 = (**(code **)(*piVar12 + 0x68))(piVar12,*puVar9);
            lVar24 = lVar24 + lVar7;
            local_54 = *piVar22;
          }
          iVar16 = (int)((ulonglong)lVar24 >> 0x20);
          uVar10 = (uint)lVar24;
          uVar3 = puVar9[1];
          uVar18 = puVar9[1];
          uVar4 = puVar9[2];
          uVar5 = puVar9[3];
          uVar6 = puVar9[4];
          uVar23 = uVar23 + 1;
          puVar15[2] = uVar10 + puVar9[3];
          puVar9 = puVar15 + 5;
          puVar15[1] = iVar16 + uVar4 + (uint)CARRY4(uVar10,uVar3);
          puVar15[4] = uVar11;
          *puVar15 = uVar10 + uVar18;
          iVar13 = piVar22[1];
          puVar15[3] = iVar16 + uVar6 + (uint)CARRY4(uVar10,uVar5);
          puVar15 = puVar9;
        } while (uVar23 < (uint)(((int)(iVar13 - local_54) >> 2) * -0x33333333));
        iVar13 = *(int *)(param_1 + 0x88);
      }
      local_30 = local_30 + 1;
    } while (local_30 < (uint)((*(int *)(param_1 + 0x8c) - iVar13 >> 2) * -0x55555555));
    local_54 = (int)puVar9 - (int)puVar8;
    local_50 = (int)local_54 >> 0x1f;
  }
  if (*(uint *)(param_1 + 0x108) != local_50 || *(uint *)(param_1 + 0x104) != local_54) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/gdb-index.cc",0x518,"do_write",puVar9);
  }
  iVar13 = *(int *)(param_1 + 0x94);
  if (*(int *)(iVar13 + 4) != 0) {
    iVar16 = *(int *)(iVar13 + 8);
    uVar23 = 0;
    puVar15 = puVar9;
    do {
      puVar9 = *(uint **)(iVar16 + uVar23 * 4);
      if (puVar9 == (uint *)0x0) {
        uVar18 = 0;
        uVar11 = 0;
      }
      else {
        if (*(uint *)(param_1 + 0xd0) < *puVar9) {
                    /* WARNING: Subroutine does not return */
          FUN_000da200("../../gold/stringpool.h",0x108,"get_offset_from_key");
        }
        uVar11 = *puVar9 - 1;
        uVar18 = (*(int *)(param_1 + 0x114) - *(int *)(param_1 + 0x10c)) +
                 *(int *)(*(int *)(*(int *)(param_1 + 0xc4) + (uVar11 >> 0xd) * 0xc) +
                         (uVar11 & 0x1fff) * 4);
        uVar11 = *(uint *)(*(int *)(param_1 + 0xa4) + puVar9[2] * 8);
      }
      puVar15[1] = uVar11;
      puVar9 = puVar15 + 2;
      uVar23 = uVar23 + 1;
      *puVar15 = uVar18;
      puVar15 = puVar9;
    } while (uVar23 < *(uint *)(iVar13 + 4));
    local_54 = (int)puVar9 - (int)puVar8;
    local_50 = (int)local_54 >> 0x1f;
  }
  uVar23 = *(uint *)(param_1 + 0x110) ^ local_50 | *(uint *)(param_1 + 0x10c) ^ local_54;
  if (uVar23 != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/gdb-index.cc",0x52b,"do_write",uVar23);
  }
  piVar22 = *(int **)(param_1 + 0x98);
  uVar23 = *(int *)(param_1 + 0x9c) - (int)piVar22;
  if (uVar23 >> 2 != 0) {
    piVar12 = (int *)(uVar23 + (int)piVar22);
    do {
      iVar13 = *(int *)*piVar22;
      uVar23 = ((int *)*piVar22)[1] - iVar13 >> 3;
      *puVar9 = uVar23;
      puVar15 = puVar9 + 1;
      if (uVar23 != 0) {
        pbVar20 = (byte *)(iVar13 + 4);
        puVar14 = puVar9 + 1;
        do {
          uVar11 = *(uint *)(pbVar20 + -4);
          if ((int)uVar11 < 0) {
            uVar11 = (iVar21 + -1) - uVar11;
          }
          bVar1 = *pbVar20;
          puVar15 = puVar14 + 1;
          pbVar20 = pbVar20 + 8;
          *puVar14 = (uint)bVar1 << 0x18 | uVar11;
          puVar14 = puVar15;
        } while (puVar15 != puVar9 + uVar23 + 1);
      }
      puVar9 = puVar15;
      piVar22 = piVar22 + 1;
    } while (piVar12 != piVar22);
    local_54 = (int)puVar9 - (int)puVar8;
    local_50 = (int)local_54 >> 0x1f;
  }
  uVar23 = *(uint *)(param_1 + 0x114);
  if (*(uint *)(param_1 + 0x118) != local_50 || local_54 != uVar23) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/gdb-index.cc",0x53f,"do_write",uVar23);
  }
  FUN_001e09f0(param_1 + 0xa8,puVar9,uVar2 - uVar23);
  return;
}

