
/* WARNING: Removing unreachable block (ram,0x0021c208) */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: uint64_t set_section_addresses(Output_segment * this, Target * target,
   Layout * layout, bool reset, uint64_t addr, uint * increase_relro, bool * has_relro, off_t *
   poff, uint * pshndx) */

uint64_t __thiscall
gold::Output_segment::set_section_addresses
          (Output_segment *this,Target *target,Layout *layout,bool reset,uint64_t addr,
          uint *increase_relro,bool *has_relro,off_t *poff,uint *pshndx)

{
  byte bVar1;
  longlong lVar2;
  undefined *puVar3;
  undefined3 extraout_var;
  bool bVar8;
  Layout *pLVar4;
  pointer ppOVar5;
  Output_data *pOVar6;
  bool *pbVar7;
  int iVar9;
  Target *this_00;
  uint uVar10;
  Target *pTVar11;
  uint *puVar12;
  undefined *puVar13;
  iterator __position;
  uint uVar14;
  int iVar15;
  uint uVar16;
  Output_data *pOVar17;
  undefined3 in_register_0000001c;
  Output_segment *pOVar18;
  pointer ppOVar19;
  pointer ppOVar20;
  Layout *unaff_s0;
  Layout *pLVar21;
  Output_segment *unaff_s1;
  Output_data *unaff_s2;
  bool *unaff_s4;
  uint *unaff_s5;
  Layout *unaff_s6;
  pointer *pppOVar22;
  pointer *pppOVar23;
  code *pcVar24;
  Target_info *pTVar25;
  int iVar26;
  uint64_t uVar27;
  longlong lVar28;
  uint64_t uVar29;
  longlong lVar30;
  undefined8 uVar31;
  ulonglong uVar32;
  undefined1 *local_90 [2];
  undefined1 auStack_88 [16];
  string fill_data;
  off_t foff;
  Output_data *local_58;
  bool in_tls;
  bool *local_50;
  Layout *local_4c;
  code *local_48;
  int local_44;
  uint *local_40;
  int *local_3c;
  int local_38;
  Output_data *local_34;
  int local_30;
  
  uVar27 = CONCAT44(unaff_s6,unaff_s4);
  pOVar6 = (Output_data *)CONCAT31(in_register_0000001c,reset);
  local_40 = addr._4_4_;
  local_48 = addr._0_4_;
  __position._M_current = (Output_data **)0x10e4;
  pLVar21 = unaff_s0;
  if (this->type_ != 1) goto LAB_0021c29c;
  local_50 = *(bool **)poff;
  in_tls = false;
  local_3c = (int *)PTR_parameters_004c19b4;
  local_4c = *(Layout **)((int)poff + 4);
  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {
LAB_0021c33c:
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,
               PTR_s_in_a_linker_script_004c191c + -0x29c4);
    this = unaff_s1;
LAB_0021c358:
    __position._M_current = (Output_data **)0x1131;
    pLVar21 = unaff_s0;
    unaff_s1 = this;
    goto LAB_0021c29c;
  }
  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) != '\0') &&
     (bVar8 = is_first_section_relro(this), CONCAT31(extraout_var,bVar8) != 0)) {
    if ((*(int *)&this->field_0x1a0 << 1 < 0) &&
       (unaff_s5 = (uint *)0x0, pOVar6 == (Output_data *)0x0)) {
      local_44 = 0;
      goto LAB_0021ba3c;
    }
    local_38 = *(int *)poff;
    pppOVar22 = &this->output_lists_[0].
                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl
                 ._M_finish;
    lVar30 = 0;
    unaff_s2 = (Output_data *)0x0;
    local_34 = *(Output_data **)((int)poff + 4);
    unaff_s0 = (Layout *)0x0;
    pppOVar23 = &this->output_lists_[0x15].
                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl
                 ._M_finish;
LAB_0021bac4:
    do {
      unaff_s1 = (Output_segment *)((_Vector_impl *)(pppOVar22 + -1))->_M_start;
      if (unaff_s1 != (Output_segment *)*pppOVar22) {
        do {
          while( true ) {
            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);
            ppOVar5 = unaff_s1->output_lists_[0].
                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                      _M_impl._M_start;
            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);
            if (iVar15 == 0) {
              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;
              pppOVar22 = pppOVar22 + 3;
              uVar14 = uVar14 | (uint)lVar30;
              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;
              goto LAB_0021c05c;
            }
            ppOVar5 = unaff_s1->output_lists_[0].
                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                      _M_impl._M_start;
            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);
            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);
            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {
              lVar30 = lVar28;
            }
            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);
            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].
                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                                    ._M_impl._M_start)->field_0x20)();
            if (iVar15 == 0) {
              if (in_tls != false) {
                in_tls = false;
                lVar28 = lVar30;
              }
            }
            else {
              in_tls = true;
            }
            unaff_s4 = (bool *)lVar28;
            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].
                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                                    ._M_impl._M_start)->field_0x20)();
            if ((iVar15 == 0) ||
               (ppOVar5 = unaff_s1->output_lists_[0].
                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                          ._M_impl._M_start,
               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))
            break;
LAB_0021bb94:
            unaff_s1 = (Output_segment *)
                       &unaff_s1->output_lists_[0].
                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                        _M_impl._M_finish;
            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;
          }
          pLVar4 = (Layout *)
                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.
                          _M_node_count + 3);
          pLVar21 = unaff_s0;
          if (lVar28 != 0) {
            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);
            unaff_s4 = (bool *)-(int)unaff_s4;
            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);
            unaff_s2 = (Output_data *)
                       ((uint)((ulonglong)lVar2 >> 0x20) &
                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));
          }
          uVar27 = CONCAT44(pppOVar22,unaff_s4);
          ppOVar5 = unaff_s1->output_lists_[0].
                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                    _M_impl._M_start;
          if ((int)ppOVar5[8] < 0) {
            if ((int)ppOVar5[8] << 1 < 0) {
              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);
              unaff_s2 = (Output_data *)
                         ((int)&unaff_s2->_vptr_Output_data +
                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));
              goto LAB_0021bb94;
            }
LAB_0021c280:
            (*(code *)PTR_do_gold_unreachable_004c1a30)
                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,
                       PTR_s_in_a_linker_script_004c191c + -0x29fc);
            goto LAB_0021c298;
          }
          bVar1 = *(byte *)(ppOVar5 + 8);
          ppOVar5[2] = unaff_s2;
          ppOVar5[3] = (Output_data *)pLVar21;
          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;
          if ((int)ppOVar5[8] << 2 < 0) {
            (*(code *)PTR_do_gold_unreachable_004c1a30)
                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,
                       PTR_s_in_a_linker_script_004c191c + -0x2d60);
            goto LAB_0021c2ec;
          }
          pOVar17 = *ppOVar5;
          ppOVar5[6] = unaff_s2;
          ppOVar5[7] = (Output_data *)pLVar21;
          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;
          if (-1 < (int)ppOVar5[8] << 1) {
            (**(code **)&pOVar17[1].data_size_)(ppOVar5);
            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;
            ppOVar5 = unaff_s1->output_lists_[0].
                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                      _M_impl._M_start;
            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;
            pOVar17 = *ppOVar5;
          }
          bVar1 = *(byte *)(ppOVar5 + 8);
          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;
          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);
          unaff_s2 = (Output_data *)
                     ((int)&unaff_s2->_vptr_Output_data +
                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));
          if (-1 < (int)ppOVar5[8] << 3) {
            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;
          }
          unaff_s1 = (Output_segment *)
                     &unaff_s1->output_lists_[0].
                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                      _M_impl._M_finish;
          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);
        } while ((Output_segment *)*pppOVar22 != unaff_s1);
      }
LAB_0021c04c:
      pppOVar22 = pppOVar22 + 3;
    } while (pppOVar23 != pppOVar22);
LAB_0021c058:
    uVar14 = (uint)((ulonglong)lVar30 >> 0x20) | (uint)lVar30;
LAB_0021c05c:
    uVar27 = CONCAT44(pppOVar22,unaff_s4);
    uVar16 = (int)&unaff_s0->number_of_input_files_ + *increase_relro;
    pTVar11 = (Target *)((int)&unaff_s2->_vptr_Output_data + (uint)(uVar16 < *increase_relro));
    this_00 = pTVar11;
    uVar10 = uVar16;
    if (uVar14 != 0) {
      lVar28 = lVar30 + -1 + CONCAT44(pTVar11,uVar16);
      uVar10 = (uint)lVar28 & -(int)lVar30;
      this_00 = (Target *)
                ((uint)((ulonglong)lVar28 >> 0x20) &
                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20));
      lVar30 = CONCAT44((int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11),
                        uVar10 - uVar16);
    }
    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);
    local_44 = (int)lVar30;
    iVar15 = *local_3c;
    *has_relro = true;
    iVar9 = *(int *)(iVar15 + 0xc);
    pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;
    if (iVar9 != 0) {
      iVar15 = *(int *)(iVar15 + 8);
      if (iVar15 != 0) {
        iVar26 = *(int *)(iVar15 + 0x5228);
        unaff_s6 = *(Layout **)(iVar15 + 0x522c);
        if (iVar26 == 0 && unaff_s6 == (Layout *)0x0) {
          iVar15 = *(int *)(iVar9 + 4);
          iVar26 = *(int *)(iVar15 + 0x20);
          unaff_s6 = *(Layout **)(iVar15 + 0x24);
        }
        uVar31 = (*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6);
        unaff_s2 = local_34;
        unaff_s0 = (Layout *)((int)unaff_s6 - (int)uVar31);
        unaff_s4 = (bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -
                           (uint)(unaff_s6 < unaff_s0));
        local_30 = local_38;
        uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6);
        iVar15 = local_30;
        if (CONCAT44(unaff_s4,unaff_s0) < uVar32) {
          unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);
          local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;
          uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);
          iVar15 = local_38;
        }
        pLVar4 = (Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2);
        pLVar21 = (Layout *)((int)pLVar4 - (int)uVar32);
        *(Layout **)((int)poff + 4) = pLVar21;
        pbVar7 = unaff_s4 +
                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +
                 iVar15;
        *(bool **)poff = pbVar7;
        puVar12 = (uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c));
        local_48 = local_48 +
                   (int)(pbVar7 + (uint)(puVar12 < local_40) +
                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -
                                  (int)local_50));
        local_50 = pbVar7;
        local_4c = pLVar21;
        local_40 = puVar12;
        goto LAB_0021b72c;
      }
      goto LAB_0021c37c;
    }
LAB_0021c324:
    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);
    local_44 = (int)lVar30;
    (*pcVar24)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,
               PTR_s_in_a_linker_script_004c191c + -0x2998);
    unaff_s1 = this;
    goto LAB_0021c33c;
  }
  unaff_s5 = (uint *)0x0;
  local_44 = 0;
LAB_0021b72c:
  if ((pOVar6 == (Output_data *)0x0) && (*(int *)&this->field_0x1a0 << 1 < 0)) {
LAB_0021ba3c:
    uVar27 = CONCAT44(unaff_s6,unaff_s4);
    if (*(code **)&this->paddr_ == local_48) {
      __position._M_current = (Output_data **)0x1131;
      pLVar21 = unaff_s0;
      unaff_s1 = this;
      if (*(uint **)((int)&this->paddr_ + 4) != local_40) goto LAB_0021c29c;
      local_48 = *(code **)&this->vaddr_;
      local_40 = *(uint **)((int)&this->vaddr_ + 4);
      goto LAB_0021b768;
    }
    goto LAB_0021c358;
  }
  bVar1 = this->field_0x1a0;
  *(code **)&this->vaddr_ = local_48;
  *(uint **)((int)&this->vaddr_ + 4) = local_40;
  *(code **)&this->paddr_ = local_48;
  *(uint **)((int)&this->paddr_ + 4) = local_40;
  this->field_0x1a0 = bVar1 & 0xbf | 0x40;
LAB_0021b768:
  uVar27 = CONCAT44(local_48,local_40);
  local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;
  unaff_s4 = &in_tls;
  ppOVar5 = (pointer)&foff;
  in_tls = false;
  *(bool **)&this->offset_ = local_50;
  *(Layout **)((int)&this->offset_ + 4) = local_4c;
  foff._0_4_ = *(Layout **)poff;
  foff._4_4_ = *(Output_data **)((int)poff + 4);
  pppOVar22 = (pointer *)0x0;
  pOVar18 = this;
  local_40 = unaff_s5;
  while( true ) {
    uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27,poff,ppOVar5,pshndx,unaff_s4);
    unaff_s2 = foff._4_4_;
    pLVar21 = foff._0_4_;
    if ((*(Layout **)poff != foff._0_4_) || (*(Output_data **)((int)poff + 4) != foff._4_4_)) {
      if (pppOVar22 == (pointer *)&DAT_00000011) goto LAB_0021b84c;
      if ((int)pppOVar22 < 0x1a) goto LAB_0021b834;
    }
    *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);
    *(uint *)&this->filesz_ =
         (int)foff._0_4_ +
         (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);
    pppOVar23 = pppOVar22;
    if (pppOVar22 == (pointer *)&DAT_0000001c) break;
    while( true ) {
      pppOVar22 = (pointer *)((int)pppOVar23 + 1);
      pOVar18 = (Output_segment *)(this->output_lists_ + (int)((int)pppOVar23 + 1));
      if (pppOVar22 != (pointer *)&DAT_00000014) break;
      uVar14 = (uint)*poff + local_44;
      pOVar17 = (Output_data *)((int)&(foff._4_4_)->_vptr_Output_data + local_44);
      ppOVar20 = this->output_lists_[0x14].
                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl
                 ._M_start;
      ppOVar19 = this->output_lists_[0x14].
                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl
                 ._M_finish;
      *(uint *)((int)poff + 4) = uVar14;
      foff._0_4_ = (Layout *)
                   ((int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +
                   (uint)(pOVar17 < foff._4_4_));
      *(uint *)poff = (int)local_40 + (uint)(uVar14 < (uint)*poff) + *(int *)poff;
      if (ppOVar20 == ppOVar19) {
        *increase_relro = local_44 + *increase_relro;
      }
      foff._4_4_ = pOVar17;
      uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27 + CONCAT44(local_40,local_44),poff,
                           ppOVar5,pshndx,unaff_s4);
      if ((foff._0_4_ != *(Layout **)poff) || (foff._4_4_ != *(Output_data **)((int)poff + 4))) {
LAB_0021b834:
        pLVar21 = layout;
        unaff_s1 = this;
        unaff_s2 = pOVar6;
        unaff_s5 = pshndx;
        if ((layout->script_options_->script_sections_).saw_sections_clause_ == false)
        goto LAB_0021c298;
      }
LAB_0021b84c:
      *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);
      *(uint *)&this->filesz_ =
           (int)foff._0_4_ +
           (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);
      pppOVar23 = pppOVar22;
    }
  }
  if (in_tls == false) {
    uVar14 = *(uint *)poff;
    uVar10 = (uint)*poff;
  }
  else {
    uVar29 = maximum_alignment(layout->tls_segment_);
    uVar14 = *(uint *)poff;
    uVar10 = (uint)*poff;
    if (uVar29 != 0) {
      lVar30 = uVar29 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1);
      uVar10 = (uint)lVar30 & -(int)uVar29;
      uVar14 = (uint)((ulonglong)lVar30 >> 0x20) &
               -(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20);
    }
  }
  pTVar25 = target->pti_;
  *(uint *)((int)&this->memsz_ + 4) = uVar10 - (int)local_4c;
  bVar8 = pTVar25->isolate_execinstr;
  this_00 = (Target *)((uVar14 - (int)local_50) - (uint)(uVar10 < uVar10 - (int)local_4c));
  *(Target **)&this->memsz_ = this_00;
  *(Layout **)poff = pLVar21;
  *(Output_data **)((int)poff + 4) = unaff_s2;
  if (bVar8 == false) {
    return uVar27;
  }
  if ((this->flags_ & 1) == 0) {
    return uVar27;
  }
  iVar15 = *(int *)(*local_3c + 8);
  if (iVar15 != 0) {
    local_48 = *(code **)(iVar15 + 0x5228);
    unaff_s5 = *(uint **)(iVar15 + 0x522c);
    if (local_48 == (code *)0x0 && unaff_s5 == (uint *)0x0) {
      local_48 = *(code **)&pTVar25->abi_pagesize;
      unaff_s5 = *(uint **)((int)&pTVar25->abi_pagesize + 4);
    }
    pcVar24 = local_48;
    lVar30 = (*(code *)PTR___umoddi3_004c2428)(local_50,local_4c,local_48,unaff_s5);
    if (lVar30 != 0) {
      return uVar27;
    }
    lVar30 = (*(code *)PTR___umoddi3_004c2428)(pLVar21,unaff_s2,pcVar24,unaff_s5);
    if (lVar30 == 0) {
      return uVar27;
    }
    fill_data._M_dataplus._M_p = (pointer)&fill_data.field_2;
    local_50 = (bool *)((int)unaff_s5 - (int)lVar30);
    fill_data._M_string_length = 0;
    fill_data.field_2._M_local_buf[0] = '\0';
    local_4c = (Layout *)fill_data._M_dataplus._M_p;
    if (pTVar25->has_code_fill == false) {
                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */
      (*(code *)PTR_resize_004c22c8)(&fill_data,local_50,0);
    }
    else {
                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */
      (*target->_vptr_Target[6])(local_90,target);
      (*(code *)PTR_operator__004c3fbc)(&fill_data,local_90);
      if (local_90[0] != auStack_88) {
        (*(code *)PTR_operator_delete_004c12fc)();
      }
    }
    pOVar6 = (Output_data *)(*(code *)PTR_operator_new_004c13a8)(0x48);
    *(undefined4 *)&pOVar6->field_0x24 = 0;
    pOVar6->field_0x20 = pOVar6->field_0x20 & 7 | 0x50;
    *(size_type *)((int)&pOVar6->data_size_ + 4) = fill_data._M_string_length;
    *(undefined4 *)&pOVar6->address_ = 0;
    pOVar6[1]._vptr_Output_data = (_func_int_varargs **)0x0;
    puVar3 = PTR_vtable_004c2344;
    puVar13 = PTR__M_construct<char*>_004c2098;
    *(undefined4 *)&pOVar6->data_size_ = 0;
    *(undefined4 *)((int)&pOVar6->offset_ + 4) = 0xffffffff;
    *(undefined4 *)&pOVar6->offset_ = 0xffffffff;
    *(undefined4 *)((int)&pOVar6->address_ + 4) = 0;
    *(undefined4 *)&pOVar6[1].field_0x4 = 0;
    pOVar6->_vptr_Output_data = (_func_int_varargs **)(puVar3 + 8);
                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */
    *(off_t **)&pOVar6[1].address_ = &pOVar6[1].data_size_;
    (*(code *)puVar13)(&pOVar6[1].address_,fill_data._M_dataplus._M_p,
                       fill_data._M_dataplus._M_p + fill_data._M_string_length,0);
    uVar14 = (uint)this->vaddr_;
    uVar10 = uVar14 + (int)this->memsz_;
    if (*(int *)&pOVar6->field_0x20 < 0) {
                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */
      this_00 = (Target *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (this_00,0x142,PTR_s_in_a_linker_script_004c191c + -0x2d50);
      goto LAB_0021c37c;
    }
    bVar1 = pOVar6->field_0x20;
    *(uint *)&pOVar6->address_ =
         (uint)(uVar10 < uVar14) + *(int *)&this->vaddr_ + *(int *)&this->memsz_;
    *(uint *)((int)&pOVar6->address_ + 4) = uVar10;
    pOVar6->field_0x20 = bVar1 & 0x7f | 0x80;
    unaff_s1 = this;
    ppOVar5 = (pointer)poff;
    if (*(int *)&pOVar6->field_0x20 << 2 < 0) {
LAB_0021c2ec:
                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,
                 PTR_s_in_a_linker_script_004c191c + -0x2d60);
LAB_0021c308:
      pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,
                 PTR_s_in_a_linker_script_004c191c + -0x2d74);
      lVar30 = CONCAT44(unaff_s5,local_44);
      unaff_s0 = pLVar21;
      this = unaff_s1;
      poff = (off_t *)ppOVar5;
      goto LAB_0021c324;
    }
    *(Layout **)&pOVar6->offset_ = pLVar21;
    *(Output_data **)((int)&pOVar6->offset_ + 4) = unaff_s2;
    pOVar6->field_0x20 = bVar1 & 0x5f | 0xa0;
    __position._M_current =
         (layout->relax_output_list_).
         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
         _M_finish;
    local_58 = pOVar6;
    if (__position._M_current ==
        (layout->relax_output_list_).
        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
        _M_end_of_storage) goto LAB_0021c2b4;
    *__position._M_current = pOVar6;
    (layout->relax_output_list_).
    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish =
         __position._M_current + 1;
    goto LAB_0021be94;
  }
LAB_0021c37c:
  Target::abi_pagesize(this_00);
LAB_0021c388:
                    /* try { // try from 0021c39c to 0021c3db has its CatchHandler @ 0021c3dc */
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,
             PTR_s_in_a_linker_script_004c191c + -0x3260);
  goto LAB_0021c3a4;
LAB_0021c298:
  uVar27 = CONCAT44(pppOVar22,unaff_s4);
  __position._M_current = (Output_data **)0x115d;
  poff = (off_t *)ppOVar5;
LAB_0021c29c:
  this = unaff_s1;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_in_a_linker_script_004c191c + -0x48b4,__position._M_current,
             PTR_s_in_a_linker_script_004c191c + -0x3260);
LAB_0021c2b4:
                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */
  std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::
  _M_realloc_insert<gold::Output_data*_const&>(&layout->relax_output_list_,__position,&local_58);
LAB_0021be94:
  pOVar17 = (Output_data *)((int)&unaff_s2->_vptr_Output_data + (int)local_50);
  pOVar6 = (Output_data *)((int)&pLVar21->number_of_input_files_ + (uint)(pOVar17 < unaff_s2));
  lVar30 = (*(code *)PTR___umoddi3_004c2428)(pOVar6,pOVar17,local_48,unaff_s5);
  if (lVar30 != 0) goto LAB_0021c3c0;
  uVar27 = uVar27 + ZEXT48(local_50);
  lVar30 = (*(code *)PTR___umoddi3_004c2428)((int)(uVar27 >> 0x20),(int)uVar27,local_48,unaff_s5);
  if (lVar30 == 0) {
    iVar15 = *(int *)&this->memsz_;
    if ((iVar15 == *(int *)&this->filesz_) &&
       (iVar9 = (int)this->memsz_, iVar9 == (int)this->filesz_)) {
      pbVar7 = local_50 + iVar9;
      *(bool **)((int)&this->filesz_ + 4) = pbVar7;
      iVar15 = iVar15 + (uint)(pbVar7 < local_50);
      *(bool **)((int)&this->memsz_ + 4) = pbVar7;
      *(int *)&this->filesz_ = iVar15;
      *(int *)&this->memsz_ = iVar15;
      *(Output_data **)poff = pOVar6;
      *(Output_data **)((int)poff + 4) = pOVar17;
      if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {
        (*(code *)PTR_operator_delete_004c12fc)();
      }
      return uVar27;
    }
    goto LAB_0021c388;
  }
LAB_0021c3a4:
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,
             PTR_s_in_a_linker_script_004c191c + -0x3260);
LAB_0021c3c0:
  puVar13 = PTR_s_in_a_linker_script_004c191c + -0x48b4;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (puVar13,0x118c,PTR_s_in_a_linker_script_004c191c + -0x3260);
                    /* catch() { ... } // from try @ 0021bd48 with catch @ 0021c3dc
                       catch() { ... } // from try @ 0021c270 with catch @ 0021c3dc
                       catch() { ... } // from try @ 0021c2c0 with catch @ 0021c3dc
                       catch() { ... } // from try @ 0021c300 with catch @ 0021c3dc
                       catch() { ... } // from try @ 0021c374 with catch @ 0021c3dc
                       catch() { ... } // from try @ 0021c39c with catch @ 0021c3dc */
  if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  uVar27 = (*(code *)PTR__Unwind_Resume_004c12c8)(puVar13);
  return uVar27;
}



/* WARNING: Removing unreachable block (ram,0x0021c208) */
/* WARNING: Type propagation algorithm not settling */
/* gold::Output_segment::set_section_addresses(gold::Target const*, gold::Layout*, bool, unsigned
   long long, unsigned int*, bool*, long long*, unsigned int*) */

undefined4
gold::Output_segment::set_section_addresses
          (Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,
          bool *param_6,longlong *param_7,uint *param_8)

{
  char cVar1;
  byte bVar2;
  longlong lVar3;
  undefined *puVar4;
  undefined *puVar5;
  code *pcVar6;
  undefined4 *puVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 *puVar14;
  undefined1 *puVar15;
  undefined3 in_register_00000018;
  Target *pTVar16;
  int iVar17;
  int iVar18;
  undefined1 *puVar19;
  int *piVar20;
  undefined1 *puVar21;
  int iVar22;
  undefined1 *puVar23;
  uint uVar24;
  longlong lVar25;
  longlong lVar26;
  undefined8 uVar27;
  ulonglong uVar28;
  undefined4 in_stack_00000024;
  undefined1 *local_90 [2];
  undefined1 auStack_88 [16];
  undefined1 *local_78;
  int local_74;
  undefined1 local_70 [16];
  undefined1 *local_60;
  uint local_5c;
  undefined4 *local_58;
  char local_54 [4];
  uint local_50;
  undefined1 *local_4c;
  code *local_48;
  int local_44;
  undefined1 *local_40;
  int *local_3c;
  uint local_38;
  undefined1 *local_34;
  uint local_30;
  
  iVar8 = CONCAT31(in_register_00000018,param_3);
  local_40 = param_4._4_4_;
  local_48 = param_4._0_4_;
  uVar11 = 0x10e4;
  if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;
  local_50 = *param_8;
  local_54[0] = '\0';
  local_3c = (int *)PTR_parameters_004c19b4;
  local_4c = (undefined1 *)param_8[1];
  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {
    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,
                        PTR_s_in_a_linker_script_004c191c + -0x29c4);
    return uVar11;
  }
  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||
     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {
    puVar21 = (undefined1 *)0x0;
    local_44 = 0;
LAB_0021b72c:
    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {
LAB_0021ba3c:
      if (*(code **)(param_1 + 0x168) != local_48) {
        uVar11 = 0x1131;
LAB_0021c29c:
        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,
                            PTR_s_in_a_linker_script_004c191c + -0x3260);
        return uVar11;
      }
      uVar11 = 0x1131;
      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;
      local_48 = *(code **)(param_1 + 0x160);
      local_40 = *(undefined1 **)(param_1 + 0x164);
    }
    else {
      *(code **)(param_1 + 0x160) = local_48;
      *(undefined1 **)(param_1 + 0x164) = local_40;
      *(code **)(param_1 + 0x168) = local_48;
      *(undefined1 **)(param_1 + 0x16c) = local_40;
      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);
    }
    lVar25 = CONCAT44(local_48,local_40);
    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;
    local_54[0] = '\0';
    *(uint *)(param_1 + 0x188) = local_50;
    *(undefined1 **)(param_1 + 0x18c) = local_4c;
    local_60 = (undefined1 *)*param_8;
    local_5c = param_8[1];
    iVar22 = 0;
    pTVar16 = param_1;
    local_40 = puVar21;
    while( true ) {
      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,
                           local_54);
      uVar12 = local_5c;
      puVar21 = local_60;
      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);
      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {
        if (iVar22 == 0x11) goto LAB_0021b84c;
        if (iVar22 < 0x1a) goto LAB_0021b834;
      }
      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;
      *(undefined1 **)(param_1 + 400) =
           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);
      if (iVar22 == 0x1c) break;
      while( true ) {
        iVar22 = iVar22 + 1;
        pTVar16 = param_1 + iVar22 * 0xc;
        if (iVar22 != 0x14) break;
        uVar24 = param_8[1];
        uVar12 = uVar24 + local_44;
        iVar18 = *(int *)(param_1 + 0xf0);
        iVar17 = *(int *)(param_1 + 0xf4);
        param_8[1] = uVar12;
        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);
        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);
        if (iVar18 == iVar17) {
          *(int *)param_6 = *(int *)param_6 + local_44;
        }
        local_5c = local_5c + local_44;
        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),
                             param_8,&local_60,in_stack_00000024,local_54);
        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {
LAB_0021b834:
          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {
            uVar11 = 0x115d;
            goto LAB_0021c29c;
          }
        }
LAB_0021b84c:
        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;
        *(undefined1 **)(param_1 + 400) =
             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);
      }
    }
    if (local_54[0] == '\0') {
      uVar24 = *param_8;
      uVar13 = param_8[1];
    }
    else {
      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));
      uVar24 = *param_8;
      uVar13 = param_8[1];
      if (lVar26 != 0) {
        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);
        uVar13 = (uint)lVar3 & -(int)lVar26;
        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &
                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);
      }
    }
    iVar22 = *(int *)(param_2 + 4);
    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;
    cVar1 = *(char *)(iVar22 + 0x30);
    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);
    *param_8 = (uint)puVar21;
    param_8[1] = uVar12;
    if (cVar1 == '\0') {
      return uVar11;
    }
    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {
      return uVar11;
    }
    iVar17 = *(int *)(*local_3c + 8);
    if (iVar17 != 0) {
      local_48 = *(code **)(iVar17 + 0x5228);
      iVar17 = *(int *)(iVar17 + 0x522c);
      if (local_48 == (code *)0x0 && iVar17 == 0) {
        local_48 = *(code **)(iVar22 + 0x20);
        iVar17 = *(int *)(iVar22 + 0x24);
      }
      pcVar6 = local_48;
      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);
      if (lVar26 != 0) {
        return uVar11;
      }
      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);
      if (lVar26 == 0) {
        return uVar11;
      }
      local_78 = local_70;
      local_50 = iVar17 - (int)lVar26;
      local_74 = 0;
      local_70[0] = 0;
      local_4c = local_78;
      if (*(char *)(iVar22 + 0xe) == '\0') {
                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */
        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);
      }
      else {
                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */
        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);
        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);
        if (local_90[0] != auStack_88) {
          (*(code *)PTR_operator_delete_004c12fc)();
        }
      }
      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);
      puVar7[9] = 0;
      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;
      puVar7[5] = local_74;
      puVar7[2] = 0;
      puVar7[10] = 0;
      puVar5 = PTR_vtable_004c2344;
      puVar4 = PTR__M_construct<char*>_004c2098;
      puVar7[4] = 0;
      puVar7[7] = 0xffffffff;
      puVar7[6] = 0xffffffff;
      puVar7[3] = 0;
      puVar7[0xb] = 0;
      *puVar7 = puVar5 + 8;
                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */
      puVar7[0xc] = puVar7 + 0xe;
      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);
      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);
      if ((int)puVar7[8] < 0) {
                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */
        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,
                            PTR_s_in_a_linker_script_004c191c + -0x2d50);
        return uVar11;
      }
      bVar2 = *(byte *)(puVar7 + 8);
      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +
                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);
      puVar7[3] = uVar24;
      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;
      if ((int)(puVar7[8] << 2) < 0) {
                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */
        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,
                            PTR_s_in_a_linker_script_004c191c + -0x2d60);
        return uVar11;
      }
      puVar7[6] = puVar21;
      puVar7[7] = uVar12;
      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;
      puVar14 = *(undefined4 **)(iVar8 + 0x164);
      local_58 = puVar7;
      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {
                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */
        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::
        _M_realloc_insert<gold::Output_data*const&>
                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),
                   puVar14,&local_58);
      }
      else {
        *puVar14 = puVar7;
        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;
      }
      uVar24 = uVar12 + local_50;
      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);
      if (lVar26 != 0) {
        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,
                            PTR_s_in_a_linker_script_004c191c + -0x3260);
        return uVar11;
      }
      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);
      lVar25 = (*(code *)PTR_FUN_004c2428)
                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);
      if (lVar25 != 0) {
        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,
                            PTR_s_in_a_linker_script_004c191c + -0x3260);
        return uVar11;
      }
      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&
         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {
        uVar13 = local_50 + *(int *)(param_1 + 0x174);
        *(uint *)(param_1 + 0x194) = uVar13;
        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);
        *(uint *)(param_1 + 0x174) = uVar13;
        *(int *)(param_1 + 400) = iVar8;
        *(int *)(param_1 + 0x170) = iVar8;
        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));
        param_8[1] = uVar24;
        if (local_78 == local_4c) {
          return uVar11;
        }
        (*(code *)PTR_operator_delete_004c12fc)();
        return uVar11;
      }
      goto LAB_0021c388;
    }
  }
  else {
    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&
       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {
      local_44 = 0;
      goto LAB_0021ba3c;
    }
    local_38 = *param_8;
    pTVar16 = param_1 + 4;
    lVar25 = 0;
    uVar24 = 0;
    local_34 = (undefined1 *)param_8[1];
    uVar12 = 0;
LAB_0021bac4:
    do {
      puVar7 = *(undefined4 **)(pTVar16 + -4);
      if (puVar7 != *(undefined4 **)pTVar16) {
        do {
          while( true ) {
            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);
            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);
            if (iVar22 == 0) {
              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;
              pTVar16 = pTVar16 + 0xc;
              uVar13 = uVar13 | (uint)lVar25;
              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;
              goto LAB_0021c05c;
            }
            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);
            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);
            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {
              lVar25 = lVar26;
            }
            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();
            if (iVar22 == 0) {
              if (local_54[0] != '\0') {
                local_54[0] = '\0';
                lVar26 = lVar25;
              }
            }
            else {
              local_54[0] = '\x01';
            }
            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();
            if ((iVar22 == 0) ||
               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))
            break;
LAB_0021bb94:
            puVar7 = puVar7 + 1;
            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;
          }
          uVar13 = uVar12;
          if (lVar26 != 0) {
            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);
            uVar13 = (uint)lVar3 & -(int)lVar26;
            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &
                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);
          }
          piVar20 = (int *)*puVar7;
          if (piVar20[8] < 0) {
            if (-1 < piVar20[8] << 1) {
LAB_0021c280:
              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,
                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);
              return uVar11;
            }
            uVar12 = uVar13 + piVar20[5];
            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];
            goto LAB_0021bb94;
          }
          bVar2 = *(byte *)(piVar20 + 8);
          piVar20[2] = uVar24;
          piVar20[3] = uVar13;
          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;
          if (piVar20[8] << 2 < 0) {
            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,
                                PTR_s_in_a_linker_script_004c191c + -0x2d60);
            return uVar11;
          }
          iVar22 = *piVar20;
          piVar20[6] = uVar24;
          piVar20[7] = uVar13;
          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;
          if (-1 < piVar20[8] << 1) {
            (**(code **)(iVar22 + 0x38))(piVar20);
            if (-1 < piVar20[8] << 1) {
              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,
                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);
              return uVar11;
            }
            piVar20 = (int *)*puVar7;
            if (-1 < piVar20[8] << 1) goto LAB_0021c280;
            iVar22 = *piVar20;
          }
          bVar2 = *(byte *)(piVar20 + 8);
          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;
          uVar12 = uVar13 + piVar20[5];
          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];
          if (-1 < piVar20[8] << 3) {
            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;
          }
          puVar7 = puVar7 + 1;
          (**(code **)(iVar22 + 0x3c))(piVar20);
        } while (*(undefined4 **)pTVar16 != puVar7);
      }
LAB_0021c04c:
      pTVar16 = pTVar16 + 0xc;
    } while (param_1 + 0x100 != pTVar16);
LAB_0021c058:
    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;
LAB_0021c05c:
    uVar12 = *(uint *)param_6 + uVar12;
    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;
    uVar9 = uVar24;
    uVar10 = uVar12;
    if (uVar13 != 0) {
      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);
      uVar10 = (uint)lVar26 & -(int)lVar25;
      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &
              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);
      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);
    }
    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);
    local_44 = (int)lVar25;
    iVar22 = *local_3c;
    *(undefined1 *)param_7 = 1;
    iVar17 = *(int *)(iVar22 + 0xc);
    if (iVar17 == 0) {
      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,
                          PTR_s_in_a_linker_script_004c191c + -0x2998);
      return uVar11;
    }
    iVar22 = *(int *)(iVar22 + 8);
    if (iVar22 != 0) {
      iVar18 = *(int *)(iVar22 + 0x5228);
      puVar23 = *(undefined1 **)(iVar22 + 0x522c);
      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {
        iVar22 = *(int *)(iVar17 + 4);
        iVar18 = *(int *)(iVar22 + 0x20);
        puVar23 = *(undefined1 **)(iVar22 + 0x24);
      }
      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);
      puVar15 = local_34;
      puVar19 = puVar23 + -(int)uVar27;
      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);
      local_30 = local_38;
      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);
      uVar12 = local_30;
      if (CONCAT44(iVar22,puVar19) < uVar28) {
        puVar15 = puVar23 + (int)local_34;
        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;
        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);
        uVar12 = local_38;
      }
      puVar15 = puVar19 + (int)puVar15;
      puVar23 = puVar15 + -(int)uVar28;
      param_8[1] = (uint)puVar23;
      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -
               (uint)(puVar15 < puVar23);
      puVar15 = puVar23 + -(int)local_4c;
      *param_8 = uVar12;
      local_48 = local_48 +
                 (uint)(local_40 + (int)puVar15 < local_40) +
                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));
      local_50 = uVar12;
      local_4c = puVar23;
      local_40 = local_40 + (int)puVar15;
      goto LAB_0021b72c;
    }
  }
  FUN_00212c40();
LAB_0021c388:
                    /* try { // try from 0021c39c to 0021c3db has its CatchHandler @ 0021c3dc */
  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,
                      PTR_s_in_a_linker_script_004c191c + -0x3260);
  return uVar11;
}


lui gp,0x2b
addiu gp,gp,-0x2444
addu gp,gp,t9
addiu sp,sp,-0xc0
lw v1,0xd4(sp)
lw v0,0xd0(sp)
sw gp,0x28(sp)
sw v1,0x80(sp)
sw v0,0x78(sp)
li v0,0x1
sw s3,0xa4(sp)
sw a1,0xc4(sp)
li a1,0x10e4
sw ra,0xbc(sp)
sw s8,0xb8(sp)
sw s7,0xb4(sp)
sw s6,0xb0(sp)
sw s5,0xac(sp)
sw s4,0xa8(sp)
sw s2,0xa0(sp)
sw s1,0x9c(sp)
sw s0,0x98(sp)
sw a2,0xc8(sp)
lw v1,0x198(a0)
lw s3,0xe0(sp)
bne v1,v0,0x0021c29c
_sw a3,0xcc(sp)
lw v0,-0x788c(gp)
lw v1,0x0(s3)
sb zero,0x6c(sp)
sw v0,0x84(sp)
sw v1,0x70(sp)
lw v0,0x0(v0)
lw v1,0x4(s3)
lw v0,0x8(v0)
beq v0,zero,0x0021c33c
_sw v1,0x74(sp)
lbu v0,0x56c9(v0)
bne v0,zero,0x0021ba64
_or s1,a0,zero
or s5,zero,zero
sw zero,0x7c(sp)
lw v0,0xcc(sp)
beq v0,zero,0x0021ba2c
_nop
lbu v0,0x1a0(s1)
li v1,0x1
lw a0,0x78(sp)
lw a1,0x80(sp)
ins v0,v1,0x6,0x1
sw a0,0x160(s1)
or s6,a0,zero
sw a1,0x164(s1)
or s4,a1,zero
sw a0,0x168(s1)
sw a1,0x16c(s1)
sb v0,0x1a0(s1)
lw v0,-0x528c(gp)
or s8,zero,zero
addiu a0,sp,0x6c
lw s0,0xc8(sp)
addiu a1,sp,0x60
lw s2,0xcc(sp)
sw v0,0x78(sp)
li s7,0x14
lw v0,0x70(sp)
sw s5,0x80(sp)
sb zero,0x6c(sp)
sw v0,0x188(s1)
lw v0,0x74(sp)
lw s5,0xe4(sp)
sw v0,0x18c(s1)
lw v0,0x0(s3)
lw v1,0x4(s3)
sw v0,0x60(sp)
or v0,s6,zero
or s6,s8,zero
sw v1,0x64(sp)
sll a3,s6,0x1
or s8,s3,zero
addu a3,a3,s6
or v1,s4,zero
sll a3,a3,0x2
or s3,a1,zero
or s4,a0,zero
beq s6,s7,0x0021b87c
_addu a3,s1,a3
lw t9,0x78(sp)
or a2,s2,zero
or a1,s0,zero
sw v0,0x10(sp)
or a0,s1,zero
sw v1,0x14(sp)
sw s4,0x24(sp)
sw s5,0x20(sp)
sw s3,0x1c(sp)
jalr t9
_sw s8,0x18(sp)
lw a0,0x60(sp)
lw a2,0x0(s8)
lw gp,0x28(sp)
beq a2,a0,0x0021b934
_lw a1,0x64(sp)
li a2,0x11
beq s6,a2,0x0021b844
_slti a2,s6,0x1a
beq a2,zero,0x0021b944
_lw a2,0x74(sp)
lw a2,0x4(s0)
lbu a2,0xac(a2)
beq a2,zero,0x0021c298
_nop
lw a2,0x74(sp)
lw a3,0x70(sp)
subu a2,a1,a2
subu a0,a0,a3
sltu a1,a1,a2
sw a2,0x194(s1)
subu a0,a0,a1
sw a0,0x190(s1)
addiu s6,s6,0x1
sll a3,s6,0x1
addu a3,a3,s6
sll a3,a3,0x2
bne s6,s7,0x0021b7e0
_addu a3,s1,a3
lw t8,0x4(s8)
lw a0,0x7c(sp)
lw t7,0x64(sp)
lw t0,0x80(sp)
lw t6,0x0(s8)
addu a1,t8,a0
lw a2,0x60(sp)
addu t3,v1,a0
addu a0,t7,a0
lw t5,0xf0(s1)
addu t6,t6,t0
lw t4,0xf4(s1)
addu a2,a2,t0
sw a1,0x4(s8)
sw a0,0x64(sp)
sltu a1,a1,t8
sltu a0,a0,t7
addu v0,v0,t0
addu a1,a1,t6
addu a0,a0,a2
sltu v1,t3,v1
sw a1,0x0(s8)
addu v0,v1,v0
beq t5,t4,0x0021ba10
_sw a0,0x60(sp)
lw t9,0x78(sp)
or a2,s2,zero
or a1,s0,zero
sw s4,0x24(sp)
or a0,s1,zero
sw s5,0x20(sp)
sw s3,0x1c(sp)
sw s8,0x18(sp)
sw v0,0x10(sp)
jalr t9
_sw t3,0x14(sp)
lw a2,0x0(s8)
lw a0,0x60(sp)
lw gp,0x28(sp)
lw a3,0x4(s8)
bne a0,a2,0x0021b834
_lw a1,0x64(sp)
bne a1,a3,0x0021b834
_lw a2,0x74(sp)
b 0x0021b84c
_lw a3,0x70(sp)
lw a2,0x4(s8)
bne a2,a1,0x0021b824
_li a2,0x11
lw a2,0x74(sp)
subu a3,a1,a2
lw a2,0x70(sp)
sltu t3,a1,a3
sw a3,0x194(s1)
subu a2,a0,a2
subu a2,a2,t3
sw a2,0x190(s1)
li a2,0x1c
bne s6,a2,0x0021b868
_addiu s6,s6,0x1
or s6,v0,zero
lbu v0,0x6c(sp)
or s3,s8,zero
or s0,a0,zero
or s2,a1,zero
bne v0,zero,0x0021bc30
_or s4,v1,zero
lw a0,0x0(s8)
lw a1,0x4(s8)
lw v0,0xc4(sp)
lw v1,0x70(sp)
lw s8,0x4(v0)
subu a0,a0,v1
lw v0,0x74(sp)
subu v0,a1,v0
sw v0,0x174(s1)
sltu a1,a1,v0
lbu v0,0x30(s8)
subu a0,a0,a1
sw a0,0x170(s1)
sw s0,0x0(s3)
beq v0,zero,0x0021b9d8
_sw s2,0x4(s3)
lw v0,0x19c(s1)
andi v0,v0,0x1
bne v0,zero,0x0021bc90
_lw v0,0x84(sp)
lw ra,0xbc(sp)
or v0,s6,zero
or v1,s4,zero
lw s8,0xb8(sp)
lw s7,0xb4(sp)
lw s6,0xb0(sp)
lw s5,0xac(sp)
lw s4,0xa8(sp)
lw s3,0xa4(sp)
lw s2,0xa0(sp)
lw s1,0x9c(sp)
lw s0,0x98(sp)
jr ra
_addiu sp,sp,0xc0
lw v1,0xd8(sp)
lw a0,0x7c(sp)
lw v1,0x0(v1)
addu v1,v1,a0
lw a0,0xd8(sp)
b 0x0021b8e0
_sw v1,0x0(a0)
lw v0,0x1a0(s1)
ext v0,v0,0x1e,0x1
beq v0,zero,0x0021b738
_nop
lw v0,0x168(s1)
lw v1,0x78(sp)
bne v0,v1,0x0021c358
_lw v1,0x80(sp)
lw v0,0x16c(s1)
bne v0,v1,0x0021c29c
_li a1,0x1131
lw s6,0x160(s1)
b 0x0021b768
_lw s4,0x164(s1)
lw t9,-0x5288(gp)
bal 0x00216ed0
_nop
beq v0,zero,0x0021b724
_lw gp,0x28(sp)
lw v0,0x1a0(s1)
ext v0,v0,0x1e,0x1
beq v0,zero,0x0021ba90
_lw v0,0xcc(sp)
beq v0,zero,0x0021c25c
_or s5,zero,zero
lw v0,0x0(s3)
addiu s6,s1,0x4
or s5,zero,zero
sw s1,0xc0(sp)
or s7,zero,zero
sw s3,0xe0(sp)
sw v0,0x88(sp)
or s2,zero,zero
lw v0,0x4(s3)
or s0,zero,zero
sw v0,0x8c(sp)
addiu v0,s1,0x100
or s8,v0,zero
lw t0,-0x4(s6)
lw v0,0x0(s6)
beq t0,v0,0x0021c04c
_nop
b 0x0021bba4
_or s1,t0,zero
sb v0,0x6c(sp)
lw a0,0x0(s1)
li a3,0x400
lw v0,0x0(a0)
lw t9,0x20(v0)
jalr t9
_or a2,zero,zero
beq v0,zero,0x0021bb20
_lw gp,0x28(sp)
lw v0,0x0(s1)
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x1c(v0)
jalr t9
_li a1,0x8
bne v0,zero,0x0021bb94
_lw gp,0x28(sp)
or v0,s3,s4
beq v0,zero,0x0021bb60
_addiu v0,s0,-0x1
addiu s2,s2,-0x1
sltu v1,v0,s0
addu s2,v1,s2
addu s0,v0,s4
subu s4,zero,s4
addu v1,s2,s3
subu s3,zero,s3
sltu s2,s0,v0
sltu v0,zero,s4
addu s2,s2,v1
subu s3,s3,v0
and s0,s0,s4
and s2,s2,s3
lw s3,0x0(s1)
lw v0,0x20(s3)
bgez v0,0x0021bf74
_ext v0,v0,0x1e,0x1
beq v0,zero,0x0021c280
_lw a2,-0x7924(gp)
lw v0,0x14(s3)
lw s3,0x10(s3)
addu v0,s0,v0
addu s3,s2,s3
sltu s0,v0,s0
addu s2,s0,s3
or s0,v0,zero
lw v0,0x0(s6)
addiu s1,s1,0x4
beq v0,s1,0x0021c04c
_nop
lw v0,0x0(s1)
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x18(v0)
jalr t9
_nop
beq v0,zero,0x0021c1e8
_lw gp,0x28(sp)
lw v0,0x0(s1)
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0xc(v0)
jalr t9
_nop
or s3,v0,zero
sltu v0,s5,s3
bne v0,zero,0x0021bf68
_or s4,v1,zero
beq s3,s5,0x0021bf60
_sltu v0,s7,v1
lw a0,0x0(s1)
li a3,0x400
lw v0,0x0(a0)
lw t9,0x20(v0)
jalr t9
_or a2,zero,zero
bne v0,zero,0x0021badc
_li v0,0x1
lbu v0,0x6c(sp)
beq v0,zero,0x0021bae0
_nop
sb zero,0x6c(sp)
or s3,s5,zero
b 0x0021bae0
_or s4,s7,zero
lw v0,0xc8(sp)
lw t9,-0x6ea8(gp)
bal 0x00216f60
_lw a0,0x170(v0)
or a2,v0,v1
lw gp,0x28(sp)
lw a0,0x0(s8)
beq a2,zero,0x0021b990
_lw a1,0x4(s8)
addiu a2,a1,-0x1
addiu a0,a0,-0x1
sltu a1,a2,a1
addu a0,a1,a0
addu a1,a2,v1
subu v1,zero,v1
addu a0,a0,v0
subu v0,zero,v0
sltu a2,a1,a2
sltu a3,zero,v1
addu a2,a2,a0
subu a0,v0,a3
and a1,a1,v1
b 0x0021b990
_and a0,a2,a0
lw v0,0x0(v0)
lw v0,0x8(v0)
beq v0,zero,0x0021c37c
_lw t9,-0x533c(gp)
lw v1,0x5228(v0)
lw s5,0x522c(v0)
or v0,v1,s5
bne v0,zero,0x0021bcc0
_sw v1,0x78(sp)
lw v0,0x20(s8)
lw s5,0x24(s8)
sw v0,0x78(sp)
lw s7,0x78(sp)
or a3,s5,zero
lw t9,-0x6e18(gp)
lw a0,0x70(sp)
lw a1,0x74(sp)
jalr t9
_or a2,s7,zero
or v0,v0,v1
bne v0,zero,0x0021b9d8
_lw gp,0x28(sp)
lw t9,-0x6e18(gp)
or a2,s7,zero
or a3,s5,zero
or a0,s0,zero
jalr t9
_or a1,s2,zero
or v0,v1,v0
beq v0,zero,0x0021b9d8
_lw gp,0x28(sp)
lbu v0,0xe(s8)
addiu a0,sp,0x50
subu a2,s5,v1
sw zero,0x4c(sp)
sw a0,0x74(sp)
addiu s8,sp,0x48
sw a2,0x70(sp)
sw a0,0x48(sp)
beq v0,zero,0x0021c264
_sb zero,0x50(sp)
lw v0,0xc4(sp)
addiu s7,sp,0x30
lw a1,0xc4(sp)
lw v0,0x0(v0)
lw t9,0x18(v0)
jalr t9
_or a0,s7,zero
lw gp,0x28(sp)
or a0,s8,zero
lw t9,-0x5284(gp)
jalr t9
_or a1,s7,zero
addiu v0,sp,0x38
lw a0,0x30(sp)
beq a0,v0,0x0021bd84
_lw gp,0x28(sp)
lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x28(sp)
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x48
or s8,v0,zero
lbu v0,0x20(v0)
lw gp,0x28(sp)
or a3,zero,zero
lw v1,0x4c(sp)
addiu t0,s8,0x38
andi v0,v0,0x7
lw a1,0x48(sp)
ori v0,v0,0x50
sw zero,0x24(s8)
sb v0,0x20(s8)
or v0,zero,zero
addu a2,a1,v1
sw v1,0x14(s8)
sw v0,0x8(s8)
or v1,zero,zero
sw v0,0x28(s8)
li t3,-0x1
lw v0,-0x6efc(gp)
li t2,-0x1
lw t9,-0x71a8(gp)
sll a3,a3,0x18
addiu a0,s8,0x30
sw zero,0x10(s8)
addiu v0,v0,0x8
sw t3,0x1c(s8)
sw t2,0x18(s8)
sw v1,0xc(s8)
sw v1,0x2c(s8)
sw v0,0x0(s8)
jalr t9
_sw t0,0x30(s8)
lw v0,0x164(s1)
lw a0,0x174(s1)
lw v1,0x160(s1)
lw a2,0x170(s1)
addu a0,v0,a0
lw a1,0x20(s8)
lw gp,0x28(sp)
addu v1,v1,a2
sltu v0,a0,v0
bltz a1,0x0021c360
_addu v1,v0,v1
lbu v0,0x20(s8)
li a2,0x1
sw v1,0x8(s8)
sw a0,0xc(s8)
ins v0,a2,0x7,0x1
sb v0,0x20(s8)
lw v1,0x20(s8)
ext v1,v1,0x1d,0x1
bne v1,zero,0x0021c2ec
_lw v1,0xc8(sp)
ins v0,a2,0x5,0x1
sw s0,0x18(s8)
sw s2,0x1c(s8)
sb v0,0x20(s8)
sw s8,0x68(sp)
lw a1,0x164(v1)
lw v1,0x168(v1)
beq a1,v1,0x0021c2b4
_lw v1,0xc8(sp)
addiu v0,a1,0x4
sw s8,0x0(a1)
sw v0,0x164(v1)
lw v0,0x70(sp)
or a3,s5,zero
lw t9,-0x6e18(gp)
lw a2,0x78(sp)
addu s7,s2,v0
sltu s2,s7,s2
addu s0,s2,s0
or a1,s7,zero
jalr t9
_or a0,s0,zero
or v0,v0,v1
bne v0,zero,0x0021c3c0
_lw gp,0x28(sp)
lw v0,0x70(sp)
or a3,s5,zero
lw t9,-0x6e18(gp)
lw a2,0x78(sp)
addu v0,s4,v0
sltu s4,v0,s4
addu s6,s4,s6
or a1,v0,zero
or a0,s6,zero
jalr t9
_or s4,v0,zero
or v0,v0,v1
bne v0,zero,0x0021c3a4
_lw gp,0x28(sp)
lw v1,0x190(s1)
lw a1,0x170(s1)
bne a1,v1,0x0021c388
_lw v0,0x194(s1)
lw v1,0x174(s1)
bne v1,v0,0x0021c388
_lw v0,0x70(sp)
lw a0,0x48(sp)
addu v1,v0,v1
sltu v0,v1,v0
sw v1,0x194(s1)
addu v0,v0,a1
sw v1,0x174(s1)
sw v0,0x190(s1)
sw v0,0x170(s1)
sw s0,0x0(s3)
sw s7,0x4(s3)
lw v0,0x74(sp)
beq a0,v0,0x0021b9d8
_lw t9,-0x7f44(gp)
jalr t9
_nop
b 0x0021b9dc
_lw ra,0xbc(sp)
beq v0,zero,0x0021bbf4
_nop
or s5,s3,zero
b 0x0021bbf4
_or s7,s4,zero
lbu v0,0x20(s3)
li v1,0x1
sw s2,0x8(s3)
sw s0,0xc(s3)
ins v0,v1,0x7,0x1
sb v0,0x20(s3)
lw v1,0x20(s3)
ext v1,v1,0x1d,0x1
bne v1,zero,0x0021c2d0
_li v1,0x1
lw a2,0x0(s3)
sw s2,0x18(s3)
ins v0,v1,0x5,0x1
sw s0,0x1c(s3)
sb v0,0x20(s3)
lw v0,0x20(s3)
ext v0,v0,0x1e,0x1
bne v0,zero,0x0021bff4
_nop
lw t9,0x38(a2)
jalr t9
_or a0,s3,zero
lw v0,0x20(s3)
ext v0,v0,0x1e,0x1
beq v0,zero,0x0021c308
_lw gp,0x28(sp)
lw s3,0x0(s1)
lw v0,0x20(s3)
ext v0,v0,0x1e,0x1
beq v0,zero,0x0021c280
_lw a2,-0x7924(gp)
lw a2,0x0(s3)
lbu v0,0x20(s3)
lw v1,0x14(s3)
lw a1,0x10(s3)
andi v0,v0,0x5f
sb v0,0x20(s3)
addu v1,s0,v1
lw a0,0x20(s3)
addu s2,s2,a1
sltu s0,v1,s0
addu s2,s0,s2
ext a0,a0,0x1c,0x1
bne a0,zero,0x0021c030
_or s0,v1,zero
ins v0,zero,0x6,0x1
sb v0,0x20(s3)
lw t9,0x3c(a2)
or a0,s3,zero
jalr t9
_addiu s1,s1,0x4
lw v0,0x0(s6)
bne v0,s1,0x0021bba4
_lw gp,0x28(sp)
addiu s6,s6,0xc
bne s8,s6,0x0021bac4
_lw v0,0xd8(sp)
or v1,s5,s7
lw s1,0xc0(sp)
lw s3,0xe0(sp)
sw s7,0x7c(sp)
lw v0,0x0(v0)
addu a1,v0,s0
sltu v0,a1,v0
beq v1,zero,0x0021c0d0
_addu a0,v0,s2
addiu v0,s7,-0x1
addiu v1,s5,-0x1
sltu a2,v0,s7
addu a2,a2,v1
subu a3,zero,s7
addu v1,v0,a1
addu a2,a2,a0
subu s5,zero,s5
sltu v0,v1,v0
sltu t0,zero,a3
addu v0,v0,a2
subu a2,s5,t0
and v1,v1,a3
subu a1,v1,a1
and v0,v0,a2
subu a0,v0,a0
sw a1,0x7c(sp)
sltu s5,v1,a1
subu s5,a0,s5
or a1,v1,zero
or a0,v0,zero
lw v0,0x84(sp)
li a2,0x1
lw v1,0xdc(sp)
lw v0,0x0(v0)
sb a2,0x0(v1)
lw v1,0xc(v0)
beq v1,zero,0x0021c324
_lw t9,-0x7810(gp)
lw v0,0x8(v0)
beq v0,zero,0x0021c37c
_lw t9,-0x533c(gp)
lw s8,0x5228(v0)
lw s6,0x522c(v0)
or v0,s8,s6
bne v0,zero,0x0021c11c
_lw t9,-0x6e18(gp)
lw v0,0x4(v1)
lw s8,0x20(v0)
lw s6,0x24(v0)
or a2,s8,zero
jalr t9
_or a3,s6,zero
or a2,s8,zero
lw gp,0x28(sp)
subu s0,s6,v1
lw t0,0x88(sp)
subu v0,s8,v0
lw s2,0x8c(sp)
sltu v1,s6,s0
subu s4,v0,v1
lw t9,-0x6e18(gp)
or a0,t0,zero
or a1,s2,zero
sw t0,0x90(sp)
jalr t9
_or a3,s6,zero
sltu a1,s4,v0
lw gp,0x28(sp)
or a2,v0,zero
bne a1,zero,0x0021c214
_or a0,v1,zero
beq a2,s4,0x0021c208
_lw t0,0x90(sp)
addu a1,s0,s2
lw a3,0x78(sp)
addu t0,s4,t0
sltu v0,a1,s0
addu v0,v0,t0
subu v1,a1,a0
lw a0,0x74(sp)
subu v0,v0,a2
sltu a1,a1,v1
sw v1,0x4(s3)
subu v0,v0,a1
lw a1,0x70(sp)
subu a0,v1,a0
sw v1,0x74(sp)
sw v0,0x0(s3)
subu a1,v0,a1
sw v0,0x70(sp)
sltu a2,v1,a0
subu a1,a1,a2
lw a2,0x80(sp)
addu a1,a3,a1
addu a0,a2,a0
sltu a2,a0,a2
sw a0,0x80(sp)
addu a1,a2,a1
b 0x0021b72c
_sw a1,0x78(sp)
lw v0,0x0(s6)
bne s1,v0,0x0021c058
_lw v0,0xd8(sp)
addiu s6,s6,0xc
bne s8,s6,0x0021bac4
_or v1,s5,s7
b 0x0021c05c
_nop
sltu v1,s0,v1
beq v1,zero,0x0021c17c
_nop
lw v1,0x8c(sp)
or a2,s8,zero
lw v0,0x88(sp)
or a3,s6,zero
lw t9,-0x6e18(gp)
addu a1,s6,v1
addu v0,s8,v0
sltu t0,a1,v1
addu t0,t0,v0
or s2,a1,zero
or a0,t0,zero
jalr t9
_sw t0,0x88(sp)
lw gp,0x28(sp)
or a2,v0,zero
or a0,v1,zero
b 0x0021c17c
_lw t0,0x88(sp)
b 0x0021ba3c
_sw zero,0x7c(sp)
lw t9,-0x6f78(gp)
or a2,zero,zero
lw a1,0x70(sp)
jalr t9
_or a0,s8,zero
b 0x0021bd84
_lw gp,0x28(sp)
li a1,0xcf
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x29fc
jalr t9
_addiu a0,a0,0x3574
li a1,0x115d
lw a2,-0x7924(gp)
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x3260
jalr t9
_addiu a0,a0,-0x48b4
lw v0,0xc8(sp)
addiu a2,sp,0x68
lw t9,-0x52d4(gp)
bal 0x00230924
_addiu a0,v0,0x160
b 0x0021be94
_lw gp,0x28(sp)
lw a2,-0x7924(gp)
li a1,0x14b
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x2d60
jalr t9
_addiu a0,a0,0x3574
lw a2,-0x7924(gp)
li a1,0x14b
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x2d60
jalr t9
_addiu a0,a0,0x3574
lw a2,-0x7924(gp)
li a1,0x163
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x2d74
jalr t9
_addiu a0,a0,0x3574
lw a2,-0x7924(gp)
li a1,0x69
lw a0,-0x7fc4(gp)
addiu a2,a2,-0x2998
jalr t9
_addiu a0,a0,-0x9b8
lw a2,-0x7924(gp)
li a1,0x5c
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x29c4
jalr t9
_addiu a0,a0,-0x9b8
b 0x0021c29c
_li a1,0x1131
lw a2,-0x7924(gp)
li a1,0x142
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x2d50
jalr t9
_addiu a0,a0,0x3574
addiu t9,t9,0x2c40
bal 0x00212c40
_nop
lw a2,-0x7924(gp)
li a1,0x1190
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x3260
jalr t9
_addiu a0,a0,-0x48b4
lw a2,-0x7924(gp)
li a1,0x118e
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x3260
jalr t9
_addiu a0,a0,-0x48b4
lw a2,-0x7924(gp)
li a1,0x118c
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x3260
jalr t9
_addiu a0,a0,-0x48b4
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0021c208) */\n/* WARNING: Type propagation algorithm not settling */\n/* gold::Output_segment::set_section_addresses(gold::Target const*, gold::Layout*, bool, unsigned\n   long long, unsigned int*, bool*, long long*, unsigned int*) */\n\nundefined4\ngold::Output_segment::set_section_addresses\n          (Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,\n          bool *param_6,longlong *param_7,uint *param_8)\n\n{\n  char cVar1;\n  byte bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  undefined3 in_register_00000018;\n  Target *pTVar16;\n  int iVar17;\n  int iVar18;\n  undefined1 *puVar19;\n  int *piVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  undefined1 *puVar23;\n  uint uVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  ulonglong uVar28;\n  undefined4 in_stack_00000024;\n  undefined1 *local_90 [2];\n  undefined1 auStack_88 [16];\n  undefined1 *local_78;\n  int local_74;\n  undefined1 local_70 [16];\n  undefined1 *local_60;\n  uint local_5c;\n  undefined4 *local_58;\n  char local_54 [4];\n  uint local_50;\n  undefined1 *local_4c;\n  code *local_48;\n  int local_44;\n  undefined1 *local_40;\n  int *local_3c;\n  uint local_38;\n  undefined1 *local_34;\n  uint local_30;\n  \n  iVar8 = CONCAT31(in_register_00000018,param_3);\n  local_40 = param_4._4_4_;\n  local_48 = param_4._0_4_;\n  uVar11 = 0x10e4;\n  if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;\n  local_50 = *param_8;\n  local_54[0] = '\0';\n  local_3c = (int *)PTR_parameters_004c19b4;\n  local_4c = (undefined1 *)param_8[1];\n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }\n  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */\n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }\n  else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }\n  FUN_00212c40();\nLAB_0021c388:\n                    /* try { // try from 0021c39c to 0021c3db has its CatchHandler @ 0021c3dc */\n  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);\n  return uVar11;\n}\n\n" comment comment comment (function_definition "undefined4\ngold::Output_segment::set_section_addresses\n          (Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,\n          bool *param_6,longlong *param_7,uint *param_8)\n\n{\n  char cVar1;\n  byte bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  undefined3 in_register_00000018;\n  Target *pTVar16;\n  int iVar17;\n  int iVar18;\n  undefined1 *puVar19;\n  int *piVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  undefined1 *puVar23;\n  uint uVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  ulonglong uVar28;\n  undefined4 in_stack_00000024;\n  undefined1 *local_90 [2];\n  undefined1 auStack_88 [16];\n  undefined1 *local_78;\n  int local_74;\n  undefined1 local_70 [16];\n  undefined1 *local_60;\n  uint local_5c;\n  undefined4 *local_58;\n  char local_54 [4];\n  uint local_50;\n  undefined1 *local_4c;\n  code *local_48;\n  int local_44;\n  undefined1 *local_40;\n  int *local_3c;\n  uint local_38;\n  undefined1 *local_34;\n  uint local_30;\n  \n  iVar8 = CONCAT31(in_register_00000018,param_3);\n  local_40 = param_4._4_4_;\n  local_48 = param_4._0_4_;\n  uVar11 = 0x10e4;\n  if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;\n  local_50 = *param_8;\n  local_54[0] = '\0';\n  local_3c = (int *)PTR_parameters_004c19b4;\n  local_4c = (undefined1 *)param_8[1];\n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }\n  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */\n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }\n  else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }\n  FUN_00212c40();\nLAB_0021c388:\n                    /* try { // try from 0021c39c to 0021c3db has its CatchHandler @ 0021c3dc */\n  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);\n  return uVar11;\n}" type_identifier (ERROR "gold::Output_segment::" identifier : : identifier : :) (function_declarator "set_section_addresses\n          (Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,\n          bool *param_6,longlong *param_7,uint *param_8)" identifier (parameter_list "(Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,\n          bool *param_6,longlong *param_7,uint *param_8)" ( (parameter_declaration "Target *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Layout *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "bool param_3" primitive_type identifier) , (parameter_declaration "ulonglong param_4" type_identifier identifier) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "bool *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "longlong *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "uint *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  undefined3 in_register_00000018;\n  Target *pTVar16;\n  int iVar17;\n  int iVar18;\n  undefined1 *puVar19;\n  int *piVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  undefined1 *puVar23;\n  uint uVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  ulonglong uVar28;\n  undefined4 in_stack_00000024;\n  undefined1 *local_90 [2];\n  undefined1 auStack_88 [16];\n  undefined1 *local_78;\n  int local_74;\n  undefined1 local_70 [16];\n  undefined1 *local_60;\n  uint local_5c;\n  undefined4 *local_58;\n  char local_54 [4];\n  uint local_50;\n  undefined1 *local_4c;\n  code *local_48;\n  int local_44;\n  undefined1 *local_40;\n  int *local_3c;\n  uint local_38;\n  undefined1 *local_34;\n  uint local_30;\n  \n  iVar8 = CONCAT31(in_register_00000018,param_3);\n  local_40 = param_4._4_4_;\n  local_48 = param_4._0_4_;\n  uVar11 = 0x10e4;\n  if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;\n  local_50 = *param_8;\n  local_54[0] = '\0';\n  local_3c = (int *)PTR_parameters_004c19b4;\n  local_4c = (undefined1 *)param_8[1];\n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }\n  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */\n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }\n  else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }\n  FUN_00212c40();\nLAB_0021c388:\n                    /* try { // try from 0021c39c to 0021c3db has its CatchHandler @ 0021c3dc */\n  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);\n  return uVar11;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined3 in_register_00000018;" type_identifier identifier ;) (declaration "Target *pTVar16;" type_identifier (pointer_declarator "*pTVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "longlong lVar25;" type_identifier identifier ;) (declaration "longlong lVar26;" type_identifier identifier ;) (declaration "undefined8 uVar27;" type_identifier identifier ;) (declaration "ulonglong uVar28;" type_identifier identifier ;) (declaration "undefined4 in_stack_00000024;" type_identifier identifier ;) (declaration "undefined1 *local_90 [2];" type_identifier (pointer_declarator "*local_90 [2]" * (array_declarator "local_90 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_88 [16];" type_identifier (array_declarator "auStack_88 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "undefined1 local_70 [16];" type_identifier (array_declarator "local_70 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "undefined4 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "char local_54 [4];" primitive_type (array_declarator "local_54 [4]" identifier [ number_literal ]) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined1 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "code *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "undefined1 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "int *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "iVar8 = CONCAT31(in_register_00000018,param_3);" (assignment_expression "iVar8 = CONCAT31(in_register_00000018,param_3)" identifier = (call_expression "CONCAT31(in_register_00000018,param_3)" identifier (argument_list "(in_register_00000018,param_3)" ( identifier , identifier )))) ;) (expression_statement "local_40 = param_4._4_4_;" (assignment_expression "local_40 = param_4._4_4_" identifier = (field_expression "param_4._4_4_" identifier . field_identifier)) ;) (expression_statement "local_48 = param_4._0_4_;" (assignment_expression "local_48 = param_4._0_4_" identifier = (field_expression "param_4._0_4_" identifier . field_identifier)) ;) (expression_statement "uVar11 = 0x10e4;" (assignment_expression "uVar11 = 0x10e4" identifier = number_literal) ;) (if_statement "if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;" if (parenthesized_expression "(*(int *)(param_1 + 0x198) != 1)" ( (binary_expression "*(int *)(param_1 + 0x198) != 1" (pointer_expression "*(int *)(param_1 + 0x198)" * (cast_expression "(int *)(param_1 + 0x198)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x198)" ( (binary_expression "param_1 + 0x198" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0021c29c;" goto statement_identifier ;)) (expression_statement "local_50 = *param_8;" (assignment_expression "local_50 = *param_8" identifier = (pointer_expression "*param_8" * identifier)) ;) (expression_statement "local_54[0] = '\0';" (assignment_expression "local_54[0] = '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_3c = (int *)PTR_parameters_004c19b4;" (assignment_expression "local_3c = (int *)PTR_parameters_004c19b4" identifier = (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_4c = (undefined1 *)param_8[1];" (assignment_expression "local_4c = (undefined1 *)param_8[1]" identifier = (cast_expression "(undefined1 *)param_8[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_8[1]" identifier [ number_literal ]))) ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29c4" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (if_statement "if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */\n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }\n  else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }" if (parenthesized_expression "((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0))" ( (binary_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)" (parenthesized_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9)" * (cast_expression "(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)" ( (comma_expression "iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0" (assignment_expression "iVar22 = is_first_section_relro((Output_segment *)param_1)" identifier = (call_expression "is_first_section_relro((Output_segment *)param_1)" identifier (argument_list "((Output_segment *)param_1)" ( (cast_expression "(Output_segment *)param_1" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */\n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }" { (expression_statement "puVar21 = (undefined1 *)0x0;" (assignment_expression "puVar21 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }" statement_identifier : (if_statement "if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }" if (parenthesized_expression "((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0))" ( (binary_expression "(param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)" (parenthesized_expression "(param_5 == (uint *)0x0)" ( (binary_expression "param_5 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(int *)(param_1 + 0x1a0) << 1 < 0)" ( (binary_expression "*(int *)(param_1 + 0x1a0) << 1 < 0" (binary_expression "*(int *)(param_1 + 0x1a0) << 1" (pointer_expression "*(int *)(param_1 + 0x1a0)" * (cast_expression "(int *)(param_1 + 0x1a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1a0)" ( (binary_expression "param_1 + 0x1a0" identifier + number_literal) )))) << number_literal) < number_literal) ))) )) (compound_statement "{\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }" { (labeled_statement "LAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" statement_identifier : (if_statement "if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" if (parenthesized_expression "(*(code **)(param_1 + 0x168) != local_48)" ( (binary_expression "*(code **)(param_1 + 0x168) != local_48" (pointer_expression "*(code **)(param_1 + 0x168)" * (cast_expression "(code **)(param_1 + 0x168)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" { (expression_statement "uVar11 = 0x1131;" (assignment_expression "uVar11 = 0x1131" identifier = number_literal) ;) (labeled_statement "LAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);" statement_identifier : (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" identifier + number_literal) )))) ;)) (return_statement "return uVar11;" return identifier ;) }))) (expression_statement "uVar11 = 0x1131;" (assignment_expression "uVar11 = 0x1131" identifier = number_literal) ;) (if_statement "if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;" if (parenthesized_expression "(*(undefined1 **)(param_1 + 0x16c) != local_40)" ( (binary_expression "*(undefined1 **)(param_1 + 0x16c) != local_40" (pointer_expression "*(undefined1 **)(param_1 + 0x16c)" * (cast_expression "(undefined1 **)(param_1 + 0x16c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) != identifier) )) (goto_statement "goto LAB_0021c29c;" goto statement_identifier ;)) (expression_statement "local_48 = *(code **)(param_1 + 0x160);" (assignment_expression "local_48 = *(code **)(param_1 + 0x160)" identifier = (pointer_expression "*(code **)(param_1 + 0x160)" * (cast_expression "(code **)(param_1 + 0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x160)" ( (binary_expression "param_1 + 0x160" identifier + number_literal) ))))) ;) (expression_statement "local_40 = *(undefined1 **)(param_1 + 0x164);" (assignment_expression "local_40 = *(undefined1 **)(param_1 + 0x164)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 0x164)" * (cast_expression "(undefined1 **)(param_1 + 0x164)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }" else (compound_statement "{\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }" { (expression_statement "*(code **)(param_1 + 0x160) = local_48;" (assignment_expression "*(code **)(param_1 + 0x160) = local_48" (pointer_expression "*(code **)(param_1 + 0x160)" * (cast_expression "(code **)(param_1 + 0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x160)" ( (binary_expression "param_1 + 0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(param_1 + 0x164) = local_40;" (assignment_expression "*(undefined1 **)(param_1 + 0x164) = local_40" (pointer_expression "*(undefined1 **)(param_1 + 0x164)" * (cast_expression "(undefined1 **)(param_1 + 0x164)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x168) = local_48;" (assignment_expression "*(code **)(param_1 + 0x168) = local_48" (pointer_expression "*(code **)(param_1 + 0x168)" * (cast_expression "(code **)(param_1 + 0x168)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(param_1 + 0x16c) = local_40;" (assignment_expression "*(undefined1 **)(param_1 + 0x16c) = local_40" (pointer_expression "*(undefined1 **)(param_1 + 0x16c)" * (cast_expression "(undefined1 **)(param_1 + 0x16c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);" (assignment_expression "param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40)" (subscript_expression "param_1[0x1a0]" identifier [ number_literal ]) = (call_expression "(Target)((byte)param_1[0x1a0] & 0xbf | 0x40)" (parenthesized_expression "(Target)" ( identifier )) (argument_list "((byte)param_1[0x1a0] & 0xbf | 0x40)" ( (binary_expression "(byte)param_1[0x1a0] & 0xbf | 0x40" (binary_expression "(byte)param_1[0x1a0] & 0xbf" (cast_expression "(byte)param_1[0x1a0]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0x1a0]" identifier [ number_literal ])) & number_literal) | number_literal) )))) ;) })))) (expression_statement "lVar25 = CONCAT44(local_48,local_40);" (assignment_expression "lVar25 = CONCAT44(local_48,local_40)" identifier = (call_expression "CONCAT44(local_48,local_40)" identifier (argument_list "(local_48,local_40)" ( identifier , identifier )))) ;) (expression_statement "local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;" (assignment_expression "local_48 = (code *)PTR_set_section_list_addresses_004c3fb4" identifier = (cast_expression "(code *)PTR_set_section_list_addresses_004c3fb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_54[0] = '\0';" (assignment_expression "local_54[0] = '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(uint *)(param_1 + 0x188) = local_50;" (assignment_expression "*(uint *)(param_1 + 0x188) = local_50" (pointer_expression "*(uint *)(param_1 + 0x188)" * (cast_expression "(uint *)(param_1 + 0x188)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(param_1 + 0x18c) = local_4c;" (assignment_expression "*(undefined1 **)(param_1 + 0x18c) = local_4c" (pointer_expression "*(undefined1 **)(param_1 + 0x18c)" * (cast_expression "(undefined1 **)(param_1 + 0x18c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_60 = (undefined1 *)*param_8;" (assignment_expression "local_60 = (undefined1 *)*param_8" identifier = (cast_expression "(undefined1 *)*param_8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_8" * identifier))) ;) (expression_statement "local_5c = param_8[1];" (assignment_expression "local_5c = param_8[1]" identifier = (subscript_expression "param_8[1]" identifier [ number_literal ])) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "pTVar16 = param_1;" (assignment_expression "pTVar16 = param_1" identifier = identifier) ;) (expression_statement "local_40 = puVar21;" (assignment_expression "local_40 = puVar21" identifier = identifier) ;) (while_statement "while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }" { (expression_statement "lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);" (assignment_expression "lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54)" identifier = (call_expression "(*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54)" ( identifier , identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_60" & identifier) , identifier , identifier )))) ;) (expression_statement "uVar12 = local_5c;" (assignment_expression "uVar12 = local_5c" identifier = identifier) ;) (expression_statement "puVar21 = local_60;" (assignment_expression "puVar21 = local_60" identifier = identifier) ;) (expression_statement "uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }" if (parenthesized_expression "(((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c))" ( (binary_expression "((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)" (parenthesized_expression "((undefined1 *)*param_8 != local_60)" ( (binary_expression "(undefined1 *)*param_8 != local_60" (cast_expression "(undefined1 *)*param_8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_8" * identifier)) != identifier) )) || (parenthesized_expression "(param_8[1] != local_5c)" ( (binary_expression "param_8[1] != local_5c" (subscript_expression "param_8[1]" identifier [ number_literal ]) != identifier) ))) )) (compound_statement "{\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }" { (if_statement "if (iVar22 == 0x11) goto LAB_0021b84c;" if (parenthesized_expression "(iVar22 == 0x11)" ( (binary_expression "iVar22 == 0x11" identifier == number_literal) )) (goto_statement "goto LAB_0021b84c;" goto statement_identifier ;)) (if_statement "if (iVar22 < 0x1a) goto LAB_0021b834;" if (parenthesized_expression "(iVar22 < 0x1a)" ( (binary_expression "iVar22 < 0x1a" identifier < number_literal) )) (goto_statement "goto LAB_0021b834;" goto statement_identifier ;)) })) (expression_statement "*(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;" (assignment_expression "*(uint *)(param_1 + 0x194) = local_5c - (int)local_4c" (pointer_expression "*(uint *)(param_1 + 0x194)" * (cast_expression "(uint *)(param_1 + 0x194)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) = (binary_expression "local_5c - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);" (assignment_expression "*(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" (pointer_expression "*(undefined1 **)(param_1 + 400)" * (cast_expression "(undefined1 **)(param_1 + 400)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) = (binary_expression "local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" identifier + (parenthesized_expression "(-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" ( (binary_expression "-(uint)(local_5c < local_5c - (int)local_4c) - local_50" (unary_expression "-(uint)(local_5c < local_5c - (int)local_4c)" - (call_expression "(uint)(local_5c < local_5c - (int)local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < local_5c - (int)local_4c)" ( (binary_expression "local_5c < local_5c - (int)local_4c" identifier < (binary_expression "local_5c - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) )))) - identifier) )))) ;) (if_statement "if (iVar22 == 0x1c) break;" if (parenthesized_expression "(iVar22 == 0x1c)" ( (binary_expression "iVar22 == 0x1c" identifier == number_literal) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }" { (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "pTVar16 = param_1 + iVar22 * 0xc;" (assignment_expression "pTVar16 = param_1 + iVar22 * 0xc" identifier = (binary_expression "param_1 + iVar22 * 0xc" identifier + (binary_expression "iVar22 * 0xc" identifier * number_literal))) ;) (if_statement "if (iVar22 != 0x14) break;" if (parenthesized_expression "(iVar22 != 0x14)" ( (binary_expression "iVar22 != 0x14" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar24 = param_8[1];" (assignment_expression "uVar24 = param_8[1]" identifier = (subscript_expression "param_8[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = uVar24 + local_44;" (assignment_expression "uVar12 = uVar24 + local_44" identifier = (binary_expression "uVar24 + local_44" identifier + identifier)) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0xf0);" (assignment_expression "iVar18 = *(int *)(param_1 + 0xf0)" identifier = (pointer_expression "*(int *)(param_1 + 0xf0)" * (cast_expression "(int *)(param_1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf0)" ( (binary_expression "param_1 + 0xf0" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(param_1 + 0xf4);" (assignment_expression "iVar17 = *(int *)(param_1 + 0xf4)" identifier = (pointer_expression "*(int *)(param_1 + 0xf4)" * (cast_expression "(int *)(param_1 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "param_8[1] = uVar12;" (assignment_expression "param_8[1] = uVar12" (subscript_expression "param_8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);" (assignment_expression "local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c)" identifier = (binary_expression "local_60 + (int)local_40 + (local_5c + local_44 < local_5c)" (binary_expression "local_60 + (int)local_40" identifier + (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier)) + (parenthesized_expression "(local_5c + local_44 < local_5c)" ( (binary_expression "local_5c + local_44 < local_5c" (binary_expression "local_5c + local_44" identifier + identifier) < identifier) )))) ;) (expression_statement "*param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);" (assignment_expression "*param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8)" (pointer_expression "*param_8" * identifier) = (call_expression "(uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_40 + (uint)(uVar12 < uVar24) + *param_8)" ( (binary_expression "local_40 + (uint)(uVar12 < uVar24) + *param_8" (binary_expression "local_40 + (uint)(uVar12 < uVar24)" identifier + (call_expression "(uint)(uVar12 < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < uVar24)" ( (binary_expression "uVar12 < uVar24" identifier < identifier) )))) + (pointer_expression "*param_8" * identifier)) )))) ;) (if_statement "if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }" if (parenthesized_expression "(iVar18 == iVar17)" ( (binary_expression "iVar18 == iVar17" identifier == identifier) )) (compound_statement "{\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }" { (expression_statement "*(int *)param_6 = *(int *)param_6 + local_44;" (assignment_expression "*(int *)param_6 = *(int *)param_6 + local_44" (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*(int *)param_6 + local_44" (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier)) ;) })) (expression_statement "local_5c = local_5c + local_44;" (assignment_expression "local_5c = local_5c + local_44" identifier = (binary_expression "local_5c + local_44" identifier + identifier)) ;) (expression_statement "lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);" (assignment_expression "lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54)" identifier = (call_expression "(*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54)" ( identifier , identifier , identifier , identifier , (binary_expression "lVar25 + CONCAT44(local_40,local_44)" identifier + (call_expression "CONCAT44(local_40,local_44)" identifier (argument_list "(local_40,local_44)" ( identifier , identifier )))) , identifier , (pointer_expression "&local_60" & identifier) , identifier , identifier )))) ;) (if_statement "if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }" if (parenthesized_expression "((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1]))" ( (binary_expression "(local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])" (parenthesized_expression "(local_60 != (undefined1 *)*param_8)" ( (binary_expression "local_60 != (undefined1 *)*param_8" identifier != (cast_expression "(undefined1 *)*param_8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_8" * identifier))) )) || (parenthesized_expression "(local_5c != param_8[1])" ( (binary_expression "local_5c != param_8[1]" identifier != (subscript_expression "param_8[1]" identifier [ number_literal ])) ))) )) (compound_statement "{\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }" { (labeled_statement "LAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }" statement_identifier : (if_statement "if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }" if (parenthesized_expression "(*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0')" ( (binary_expression "*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0'" (pointer_expression "*(char *)(*(int *)(iVar8 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(iVar8 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 4) + 0xac)" ( (binary_expression "*(int *)(iVar8 + 4) + 0xac" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }" { (expression_statement "uVar11 = 0x115d;" (assignment_expression "uVar11 = 0x115d" identifier = number_literal) ;) (goto_statement "goto LAB_0021c29c;" goto statement_identifier ;) }))) })) (labeled_statement "LAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;" statement_identifier : (expression_statement "*(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;" (assignment_expression "*(uint *)(param_1 + 0x194) = local_5c - (int)local_4c" (pointer_expression "*(uint *)(param_1 + 0x194)" * (cast_expression "(uint *)(param_1 + 0x194)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) = (binary_expression "local_5c - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "*(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);" (assignment_expression "*(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" (pointer_expression "*(undefined1 **)(param_1 + 400)" * (cast_expression "(undefined1 **)(param_1 + 400)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) = (binary_expression "local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" identifier + (parenthesized_expression "(-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" ( (binary_expression "-(uint)(local_5c < local_5c - (int)local_4c) - local_50" (unary_expression "-(uint)(local_5c < local_5c - (int)local_4c)" - (call_expression "(uint)(local_5c < local_5c - (int)local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < local_5c - (int)local_4c)" ( (binary_expression "local_5c < local_5c - (int)local_4c" identifier < (binary_expression "local_5c - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) )))) - identifier) )))) ;) })) })) (if_statement "if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }" if (parenthesized_expression "(local_54[0] == '\0')" ( (binary_expression "local_54[0] == '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }" { (expression_statement "uVar24 = *param_8;" (assignment_expression "uVar24 = *param_8" identifier = (pointer_expression "*param_8" * identifier)) ;) (expression_statement "uVar13 = param_8[1];" (assignment_expression "uVar13 = param_8[1]" identifier = (subscript_expression "param_8[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }" else (compound_statement "{\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }" { (expression_statement "lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));" (assignment_expression "lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170))" identifier = (call_expression "maximum_alignment(*(Output_segment **)(iVar8 + 0x170))" identifier (argument_list "(*(Output_segment **)(iVar8 + 0x170))" ( (pointer_expression "*(Output_segment **)(iVar8 + 0x170)" * (cast_expression "(Output_segment **)(iVar8 + 0x170)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x170)" ( (binary_expression "iVar8 + 0x170" identifier + number_literal) )))) )))) ;) (expression_statement "uVar24 = *param_8;" (assignment_expression "uVar24 = *param_8" identifier = (pointer_expression "*param_8" * identifier)) ;) (expression_statement "uVar13 = param_8[1];" (assignment_expression "uVar13 = param_8[1]" identifier = (subscript_expression "param_8[1]" identifier [ number_literal ])) ;) (if_statement "if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }" if (parenthesized_expression "(lVar26 != 0)" ( (binary_expression "lVar26 != 0" identifier != number_literal) )) (compound_statement "{\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }" { (expression_statement "lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);" (assignment_expression "lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1)" identifier = (binary_expression "lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1)" identifier + (call_expression "CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1)" identifier (argument_list "((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1)" ( (binary_expression "(uint)(uVar13 - 1 < uVar13) + (uVar24 - 1)" (call_expression "(uint)(uVar13 - 1 < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 - 1 < uVar13)" ( (binary_expression "uVar13 - 1 < uVar13" (binary_expression "uVar13 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar24 - 1)" ( (binary_expression "uVar24 - 1" identifier - number_literal) ))) , (binary_expression "uVar13 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar13 = (uint)lVar3 & -(int)lVar26;" (assignment_expression "uVar13 = (uint)lVar3 & -(int)lVar26" identifier = (binary_expression "(uint)lVar3 & -(int)lVar26" (cast_expression "(uint)lVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar26" - (cast_expression "(int)lVar26" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);" (assignment_expression "uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" identifier = (binary_expression "(uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (call_expression "(uint)((ulonglong)lVar3 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (binary_expression "-(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (unary_expression "-(uint)(-(int)lVar26 != 0)" - (call_expression "(uint)(-(int)lVar26 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)lVar26 != 0)" ( (binary_expression "-(int)lVar26 != 0" (unary_expression "-(int)lVar26" - (cast_expression "(int)lVar26" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (cast_expression "(int)((ulonglong)lVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar26 >> 0x20)" ( (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))))) ;) })) }))) (expression_statement "iVar22 = *(int *)(param_2 + 4);" (assignment_expression "iVar22 = *(int *)(param_2 + 4)" identifier = (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;" (assignment_expression "*(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c" (pointer_expression "*(uint *)(param_1 + 0x174)" * (cast_expression "(uint *)(param_1 + 0x174)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))) = (binary_expression "uVar13 - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "cVar1 = *(char *)(iVar22 + 0x30);" (assignment_expression "cVar1 = *(char *)(iVar22 + 0x30)" identifier = (pointer_expression "*(char *)(iVar22 + 0x30)" * (cast_expression "(char *)(iVar22 + 0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x30)" ( (binary_expression "iVar22 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);" (assignment_expression "*(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c)" (pointer_expression "*(uint *)(param_1 + 0x170)" * (cast_expression "(uint *)(param_1 + 0x170)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) )))) = (binary_expression "(uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c)" (parenthesized_expression "(uVar24 - local_50)" ( (binary_expression "uVar24 - local_50" identifier - identifier) )) - (call_expression "(uint)(uVar13 < uVar13 - (int)local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 < uVar13 - (int)local_4c)" ( (binary_expression "uVar13 < uVar13 - (int)local_4c" identifier < (binary_expression "uVar13 - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ))))) ;) (expression_statement "*param_8 = (uint)puVar21;" (assignment_expression "*param_8 = (uint)puVar21" (pointer_expression "*param_8" * identifier) = (cast_expression "(uint)puVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "param_8[1] = uVar12;" (assignment_expression "param_8[1] = uVar12" (subscript_expression "param_8[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (cVar1 == '\0') {\n      return uVar11;\n    }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return uVar11;\n    }" { (return_statement "return uVar11;" return identifier ;) })) (if_statement "if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }" if (parenthesized_expression "((*(uint *)(param_1 + 0x19c) & 1) == 0)" ( (binary_expression "(*(uint *)(param_1 + 0x19c) & 1) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0x19c) & 1)" ( (binary_expression "*(uint *)(param_1 + 0x19c) & 1" (pointer_expression "*(uint *)(param_1 + 0x19c)" * (cast_expression "(uint *)(param_1 + 0x19c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x19c)" ( (binary_expression "param_1 + 0x19c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return uVar11;\n    }" { (return_statement "return uVar11;" return identifier ;) })) (expression_statement "iVar17 = *(int *)(*local_3c + 8);" (assignment_expression "iVar17 = *(int *)(*local_3c + 8)" identifier = (pointer_expression "*(int *)(*local_3c + 8)" * (cast_expression "(int *)(*local_3c + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_3c + 8)" ( (binary_expression "*local_3c + 8" (pointer_expression "*local_3c" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */\n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */\n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }" { (expression_statement "local_48 = *(code **)(iVar17 + 0x5228);" (assignment_expression "local_48 = *(code **)(iVar17 + 0x5228)" identifier = (pointer_expression "*(code **)(iVar17 + 0x5228)" * (cast_expression "(code **)(iVar17 + 0x5228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x5228)" ( (binary_expression "iVar17 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(iVar17 + 0x522c);" (assignment_expression "iVar17 = *(int *)(iVar17 + 0x522c)" identifier = (pointer_expression "*(int *)(iVar17 + 0x522c)" * (cast_expression "(int *)(iVar17 + 0x522c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x522c)" ( (binary_expression "iVar17 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }" if (parenthesized_expression "(local_48 == (code *)0x0 && iVar17 == 0)" ( (binary_expression "local_48 == (code *)0x0 && iVar17 == 0" (binary_expression "local_48 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "iVar17 == 0" identifier == number_literal)) )) (compound_statement "{\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }" { (expression_statement "local_48 = *(code **)(iVar22 + 0x20);" (assignment_expression "local_48 = *(code **)(iVar22 + 0x20)" identifier = (pointer_expression "*(code **)(iVar22 + 0x20)" * (cast_expression "(code **)(iVar22 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(iVar22 + 0x24);" (assignment_expression "iVar17 = *(int *)(iVar22 + 0x24)" identifier = (pointer_expression "*(int *)(iVar22 + 0x24)" * (cast_expression "(int *)(iVar22 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x24)" ( (binary_expression "iVar22 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar6 = local_48;" (assignment_expression "pcVar6 = local_48" identifier = identifier) ;) (expression_statement "lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);" (assignment_expression "lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_50,local_4c,local_48,iVar17)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar26 != 0) {\n        return uVar11;\n      }" if (parenthesized_expression "(lVar26 != 0)" ( (binary_expression "lVar26 != 0" identifier != number_literal) )) (compound_statement "{\n        return uVar11;\n      }" { (return_statement "return uVar11;" return identifier ;) })) (expression_statement "lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);" (assignment_expression "lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21,uVar12,pcVar6,iVar17)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar26 == 0) {\n        return uVar11;\n      }" if (parenthesized_expression "(lVar26 == 0)" ( (binary_expression "lVar26 == 0" identifier == number_literal) )) (compound_statement "{\n        return uVar11;\n      }" { (return_statement "return uVar11;" return identifier ;) })) (expression_statement "local_78 = local_70;" (assignment_expression "local_78 = local_70" identifier = identifier) ;) (expression_statement "local_50 = iVar17 - (int)lVar26;" (assignment_expression "local_50 = iVar17 - (int)lVar26" identifier = (binary_expression "iVar17 - (int)lVar26" identifier - (cast_expression "(int)lVar26" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "local_70[0] = 0;" (assignment_expression "local_70[0] = 0" (subscript_expression "local_70[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_4c = local_78;" (assignment_expression "local_4c = local_78" identifier = identifier) ;) (if_statement "if (*(char *)(iVar22 + 0xe) == '\0') {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar22 + 0xe) == '\0')" ( (binary_expression "*(char *)(iVar22 + 0xe) == '\0'" (pointer_expression "*(char *)(iVar22 + 0xe)" * (cast_expression "(char *)(iVar22 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xe)" ( (binary_expression "iVar22 + 0xe" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }" { comment (expression_statement "(*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);" (call_expression "(*(code *)PTR_resize_004c22c8)(&local_78,local_50,0)" (parenthesized_expression "(*(code *)PTR_resize_004c22c8)" ( (pointer_expression "*(code *)PTR_resize_004c22c8" * (cast_expression "(code *)PTR_resize_004c22c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,local_50,0)" ( (pointer_expression "&local_78" & identifier) , identifier , number_literal ))) ;) }) (else_clause "else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }" else (compound_statement "{\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }" { comment (expression_statement "(**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);" (call_expression "(**(code **)(*(int *)param_2 + 0x18))(local_90,param_2)" (parenthesized_expression "(**(code **)(*(int *)param_2 + 0x18))" ( (pointer_expression "**(code **)(*(int *)param_2 + 0x18)" * (pointer_expression "*(code **)(*(int *)param_2 + 0x18)" * (cast_expression "(code **)(*(int *)param_2 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_2 + 0x18)" ( (binary_expression "*(int *)param_2 + 0x18" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(local_90,param_2)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_operator__004c3fbc)(&local_78,local_90);" (call_expression "(*(code *)PTR_operator__004c3fbc)(&local_78,local_90)" (parenthesized_expression "(*(code *)PTR_operator__004c3fbc)" ( (pointer_expression "*(code *)PTR_operator__004c3fbc" * (cast_expression "(code *)PTR_operator__004c3fbc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,local_90)" ( (pointer_expression "&local_78" & identifier) , identifier ))) ;) (if_statement "if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }" if (parenthesized_expression "(local_90[0] != auStack_88)" ( (binary_expression "local_90[0] != auStack_88" (subscript_expression "local_90[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) }))) (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x48)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x48)" ( number_literal ))))) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;" (assignment_expression "*(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50" (pointer_expression "*(byte *)(puVar7 + 8)" * (cast_expression "(byte *)(puVar7 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar7 + 8) & 7 | 0x50" (binary_expression "*(byte *)(puVar7 + 8) & 7" (pointer_expression "*(byte *)(puVar7 + 8)" * (cast_expression "(byte *)(puVar7 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar7[5] = local_74;" (assignment_expression "puVar7[5] = local_74" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[10] = 0;" (assignment_expression "puVar7[10] = 0" (subscript_expression "puVar7[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5 = PTR_vtable_004c2344;" (assignment_expression "puVar5 = PTR_vtable_004c2344" identifier = identifier) ;) (expression_statement "puVar4 = PTR__M_construct<char*>_004c2098;" (assignment_expression "puVar4 = PTR__M_construct<char*>_004c2098" identifier = (binary_expression "PTR__M_construct<char*>_004c2098" (binary_expression "PTR__M_construct<char" identifier < identifier) (ERROR "*" *) > identifier)) ;) (expression_statement "puVar7[4] = 0;" (assignment_expression "puVar7[4] = 0" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0xffffffff;" (assignment_expression "puVar7[7] = 0xffffffff" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0xffffffff;" (assignment_expression "puVar7[6] = 0xffffffff" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0xb] = 0;" (assignment_expression "puVar7[0xb] = 0" (subscript_expression "puVar7[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar7 = puVar5 + 8;" (assignment_expression "*puVar7 = puVar5 + 8" (pointer_expression "*puVar7" * identifier) = (binary_expression "puVar5 + 8" identifier + number_literal)) ;) comment (expression_statement "puVar7[0xc] = puVar7 + 0xe;" (assignment_expression "puVar7[0xc] = puVar7 + 0xe" (subscript_expression "puVar7[0xc]" identifier [ number_literal ]) = (binary_expression "puVar7 + 0xe" identifier + number_literal)) ;) (expression_statement "(*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);" (call_expression "(*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7 + 0xc,local_78,local_78 + local_74,0)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) , identifier , (binary_expression "local_78 + local_74" identifier + identifier) , number_literal ))) ;) (expression_statement "uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);" (assignment_expression "uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174)" identifier = (binary_expression "*(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174)" (pointer_expression "*(uint *)(param_1 + 0x164)" * (cast_expression "(uint *)(param_1 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 0x174)" * (cast_expression "(int *)(param_1 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))))) ;) (if_statement "if ((int)puVar7[8] < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }" if (parenthesized_expression "((int)puVar7[8] < 0)" ( (binary_expression "(int)puVar7[8] < 0" (cast_expression "(int)puVar7[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar7[8]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }" { comment (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d50" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "bVar2 = *(byte *)(puVar7 + 8);" (assignment_expression "bVar2 = *(byte *)(puVar7 + 8)" identifier = (pointer_expression "*(byte *)(puVar7 + 8)" * (cast_expression "(byte *)(puVar7 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);" (assignment_expression "puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170)" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170)" (binary_expression "(uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160)" (call_expression "(uint)(uVar24 < *(uint *)(param_1 + 0x164))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 < *(uint *)(param_1 + 0x164))" ( (binary_expression "uVar24 < *(uint *)(param_1 + 0x164)" identifier < (pointer_expression "*(uint *)(param_1 + 0x164)" * (cast_expression "(uint *)(param_1 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(param_1 + 0x160)" * (cast_expression "(int *)(param_1 + 0x160)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x160)" ( (binary_expression "param_1 + 0x160" identifier + number_literal) ))))) + (pointer_expression "*(int *)(param_1 + 0x170)" * (cast_expression "(int *)(param_1 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) )))))) ;) (expression_statement "puVar7[3] = uVar24;" (assignment_expression "puVar7[3] = uVar24" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;" (assignment_expression "*(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80" (pointer_expression "*(byte *)(puVar7 + 8)" * (cast_expression "(byte *)(puVar7 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = (binary_expression "bVar2 & 0x7f | 0x80" (binary_expression "bVar2 & 0x7f" identifier & number_literal) | number_literal)) ;) (if_statement "if ((int)(puVar7[8] << 2) < 0) {\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }" if (parenthesized_expression "((int)(puVar7[8] << 2) < 0)" ( (binary_expression "(int)(puVar7[8] << 2) < 0" (cast_expression "(int)(puVar7[8] << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar7[8] << 2)" ( (binary_expression "puVar7[8] << 2" (subscript_expression "puVar7[8]" identifier [ number_literal ]) << number_literal) ))) < number_literal) )) (compound_statement "{\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }" { comment (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d60" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "puVar7[6] = puVar21;" (assignment_expression "puVar7[6] = puVar21" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[7] = uVar12;" (assignment_expression "puVar7[7] = uVar12" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;" (assignment_expression "*(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0" (pointer_expression "*(byte *)(puVar7 + 8)" * (cast_expression "(byte *)(puVar7 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = (binary_expression "bVar2 & 0x5f | 0xa0" (binary_expression "bVar2 & 0x5f" identifier & number_literal) | number_literal)) ;) (expression_statement "puVar14 = *(undefined4 **)(iVar8 + 0x164);" (assignment_expression "puVar14 = *(undefined4 **)(iVar8 + 0x164)" identifier = (pointer_expression "*(undefined4 **)(iVar8 + 0x164)" * (cast_expression "(undefined4 **)(iVar8 + 0x164)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x164)" ( (binary_expression "iVar8 + 0x164" identifier + number_literal) ))))) ;) (expression_statement "local_58 = puVar7;" (assignment_expression "local_58 = puVar7" identifier = identifier) ;) (if_statement "if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }" if (parenthesized_expression "(puVar14 == *(undefined4 **)(iVar8 + 0x168))" ( (binary_expression "puVar14 == *(undefined4 **)(iVar8 + 0x168)" identifier == (pointer_expression "*(undefined4 **)(iVar8 + 0x168)" * (cast_expression "(undefined4 **)(iVar8 + 0x168)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x168)" ( (binary_expression "iVar8 + 0x168" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }" { comment (ERROR "std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::" (comma_expression "std::vector<gold::Output_data*,std" identifier (ERROR "::vector<gold::Output_data*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Output_data*>>::\n        _M_realloc_insert<gold" (binary_expression "Output_data*>>::\n        _M_realloc_insert" identifier * (ERROR ">>::" >> : :) identifier) < identifier) : :) (expression_statement "Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);" (binary_expression "Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58)" (binary_expression "Output_data*const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58)" ( (comma_expression "(vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58" (call_expression "(vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160)" (parenthesized_expression "(vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)" ( (ERROR "vector<gold::Output_data*,std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (type_descriptor "Output_data*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_data*>> *" identifier * (ERROR ">>" >>) (pointer_expression "*" * identifier)) )) (argument_list "(iVar8 + 0x160)" ( (binary_expression "iVar8 + 0x160" identifier + number_literal) ))) , (comma_expression "puVar14,&local_58" identifier , (pointer_expression "&local_58" & identifier))) ))) ;) }) (else_clause "else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }" else (compound_statement "{\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }" { (expression_statement "*puVar14 = puVar7;" (assignment_expression "*puVar14 = puVar7" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;" (assignment_expression "*(undefined4 **)(iVar8 + 0x164) = puVar14 + 1" (pointer_expression "*(undefined4 **)(iVar8 + 0x164)" * (cast_expression "(undefined4 **)(iVar8 + 0x164)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x164)" ( (binary_expression "iVar8 + 0x164" identifier + number_literal) )))) = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) }))) (expression_statement "uVar24 = uVar12 + local_50;" (assignment_expression "uVar24 = uVar12 + local_50" identifier = (binary_expression "uVar12 + local_50" identifier + identifier)) ;) (expression_statement "lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);" (assignment_expression "lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17)" ( (binary_expression "puVar21 + (uVar24 < uVar12)" identifier + (parenthesized_expression "(uVar24 < uVar12)" ( (binary_expression "uVar24 < uVar12" identifier < identifier) ))) , identifier , identifier , identifier )))) ;) (if_statement "if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" if (parenthesized_expression "(lVar26 != 0)" ( (binary_expression "lVar26 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);" (assignment_expression "uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20)" identifier = (call_expression "(undefined4)(lVar25 + (ulonglong)local_50 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(lVar25 + (ulonglong)local_50 >> 0x20)" ( (binary_expression "lVar25 + (ulonglong)local_50 >> 0x20" (binary_expression "lVar25 + (ulonglong)local_50" identifier + (cast_expression "(ulonglong)local_50" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) )))) ;) (expression_statement "lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);" (assignment_expression "lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17)" ( identifier , (cast_expression "(int)(lVar25 + (ulonglong)local_50)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar25 + (ulonglong)local_50)" ( (binary_expression "lVar25 + (ulonglong)local_50" identifier + (cast_expression "(ulonglong)local_50" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ))) , identifier , identifier )))) ;) (if_statement "if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" if (parenthesized_expression "(lVar25 != 0)" ( (binary_expression "lVar25 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (if_statement "if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }" if (parenthesized_expression "((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194)))" ( (binary_expression "(*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))" (parenthesized_expression "(*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400))" ( (binary_expression "*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)" (pointer_expression "*(int *)(param_1 + 0x170)" * (cast_expression "(int *)(param_1 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) )))) == (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) ))))) )) && (parenthesized_expression "(*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))" ( (binary_expression "*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194)" (pointer_expression "*(int *)(param_1 + 0x174)" * (cast_expression "(int *)(param_1 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))) == (pointer_expression "*(int *)(param_1 + 0x194)" * (cast_expression "(int *)(param_1 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) ))))) ))) )) (compound_statement "{\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }" { (expression_statement "uVar13 = local_50 + *(int *)(param_1 + 0x174);" (assignment_expression "uVar13 = local_50 + *(int *)(param_1 + 0x174)" identifier = (binary_expression "local_50 + *(int *)(param_1 + 0x174)" identifier + (pointer_expression "*(int *)(param_1 + 0x174)" * (cast_expression "(int *)(param_1 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(param_1 + 0x194) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x194) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x194)" * (cast_expression "(uint *)(param_1 + 0x194)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);" (assignment_expression "iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170)" identifier = (binary_expression "(uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170)" (call_expression "(uint)(uVar13 < local_50)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 < local_50)" ( (binary_expression "uVar13 < local_50" identifier < identifier) ))) + (pointer_expression "*(int *)(param_1 + 0x170)" * (cast_expression "(int *)(param_1 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(param_1 + 0x174) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x174) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x174)" * (cast_expression "(uint *)(param_1 + 0x174)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 400) = iVar8;" (assignment_expression "*(int *)(param_1 + 400) = iVar8" (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x170) = iVar8;" (assignment_expression "*(int *)(param_1 + 0x170) = iVar8" (pointer_expression "*(int *)(param_1 + 0x170)" * (cast_expression "(int *)(param_1 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_8 = (uint)(puVar21 + (uVar24 < uVar12));" (assignment_expression "*param_8 = (uint)(puVar21 + (uVar24 < uVar12))" (pointer_expression "*param_8" * identifier) = (call_expression "(uint)(puVar21 + (uVar24 < uVar12))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar21 + (uVar24 < uVar12))" ( (binary_expression "puVar21 + (uVar24 < uVar12)" identifier + (parenthesized_expression "(uVar24 < uVar12)" ( (binary_expression "uVar24 < uVar12" identifier < identifier) ))) )))) ;) (expression_statement "param_8[1] = uVar24;" (assignment_expression "param_8[1] = uVar24" (subscript_expression "param_8[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_78 == local_4c) {\n          return uVar11;\n        }" if (parenthesized_expression "(local_78 == local_4c)" ( (binary_expression "local_78 == local_4c" identifier == identifier) )) (compound_statement "{\n          return uVar11;\n        }" { (return_statement "return uVar11;" return identifier ;) })) (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return uVar11;" return identifier ;) })) (goto_statement "goto LAB_0021c388;" goto statement_identifier ;) })) }) (else_clause "else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }" else (compound_statement "{\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }" { (if_statement "if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }" if (parenthesized_expression "((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0))" ( (binary_expression "(*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)" (parenthesized_expression "(*(int *)(param_1 + 0x1a0) << 1 < 0)" ( (binary_expression "*(int *)(param_1 + 0x1a0) << 1 < 0" (binary_expression "*(int *)(param_1 + 0x1a0) << 1" (pointer_expression "*(int *)(param_1 + 0x1a0)" * (cast_expression "(int *)(param_1 + 0x1a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1a0)" ( (binary_expression "param_1 + 0x1a0" identifier + number_literal) )))) << number_literal) < number_literal) )) && (parenthesized_expression "(puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)" ( (comma_expression "puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0" (assignment_expression "puVar21 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "param_5 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }" { (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0021ba3c;" goto statement_identifier ;) })) (expression_statement "local_38 = *param_8;" (assignment_expression "local_38 = *param_8" identifier = (pointer_expression "*param_8" * identifier)) ;) (expression_statement "pTVar16 = param_1 + 4;" (assignment_expression "pTVar16 = param_1 + 4" identifier = (binary_expression "param_1 + 4" identifier + number_literal)) ;) (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "local_34 = (undefined1 *)param_8[1];" (assignment_expression "local_34 = (undefined1 *)param_8[1]" identifier = (cast_expression "(undefined1 *)param_8[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_8[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);" statement_identifier : (do_statement "do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);" do (compound_statement "{\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    }" { (expression_statement "puVar7 = *(undefined4 **)(pTVar16 + -4);" (assignment_expression "puVar7 = *(undefined4 **)(pTVar16 + -4)" identifier = (pointer_expression "*(undefined4 **)(pTVar16 + -4)" * (cast_expression "(undefined4 **)(pTVar16 + -4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pTVar16 + -4)" ( (binary_expression "pTVar16 + -4" identifier + number_literal) ))))) ;) (if_statement "if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }" if (parenthesized_expression "(puVar7 != *(undefined4 **)pTVar16)" ( (binary_expression "puVar7 != *(undefined4 **)pTVar16" identifier != (pointer_expression "*(undefined4 **)pTVar16" * (cast_expression "(undefined4 **)pTVar16" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }" { (do_statement "do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);" do (compound_statement "{\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        }" { (while_statement "while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }" { (expression_statement "uVar13 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar13 = (uint)((ulonglong)lVar25 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);" (assignment_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7)" identifier = (call_expression "(**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x18))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 0x18)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 0x18)" * (cast_expression "(code **)(*(int *)*puVar7 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0x18)" ( (binary_expression "*(int *)*puVar7 + 0x18" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar7)" ( (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) )))) ;) (if_statement "if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }" { (if_statement "if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;" if (parenthesized_expression "(puVar7 != *(undefined4 **)pTVar16)" ( (binary_expression "puVar7 != *(undefined4 **)pTVar16" identifier != (pointer_expression "*(undefined4 **)pTVar16" * (cast_expression "(undefined4 **)pTVar16" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (goto_statement "goto LAB_0021c058;" goto statement_identifier ;)) (expression_statement "pTVar16 = pTVar16 + 0xc;" (assignment_expression "pTVar16 = pTVar16 + 0xc" identifier = (binary_expression "pTVar16 + 0xc" identifier + number_literal)) ;) (expression_statement "uVar13 = uVar13 | (uint)lVar25;" (assignment_expression "uVar13 = uVar13 | (uint)lVar25" identifier = (binary_expression "uVar13 | (uint)lVar25" identifier | (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;" if (parenthesized_expression "(param_1 + 0x100 != pTVar16)" ( (binary_expression "param_1 + 0x100 != pTVar16" (binary_expression "param_1 + 0x100" identifier + number_literal) != identifier) )) (goto_statement "goto LAB_0021bac4;" goto statement_identifier ;)) (goto_statement "goto LAB_0021c05c;" goto statement_identifier ;) })) (expression_statement "lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);" (assignment_expression "lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7)" identifier = (call_expression "(**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0xc))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 0xc)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0xc)" ( (binary_expression "*(int *)*puVar7 + 0xc" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar7)" ( (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) )))) ;) (expression_statement "uVar9 = (uint)((ulonglong)lVar26 >> 0x20);" (assignment_expression "uVar9 = (uint)((ulonglong)lVar26 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar26 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar26 >> 0x20)" ( (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }" if (parenthesized_expression "((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26))))" ( (binary_expression "(uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))" (parenthesized_expression "(uVar13 < uVar9)" ( (binary_expression "uVar13 < uVar9" identifier < identifier) )) || (parenthesized_expression "((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))" ( (parenthesized_expression "(uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26))" ( (binary_expression "uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)" (binary_expression "uVar9 == uVar13" identifier == identifier) && (parenthesized_expression "((uint)lVar25 < (uint)lVar26)" ( (binary_expression "(uint)lVar25 < (uint)lVar26" (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)lVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) ))) )) (compound_statement "{\n              lVar25 = lVar26;\n            }" { (expression_statement "lVar25 = lVar26;" (assignment_expression "lVar25 = lVar26" identifier = identifier) ;) })) (expression_statement "iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();" (assignment_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))()" identifier = (call_expression "(**(code **)(*(int *)*puVar7 + 0x20))()" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x20))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 0x20)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 0x20)" * (cast_expression "(code **)(*(int *)*puVar7 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0x20)" ( (binary_expression "*(int *)*puVar7 + 0x20" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }" { (if_statement "if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }" if (parenthesized_expression "(local_54[0] != '\0')" ( (binary_expression "local_54[0] != '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }" { (expression_statement "local_54[0] = '\0';" (assignment_expression "local_54[0] = '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar26 = lVar25;" (assignment_expression "lVar26 = lVar25" identifier = identifier) ;) })) }) (else_clause "else {\n              local_54[0] = '\x01';\n            }" else (compound_statement "{\n              local_54[0] = '\x01';\n            }" { (expression_statement "local_54[0] = '\x01';" (assignment_expression "local_54[0] = '\x01'" (subscript_expression "local_54[0]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (expression_statement "iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();" (assignment_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))()" identifier = (call_expression "(**(code **)(*(int *)*puVar7 + 0x20))()" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x20))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 0x20)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 0x20)" * (cast_expression "(code **)(*(int *)*puVar7 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0x20)" ( (binary_expression "*(int *)*puVar7 + 0x20" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;" if (parenthesized_expression "((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))" ( (binary_expression "(iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0)" ( (comma_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0" (assignment_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8)" identifier = (call_expression "(**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x1c))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 0x1c)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 0x1c)" * (cast_expression "(code **)(*(int *)*puVar7 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0x1c)" ( (binary_expression "*(int *)*puVar7 + 0x1c" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar7,8)" ( (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) , number_literal )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0021bb94:\n            puVar7 = puVar7 + 1;" statement_identifier : (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;)) (if_statement "if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;" if (parenthesized_expression "(*(undefined4 **)pTVar16 == puVar7)" ( (binary_expression "*(undefined4 **)pTVar16 == puVar7" (pointer_expression "*(undefined4 **)pTVar16" * (cast_expression "(undefined4 **)pTVar16" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) == identifier) )) (goto_statement "goto LAB_0021c04c;" goto statement_identifier ;)) })) (expression_statement "uVar13 = uVar12;" (assignment_expression "uVar13 = uVar12" identifier = identifier) ;) (if_statement "if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }" if (parenthesized_expression "(lVar26 != 0)" ( (binary_expression "lVar26 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }" { (expression_statement "lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);" (assignment_expression "lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1)" identifier = (binary_expression "lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1)" identifier + (call_expression "CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1)" identifier (argument_list "((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1)" ( (binary_expression "(uint)(uVar12 - 1 < uVar12) + (uVar24 - 1)" (call_expression "(uint)(uVar12 - 1 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 - 1 < uVar12)" ( (binary_expression "uVar12 - 1 < uVar12" (binary_expression "uVar12 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar24 - 1)" ( (binary_expression "uVar24 - 1" identifier - number_literal) ))) , (binary_expression "uVar12 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar13 = (uint)lVar3 & -(int)lVar26;" (assignment_expression "uVar13 = (uint)lVar3 & -(int)lVar26" identifier = (binary_expression "(uint)lVar3 & -(int)lVar26" (cast_expression "(uint)lVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar26" - (cast_expression "(int)lVar26" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);" (assignment_expression "uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" identifier = (binary_expression "(uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (call_expression "(uint)((ulonglong)lVar3 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (binary_expression "-(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (unary_expression "-(uint)(-(int)lVar26 != 0)" - (call_expression "(uint)(-(int)lVar26 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)lVar26 != 0)" ( (binary_expression "-(int)lVar26 != 0" (unary_expression "-(int)lVar26" - (cast_expression "(int)lVar26" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (cast_expression "(int)((ulonglong)lVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar26 >> 0x20)" ( (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))))) ;) })) (expression_statement "piVar20 = (int *)*puVar7;" (assignment_expression "piVar20 = (int *)*puVar7" identifier = (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }" if (parenthesized_expression "(piVar20[8] < 0)" ( (binary_expression "piVar20[8] < 0" (subscript_expression "piVar20[8]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }" { (if_statement "if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }" if (parenthesized_expression "(-1 < piVar20[8] << 1)" ( (binary_expression "-1 < piVar20[8] << 1" number_literal < (binary_expression "piVar20[8] << 1" (subscript_expression "piVar20[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }" { (labeled_statement "LAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);" statement_identifier : (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29fc" identifier + number_literal) )))) ;)) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "uVar12 = uVar13 + piVar20[5];" (assignment_expression "uVar12 = uVar13 + piVar20[5]" identifier = (binary_expression "uVar13 + piVar20[5]" identifier + (subscript_expression "piVar20[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];" (assignment_expression "uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4]" identifier = (binary_expression "(uint)(uVar12 < uVar13) + uVar24 + piVar20[4]" (binary_expression "(uint)(uVar12 < uVar13) + uVar24" (call_expression "(uint)(uVar12 < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < uVar13)" ( (binary_expression "uVar12 < uVar13" identifier < identifier) ))) + identifier) + (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0021bb94;" goto statement_identifier ;) })) (expression_statement "bVar2 = *(byte *)(piVar20 + 8);" (assignment_expression "bVar2 = *(byte *)(piVar20 + 8)" identifier = (pointer_expression "*(byte *)(piVar20 + 8)" * (cast_expression "(byte *)(piVar20 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20 + 8)" ( (binary_expression "piVar20 + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar20[2] = uVar24;" (assignment_expression "piVar20[2] = uVar24" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar20[3] = uVar13;" (assignment_expression "piVar20[3] = uVar13" (subscript_expression "piVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;" (assignment_expression "*(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80" (pointer_expression "*(byte *)(piVar20 + 8)" * (cast_expression "(byte *)(piVar20 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20 + 8)" ( (binary_expression "piVar20 + 8" identifier + number_literal) )))) = (binary_expression "bVar2 & 0x7f | 0x80" (binary_expression "bVar2 & 0x7f" identifier & number_literal) | number_literal)) ;) (if_statement "if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }" if (parenthesized_expression "(piVar20[8] << 2 < 0)" ( (binary_expression "piVar20[8] << 2 < 0" (binary_expression "piVar20[8] << 2" (subscript_expression "piVar20[8]" identifier [ number_literal ]) << number_literal) < number_literal) )) (compound_statement "{\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d60" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "iVar22 = *piVar20;" (assignment_expression "iVar22 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "piVar20[6] = uVar24;" (assignment_expression "piVar20[6] = uVar24" (subscript_expression "piVar20[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar20[7] = uVar13;" (assignment_expression "piVar20[7] = uVar13" (subscript_expression "piVar20[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;" (assignment_expression "*(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0" (pointer_expression "*(byte *)(piVar20 + 8)" * (cast_expression "(byte *)(piVar20 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20 + 8)" ( (binary_expression "piVar20 + 8" identifier + number_literal) )))) = (binary_expression "bVar2 & 0x5f | 0xa0" (binary_expression "bVar2 & 0x5f" identifier & number_literal) | number_literal)) ;) (if_statement "if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }" if (parenthesized_expression "(-1 < piVar20[8] << 1)" ( (binary_expression "-1 < piVar20[8] << 1" number_literal < (binary_expression "piVar20[8] << 1" (subscript_expression "piVar20[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }" { (expression_statement "(**(code **)(iVar22 + 0x38))(piVar20);" (call_expression "(**(code **)(iVar22 + 0x38))(piVar20)" (parenthesized_expression "(**(code **)(iVar22 + 0x38))" ( (pointer_expression "**(code **)(iVar22 + 0x38)" * (pointer_expression "*(code **)(iVar22 + 0x38)" * (cast_expression "(code **)(iVar22 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x38)" ( (binary_expression "iVar22 + 0x38" identifier + number_literal) ))))) )) (argument_list "(piVar20)" ( identifier ))) ;) (if_statement "if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }" if (parenthesized_expression "(-1 < piVar20[8] << 1)" ( (binary_expression "-1 < piVar20[8] << 1" number_literal < (binary_expression "piVar20[8] << 1" (subscript_expression "piVar20[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d74" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "piVar20 = (int *)*puVar7;" (assignment_expression "piVar20 = (int *)*puVar7" identifier = (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (-1 < piVar20[8] << 1) goto LAB_0021c280;" if (parenthesized_expression "(-1 < piVar20[8] << 1)" ( (binary_expression "-1 < piVar20[8] << 1" number_literal < (binary_expression "piVar20[8] << 1" (subscript_expression "piVar20[8]" identifier [ number_literal ]) << number_literal)) )) (goto_statement "goto LAB_0021c280;" goto statement_identifier ;)) (expression_statement "iVar22 = *piVar20;" (assignment_expression "iVar22 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) })) (expression_statement "bVar2 = *(byte *)(piVar20 + 8);" (assignment_expression "bVar2 = *(byte *)(piVar20 + 8)" identifier = (pointer_expression "*(byte *)(piVar20 + 8)" * (cast_expression "(byte *)(piVar20 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20 + 8)" ( (binary_expression "piVar20 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(piVar20 + 8) = bVar2 & 0x5f;" (assignment_expression "*(byte *)(piVar20 + 8) = bVar2 & 0x5f" (pointer_expression "*(byte *)(piVar20 + 8)" * (cast_expression "(byte *)(piVar20 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20 + 8)" ( (binary_expression "piVar20 + 8" identifier + number_literal) )))) = (binary_expression "bVar2 & 0x5f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar13 + piVar20[5];" (assignment_expression "uVar12 = uVar13 + piVar20[5]" identifier = (binary_expression "uVar13 + piVar20[5]" identifier + (subscript_expression "piVar20[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];" (assignment_expression "uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4]" identifier = (binary_expression "(uint)(uVar12 < uVar13) + uVar24 + piVar20[4]" (binary_expression "(uint)(uVar12 < uVar13) + uVar24" (call_expression "(uint)(uVar12 < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < uVar13)" ( (binary_expression "uVar12 < uVar13" identifier < identifier) ))) + identifier) + (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (if_statement "if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }" if (parenthesized_expression "(-1 < piVar20[8] << 3)" ( (binary_expression "-1 < piVar20[8] << 3" number_literal < (binary_expression "piVar20[8] << 3" (subscript_expression "piVar20[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }" { (expression_statement "*(byte *)(piVar20 + 8) = bVar2 & 0x1f;" (assignment_expression "*(byte *)(piVar20 + 8) = bVar2 & 0x1f" (pointer_expression "*(byte *)(piVar20 + 8)" * (cast_expression "(byte *)(piVar20 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20 + 8)" ( (binary_expression "piVar20 + 8" identifier + number_literal) )))) = (binary_expression "bVar2 & 0x1f" identifier & number_literal)) ;) })) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(iVar22 + 0x3c))(piVar20);" (call_expression "(**(code **)(iVar22 + 0x3c))(piVar20)" (parenthesized_expression "(**(code **)(iVar22 + 0x3c))" ( (pointer_expression "**(code **)(iVar22 + 0x3c)" * (pointer_expression "*(code **)(iVar22 + 0x3c)" * (cast_expression "(code **)(iVar22 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x3c)" ( (binary_expression "iVar22 + 0x3c" identifier + number_literal) ))))) )) (argument_list "(piVar20)" ( identifier ))) ;) }) while (parenthesized_expression "(*(undefined4 **)pTVar16 != puVar7)" ( (binary_expression "*(undefined4 **)pTVar16 != puVar7" (pointer_expression "*(undefined4 **)pTVar16" * (cast_expression "(undefined4 **)pTVar16" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) != identifier) )) ;) })) (labeled_statement "LAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;" statement_identifier : (expression_statement "pTVar16 = pTVar16 + 0xc;" (assignment_expression "pTVar16 = pTVar16 + 0xc" identifier = (binary_expression "pTVar16 + 0xc" identifier + number_literal)) ;)) }) while (parenthesized_expression "(param_1 + 0x100 != pTVar16)" ( (binary_expression "param_1 + 0x100 != pTVar16" (binary_expression "param_1 + 0x100" identifier + number_literal) != identifier) )) ;)) (labeled_statement "LAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;" statement_identifier : (expression_statement "uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;" (assignment_expression "uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25" identifier = (binary_expression "(uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25" (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) | (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;)) (labeled_statement "LAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;" statement_identifier : (expression_statement "uVar12 = *(uint *)param_6 + uVar12;" (assignment_expression "uVar12 = *(uint *)param_6 + uVar12" identifier = (binary_expression "*(uint *)param_6 + uVar12" (pointer_expression "*(uint *)param_6" * (cast_expression "(uint *)param_6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + identifier)) ;)) (expression_statement "uVar24 = (uVar12 < *(uint *)param_6) + uVar24;" (assignment_expression "uVar24 = (uVar12 < *(uint *)param_6) + uVar24" identifier = (binary_expression "(uVar12 < *(uint *)param_6) + uVar24" (parenthesized_expression "(uVar12 < *(uint *)param_6)" ( (binary_expression "uVar12 < *(uint *)param_6" identifier < (pointer_expression "*(uint *)param_6" * (cast_expression "(uint *)param_6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) + identifier)) ;) (expression_statement "uVar9 = uVar24;" (assignment_expression "uVar9 = uVar24" identifier = identifier) ;) (expression_statement "uVar10 = uVar12;" (assignment_expression "uVar10 = uVar12" identifier = identifier) ;) (if_statement "if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }" { (expression_statement "lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);" (assignment_expression "lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12)" identifier = (binary_expression "lVar25 + -1 + CONCAT44(uVar24,uVar12)" (binary_expression "lVar25 + -1" identifier + number_literal) + (call_expression "CONCAT44(uVar24,uVar12)" identifier (argument_list "(uVar24,uVar12)" ( identifier , identifier ))))) ;) (expression_statement "uVar10 = (uint)lVar26 & -(int)lVar25;" (assignment_expression "uVar10 = (uint)lVar26 & -(int)lVar25" identifier = (binary_expression "(uint)lVar26 & -(int)lVar25" (cast_expression "(uint)lVar26" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar25" - (cast_expression "(int)lVar25" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20)" identifier = (binary_expression "(uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20)" (call_expression "(uint)((ulonglong)lVar26 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar26 >> 0x20)" ( (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (binary_expression "-(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20)" (unary_expression "-(uint)(-(int)lVar25 != 0)" - (call_expression "(uint)(-(int)lVar25 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)lVar25 != 0)" ( (binary_expression "-(int)lVar25 != 0" (unary_expression "-(int)lVar25" - (cast_expression "(int)lVar25" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (cast_expression "(int)((ulonglong)lVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))))) ;) (expression_statement "lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);" (assignment_expression "lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12)" identifier = (call_expression "CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12)" identifier (argument_list "((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12)" ( (binary_expression "(uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12)" (parenthesized_expression "(uVar9 - uVar24)" ( (binary_expression "uVar9 - uVar24" identifier - identifier) )) - (call_expression "(uint)(uVar10 < uVar10 - uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar10 - uVar12)" ( (binary_expression "uVar10 < uVar10 - uVar12" identifier < (binary_expression "uVar10 - uVar12" identifier - identifier)) )))) , (binary_expression "uVar10 - uVar12" identifier - identifier) )))) ;) })) (expression_statement "puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);" (assignment_expression "puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20)" identifier = (cast_expression "(undefined1 *)((ulonglong)lVar25 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_44 = (int)lVar25;" (assignment_expression "local_44 = (int)lVar25" identifier = (cast_expression "(int)lVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar22 = *local_3c;" (assignment_expression "iVar22 = *local_3c" identifier = (pointer_expression "*local_3c" * identifier)) ;) (expression_statement "*(undefined1 *)param_7 = 1;" (assignment_expression "*(undefined1 *)param_7 = 1" (pointer_expression "*(undefined1 *)param_7" * (cast_expression "(undefined1 *)param_7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "iVar17 = *(int *)(iVar22 + 0xc);" (assignment_expression "iVar17 = *(int *)(iVar22 + 0xc)" identifier = (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2998" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "iVar22 = *(int *)(iVar22 + 8);" (assignment_expression "iVar22 = *(int *)(iVar22 + 8)" identifier = (pointer_expression "*(int *)(iVar22 + 8)" * (cast_expression "(int *)(iVar22 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }" { (expression_statement "iVar18 = *(int *)(iVar22 + 0x5228);" (assignment_expression "iVar18 = *(int *)(iVar22 + 0x5228)" identifier = (pointer_expression "*(int *)(iVar22 + 0x5228)" * (cast_expression "(int *)(iVar22 + 0x5228)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x5228)" ( (binary_expression "iVar22 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = *(undefined1 **)(iVar22 + 0x522c);" (assignment_expression "puVar23 = *(undefined1 **)(iVar22 + 0x522c)" identifier = (pointer_expression "*(undefined1 **)(iVar22 + 0x522c)" * (cast_expression "(undefined1 **)(iVar22 + 0x522c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x522c)" ( (binary_expression "iVar22 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }" if (parenthesized_expression "(iVar18 == 0 && puVar23 == (undefined1 *)0x0)" ( (binary_expression "iVar18 == 0 && puVar23 == (undefined1 *)0x0" (binary_expression "iVar18 == 0" identifier == number_literal) && (binary_expression "puVar23 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }" { (expression_statement "iVar22 = *(int *)(iVar17 + 4);" (assignment_expression "iVar22 = *(int *)(iVar17 + 4)" identifier = (pointer_expression "*(int *)(iVar17 + 4)" * (cast_expression "(int *)(iVar17 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(iVar22 + 0x20);" (assignment_expression "iVar18 = *(int *)(iVar22 + 0x20)" identifier = (pointer_expression "*(int *)(iVar22 + 0x20)" * (cast_expression "(int *)(iVar22 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = *(undefined1 **)(iVar22 + 0x24);" (assignment_expression "puVar23 = *(undefined1 **)(iVar22 + 0x24)" identifier = (pointer_expression "*(undefined1 **)(iVar22 + 0x24)" * (cast_expression "(undefined1 **)(iVar22 + 0x24)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x24)" ( (binary_expression "iVar22 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);" (assignment_expression "uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9,uVar10,iVar18,puVar23)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar15 = local_34;" (assignment_expression "puVar15 = local_34" identifier = identifier) ;) (expression_statement "puVar19 = puVar23 + -(int)uVar27;" (assignment_expression "puVar19 = puVar23 + -(int)uVar27" identifier = (binary_expression "puVar23 + -(int)uVar27" identifier + (unary_expression "-(int)uVar27" - (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);" (assignment_expression "iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19)" identifier = (binary_expression "(iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19)" (parenthesized_expression "(iVar18 - (int)((ulonglong)uVar27 >> 0x20))" ( (binary_expression "iVar18 - (int)((ulonglong)uVar27 >> 0x20)" identifier - (cast_expression "(int)((ulonglong)uVar27 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" ( (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) - (call_expression "(uint)(puVar23 < puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 < puVar19)" ( (binary_expression "puVar23 < puVar19" identifier < identifier) ))))) ;) (expression_statement "local_30 = local_38;" (assignment_expression "local_30 = local_38" identifier = identifier) ;) (expression_statement "uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);" (assignment_expression "uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38,local_34,iVar18,puVar23)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar12 = local_30;" (assignment_expression "uVar12 = local_30" identifier = identifier) ;) (if_statement "if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }" if (parenthesized_expression "(CONCAT44(iVar22,puVar19) < uVar28)" ( (binary_expression "CONCAT44(iVar22,puVar19) < uVar28" (call_expression "CONCAT44(iVar22,puVar19)" identifier (argument_list "(iVar22,puVar19)" ( identifier , identifier ))) < identifier) )) (compound_statement "{\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }" { (expression_statement "puVar15 = puVar23 + (int)local_34;" (assignment_expression "puVar15 = puVar23 + (int)local_34" identifier = (binary_expression "puVar23 + (int)local_34" identifier + (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;" (assignment_expression "local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38" identifier = (binary_expression "(uint)(puVar15 < local_34) + iVar18 + local_38" (binary_expression "(uint)(puVar15 < local_34) + iVar18" (call_expression "(uint)(puVar15 < local_34)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar15 < local_34)" ( (binary_expression "puVar15 < local_34" identifier < identifier) ))) + identifier) + identifier)) ;) (expression_statement "uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);" (assignment_expression "uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38,puVar15,iVar18,puVar23)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar12 = local_38;" (assignment_expression "uVar12 = local_38" identifier = identifier) ;) })) (expression_statement "puVar15 = puVar19 + (int)puVar15;" (assignment_expression "puVar15 = puVar19 + (int)puVar15" identifier = (binary_expression "puVar19 + (int)puVar15" identifier + (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar23 = puVar15 + -(int)uVar28;" (assignment_expression "puVar23 = puVar15 + -(int)uVar28" identifier = (binary_expression "puVar15 + -(int)uVar28" identifier + (unary_expression "-(int)uVar28" - (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "param_8[1] = (uint)puVar23;" (assignment_expression "param_8[1] = (uint)puVar23" (subscript_expression "param_8[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);" (assignment_expression "uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23)" identifier = (binary_expression "(((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23)" (parenthesized_expression "(((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20))" ( (binary_expression "((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)" (parenthesized_expression "((uint)(puVar15 < puVar19) + iVar22 + uVar12)" ( (binary_expression "(uint)(puVar15 < puVar19) + iVar22 + uVar12" (binary_expression "(uint)(puVar15 < puVar19) + iVar22" (call_expression "(uint)(puVar15 < puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar15 < puVar19)" ( (binary_expression "puVar15 < puVar19" identifier < identifier) ))) + identifier) + identifier) )) - (cast_expression "(int)(uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar28 >> 0x20)" ( (binary_expression "uVar28 >> 0x20" identifier >> number_literal) )))) )) - (call_expression "(uint)(puVar15 < puVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar15 < puVar23)" ( (binary_expression "puVar15 < puVar23" identifier < identifier) ))))) ;) (expression_statement "puVar15 = puVar23 + -(int)local_4c;" (assignment_expression "puVar15 = puVar23 + -(int)local_4c" identifier = (binary_expression "puVar23 + -(int)local_4c" identifier + (unary_expression "-(int)local_4c" - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "*param_8 = uVar12;" (assignment_expression "*param_8 = uVar12" (pointer_expression "*param_8" * identifier) = identifier) ;) (expression_statement "local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));" (assignment_expression "local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15))" identifier = (binary_expression "local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15))" (binary_expression "local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40)" identifier + (call_expression "(uint)(local_40 + (int)puVar15 < local_40)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_40 + (int)puVar15 < local_40)" ( (binary_expression "local_40 + (int)puVar15 < local_40" (binary_expression "local_40 + (int)puVar15" identifier + (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) < identifier) )))) + (parenthesized_expression "((uVar12 - local_50) - (uint)(puVar23 < puVar15))" ( (binary_expression "(uVar12 - local_50) - (uint)(puVar23 < puVar15)" (parenthesized_expression "(uVar12 - local_50)" ( (binary_expression "uVar12 - local_50" identifier - identifier) )) - (call_expression "(uint)(puVar23 < puVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 < puVar15)" ( (binary_expression "puVar23 < puVar15" identifier < identifier) )))) )))) ;) (expression_statement "local_50 = uVar12;" (assignment_expression "local_50 = uVar12" identifier = identifier) ;) (expression_statement "local_4c = puVar23;" (assignment_expression "local_4c = puVar23" identifier = identifier) ;) (expression_statement "local_40 = local_40 + (int)puVar15;" (assignment_expression "local_40 = local_40 + (int)puVar15" identifier = (binary_expression "local_40 + (int)puVar15" identifier + (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_0021b72c;" goto statement_identifier ;) })) }))) (expression_statement "FUN_00212c40();" (call_expression "FUN_00212c40()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0021c388:\n                    /* try { // try from 0021c39c to 0021c3db has its CatchHandler @ 0021c3dc */\n  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);" statement_identifier : comment (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" identifier + number_literal) )))) ;)) (return_statement "return uVar11;" return identifier ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0021c208) */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original prototype: uint64_t set_section_addresses(Output_segment * this, Target * target,\n   Layout * layout, bool reset, uint64_t addr, uint * increase_relro, bool * has_relro, off_t *\n   poff, uint * pshndx) */\n\nuint64_t __thiscall\ngold::Output_segment::set_section_addresses\n          (Output_segment *this,Target *target,Layout *layout,bool reset,uint64_t addr,\n          uint *increase_relro,bool *has_relro,off_t *poff,uint *pshndx)\n\n{\n  byte bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  undefined3 extraout_var;\n  bool bVar8;\n  Layout *pLVar4;\n  pointer ppOVar5;\n  Output_data *pOVar6;\n  bool *pbVar7;\n  int iVar9;\n  Target *this_00;\n  uint uVar10;\n  Target *pTVar11;\n  uint *puVar12;\n  undefined *puVar13;\n  iterator __position;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  Output_data *pOVar17;\n  undefined3 in_register_0000001c;\n  Output_segment *pOVar18;\n  pointer ppOVar19;\n  pointer ppOVar20;\n  Layout *unaff_s0;\n  Layout *pLVar21;\n  Output_segment *unaff_s1;\n  Output_data *unaff_s2;\n  bool *unaff_s4;\n  uint *unaff_s5;\n  Layout *unaff_s6;\n  pointer *pppOVar22;\n  pointer *pppOVar23;\n  code *pcVar24;\n  Target_info *pTVar25;\n  int iVar26;\n  uint64_t uVar27;\n  longlong lVar28;\n  uint64_t uVar29;\n  longlong lVar30;\n  undefined8 uVar31;\n  ulonglong uVar32;\n  undefined1 *local_90 [2];\n  undefined1 auStack_88 [16];\n  string fill_data;\n  off_t foff;\n  Output_data *local_58;\n  bool in_tls;\n  bool *local_50;\n  Layout *local_4c;\n  code *local_48;\n  int local_44;\n  uint *local_40;\n  int *local_3c;\n  int local_38;\n  Output_data *local_34;\n  int local_30;\n  \n  uVar27 = CONCAT44(unaff_s6,unaff_s4);\n  pOVar6 = (Output_data *)CONCAT31(in_register_0000001c,reset);\n  local_40 = addr._4_4_;\n  local_48 = addr._0_4_;\n  __position._M_current = (Output_data **)0x10e4;\n  pLVar21 = unaff_s0;\n  if (this->type_ != 1) goto LAB_0021c29c;\n  local_50 = *(bool **)poff;\n  in_tls = false;\n  local_3c = (int *)PTR_parameters_004c19b4;\n  local_4c = *(Layout **)((int)poff + 4);\n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0021c33c:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n               PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    this = unaff_s1;\nLAB_0021c358:\n    __position._M_current = (Output_data **)0x1131;\n    pLVar21 = unaff_s0;\n    unaff_s1 = this;\n    goto LAB_0021c29c;\n  }\n  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) != '\0') &&\n     (bVar8 = is_first_section_relro(this), CONCAT31(extraout_var,bVar8) != 0)) {\n    if ((*(int *)&this->field_0x1a0 << 1 < 0) &&\n       (unaff_s5 = (uint *)0x0, pOVar6 == (Output_data *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *(int *)poff;\n    pppOVar22 = &this->output_lists_[0].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n    lVar30 = 0;\n    unaff_s2 = (Output_data *)0x0;\n    local_34 = *(Output_data **)((int)poff + 4);\n    unaff_s0 = (Layout *)0x0;\n    pppOVar23 = &this->output_lists_[0x15].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\nLAB_0021bac4:\n    do {\n      unaff_s1 = (Output_segment *)((_Vector_impl *)(pppOVar22 + -1))->_M_start;\n      if (unaff_s1 != (Output_segment *)*pppOVar22) {\n        do {\n          while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }\n          pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);\n          pLVar21 = unaff_s0;\n          if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }\n          uVar27 = CONCAT44(pppOVar22,unaff_s4);\n          ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;\n          if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          ppOVar5[2] = unaff_s2;\n          ppOVar5[3] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;\n          if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }\n          pOVar17 = *ppOVar5;\n          ppOVar5[6] = unaff_s2;\n          ppOVar5[7] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;\n          if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;\n          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n          unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n          if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }\n          unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;\n          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);\n        } while ((Output_segment *)*pppOVar22 != unaff_s1);\n      }\nLAB_0021c04c:\n      pppOVar22 = pppOVar22 + 3;\n    } while (pppOVar23 != pppOVar22);\nLAB_0021c058:\n    uVar14 = (uint)((ulonglong)lVar30 >> 0x20) | (uint)lVar30;\nLAB_0021c05c:\n    uVar27 = CONCAT44(pppOVar22,unaff_s4);\n    uVar16 = (int)&unaff_s0->number_of_input_files_ + *increase_relro;\n    pTVar11 = (Target *)((int)&unaff_s2->_vptr_Output_data + (uint)(uVar16 < *increase_relro));\n    this_00 = pTVar11;\n    uVar10 = uVar16;\n    if (uVar14 != 0) {\n      lVar28 = lVar30 + -1 + CONCAT44(pTVar11,uVar16);\n      uVar10 = (uint)lVar28 & -(int)lVar30;\n      this_00 = (Target *)\n                ((uint)((ulonglong)lVar28 >> 0x20) &\n                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20));\n      lVar30 = CONCAT44((int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11),\n                        uVar10 - uVar16);\n    }\n    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n    local_44 = (int)lVar30;\n    iVar15 = *local_3c;\n    *has_relro = true;\n    iVar9 = *(int *)(iVar15 + 0xc);\n    pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;\n    if (iVar9 != 0) {\n      iVar15 = *(int *)(iVar15 + 8);\n      if (iVar15 != 0) {\n        iVar26 = *(int *)(iVar15 + 0x5228);\n        unaff_s6 = *(Layout **)(iVar15 + 0x522c);\n        if (iVar26 == 0 && unaff_s6 == (Layout *)0x0) {\n          iVar15 = *(int *)(iVar9 + 4);\n          iVar26 = *(int *)(iVar15 + 0x20);\n          unaff_s6 = *(Layout **)(iVar15 + 0x24);\n        }\n        uVar31 = (*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6);\n        unaff_s2 = local_34;\n        unaff_s0 = (Layout *)((int)unaff_s6 - (int)uVar31);\n        unaff_s4 = (bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0));\n        local_30 = local_38;\n        uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6);\n        iVar15 = local_30;\n        if (CONCAT44(unaff_s4,unaff_s0) < uVar32) {\n          unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);\n          local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;\n          uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);\n          iVar15 = local_38;\n        }\n        pLVar4 = (Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2);\n        pLVar21 = (Layout *)((int)pLVar4 - (int)uVar32);\n        *(Layout **)((int)poff + 4) = pLVar21;\n        pbVar7 = unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +\n                 iVar15;\n        *(bool **)poff = pbVar7;\n        puVar12 = (uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c));\n        local_48 = local_48 +\n                   (int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50));\n        local_50 = pbVar7;\n        local_4c = pLVar21;\n        local_40 = puVar12;\n        goto LAB_0021b72c;\n      }\n      goto LAB_0021c37c;\n    }\nLAB_0021c324:\n    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n    local_44 = (int)lVar30;\n    (*pcVar24)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n               PTR_s_in_a_linker_script_004c191c + -0x2998);\n    unaff_s1 = this;\n    goto LAB_0021c33c;\n  }\n  unaff_s5 = (uint *)0x0;\n  local_44 = 0;\nLAB_0021b72c:\n  if ((pOVar6 == (Output_data *)0x0) && (*(int *)&this->field_0x1a0 << 1 < 0)) {\nLAB_0021ba3c:\n    uVar27 = CONCAT44(unaff_s6,unaff_s4);\n    if (*(code **)&this->paddr_ == local_48) {\n      __position._M_current = (Output_data **)0x1131;\n      pLVar21 = unaff_s0;\n      unaff_s1 = this;\n      if (*(uint **)((int)&this->paddr_ + 4) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)&this->vaddr_;\n      local_40 = *(uint **)((int)&this->vaddr_ + 4);\n      goto LAB_0021b768;\n    }\n    goto LAB_0021c358;\n  }\n  bVar1 = this->field_0x1a0;\n  *(code **)&this->vaddr_ = local_48;\n  *(uint **)((int)&this->vaddr_ + 4) = local_40;\n  *(code **)&this->paddr_ = local_48;\n  *(uint **)((int)&this->paddr_ + 4) = local_40;\n  this->field_0x1a0 = bVar1 & 0xbf | 0x40;\nLAB_0021b768:\n  uVar27 = CONCAT44(local_48,local_40);\n  local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n  unaff_s4 = &in_tls;\n  ppOVar5 = (pointer)&foff;\n  in_tls = false;\n  *(bool **)&this->offset_ = local_50;\n  *(Layout **)((int)&this->offset_ + 4) = local_4c;\n  foff._0_4_ = *(Layout **)poff;\n  foff._4_4_ = *(Output_data **)((int)poff + 4);\n  pppOVar22 = (pointer *)0x0;\n  pOVar18 = this;\n  local_40 = unaff_s5;\n  while( true ) {\n    uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27,poff,ppOVar5,pshndx,unaff_s4);\n    unaff_s2 = foff._4_4_;\n    pLVar21 = foff._0_4_;\n    if ((*(Layout **)poff != foff._0_4_) || (*(Output_data **)((int)poff + 4) != foff._4_4_)) {\n      if (pppOVar22 == (pointer *)&DAT_00000011) goto LAB_0021b84c;\n      if ((int)pppOVar22 < 0x1a) goto LAB_0021b834;\n    }\n    *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);\n    *(uint *)&this->filesz_ =\n         (int)foff._0_4_ +\n         (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);\n    pppOVar23 = pppOVar22;\n    if (pppOVar22 == (pointer *)&DAT_0000001c) break;\n    while( true ) {\n      pppOVar22 = (pointer *)((int)pppOVar23 + 1);\n      pOVar18 = (Output_segment *)(this->output_lists_ + (int)((int)pppOVar23 + 1));\n      if (pppOVar22 != (pointer *)&DAT_00000014) break;\n      uVar14 = (uint)*poff + local_44;\n      pOVar17 = (Output_data *)((int)&(foff._4_4_)->_vptr_Output_data + local_44);\n      ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n      *(uint *)((int)poff + 4) = uVar14;\n      foff._0_4_ = (Layout *)\n                   ((int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +\n                   (uint)(pOVar17 < foff._4_4_));\n      *(uint *)poff = (int)local_40 + (uint)(uVar14 < (uint)*poff) + *(int *)poff;\n      if (ppOVar20 == ppOVar19) {\n        *increase_relro = local_44 + *increase_relro;\n      }\n      foff._4_4_ = pOVar17;\n      uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27 + CONCAT44(local_40,local_44),poff,\n                           ppOVar5,pshndx,unaff_s4);\n      if ((foff._0_4_ != *(Layout **)poff) || (foff._4_4_ != *(Output_data **)((int)poff + 4))) {\nLAB_0021b834:\n        pLVar21 = layout;\n        unaff_s1 = this;\n        unaff_s2 = pOVar6;\n        unaff_s5 = pshndx;\n        if ((layout->script_options_->script_sections_).saw_sections_clause_ == false)\n        goto LAB_0021c298;\n      }\nLAB_0021b84c:\n      *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);\n      *(uint *)&this->filesz_ =\n           (int)foff._0_4_ +\n           (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);\n      pppOVar23 = pppOVar22;\n    }\n  }\n  if (in_tls == false) {\n    uVar14 = *(uint *)poff;\n    uVar10 = (uint)*poff;\n  }\n  else {\n    uVar29 = maximum_alignment(layout->tls_segment_);\n    uVar14 = *(uint *)poff;\n    uVar10 = (uint)*poff;\n    if (uVar29 != 0) {\n      lVar30 = uVar29 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1);\n      uVar10 = (uint)lVar30 & -(int)uVar29;\n      uVar14 = (uint)((ulonglong)lVar30 >> 0x20) &\n               -(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20);\n    }\n  }\n  pTVar25 = target->pti_;\n  *(uint *)((int)&this->memsz_ + 4) = uVar10 - (int)local_4c;\n  bVar8 = pTVar25->isolate_execinstr;\n  this_00 = (Target *)((uVar14 - (int)local_50) - (uint)(uVar10 < uVar10 - (int)local_4c));\n  *(Target **)&this->memsz_ = this_00;\n  *(Layout **)poff = pLVar21;\n  *(Output_data **)((int)poff + 4) = unaff_s2;\n  if (bVar8 == false) {\n    return uVar27;\n  }\n  if ((this->flags_ & 1) == 0) {\n    return uVar27;\n  }\n  iVar15 = *(int *)(*local_3c + 8);\n  if (iVar15 != 0) {\n    local_48 = *(code **)(iVar15 + 0x5228);\n    unaff_s5 = *(uint **)(iVar15 + 0x522c);\n    if (local_48 == (code *)0x0 && unaff_s5 == (uint *)0x0) {\n      local_48 = *(code **)&pTVar25->abi_pagesize;\n      unaff_s5 = *(uint **)((int)&pTVar25->abi_pagesize + 4);\n    }\n    pcVar24 = local_48;\n    lVar30 = (*(code *)PTR___umoddi3_004c2428)(local_50,local_4c,local_48,unaff_s5);\n    if (lVar30 != 0) {\n      return uVar27;\n    }\n    lVar30 = (*(code *)PTR___umoddi3_004c2428)(pLVar21,unaff_s2,pcVar24,unaff_s5);\n    if (lVar30 == 0) {\n      return uVar27;\n    }\n    fill_data._M_dataplus._M_p = (pointer)&fill_data.field_2;\n    local_50 = (bool *)((int)unaff_s5 - (int)lVar30);\n    fill_data._M_string_length = 0;\n    fill_data.field_2._M_local_buf[0] = '\0';\n    local_4c = (Layout *)fill_data._M_dataplus._M_p;\n    if (pTVar25->has_code_fill == false) {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_resize_004c22c8)(&fill_data,local_50,0);\n    }\n    else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n      (*target->_vptr_Target[6])(local_90,target);\n      (*(code *)PTR_operator__004c3fbc)(&fill_data,local_90);\n      if (local_90[0] != auStack_88) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n    }\n    pOVar6 = (Output_data *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n    *(undefined4 *)&pOVar6->field_0x24 = 0;\n    pOVar6->field_0x20 = pOVar6->field_0x20 & 7 | 0x50;\n    *(size_type *)((int)&pOVar6->data_size_ + 4) = fill_data._M_string_length;\n    *(undefined4 *)&pOVar6->address_ = 0;\n    pOVar6[1]._vptr_Output_data = (_func_int_varargs **)0x0;\n    puVar3 = PTR_vtable_004c2344;\n    puVar13 = PTR__M_construct<char*>_004c2098;\n    *(undefined4 *)&pOVar6->data_size_ = 0;\n    *(undefined4 *)((int)&pOVar6->offset_ + 4) = 0xffffffff;\n    *(undefined4 *)&pOVar6->offset_ = 0xffffffff;\n    *(undefined4 *)((int)&pOVar6->address_ + 4) = 0;\n    *(undefined4 *)&pOVar6[1].field_0x4 = 0;\n    pOVar6->_vptr_Output_data = (_func_int_varargs **)(puVar3 + 8);\n                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */\n    *(off_t **)&pOVar6[1].address_ = &pOVar6[1].data_size_;\n    (*(code *)puVar13)(&pOVar6[1].address_,fill_data._M_dataplus._M_p,\n                       fill_data._M_dataplus._M_p + fill_data._M_string_length,0);\n    uVar14 = (uint)this->vaddr_;\n    uVar10 = uVar14 + (int)this->memsz_;\n    if (*(int *)&pOVar6->field_0x20 < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n      this_00 = (Target *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (this_00,0x142,PTR_s_in_a_linker_script_004c191c + -0x2d50);\n      goto LAB_0021c37c;\n    }\n    bVar1 = pOVar6->field_0x20;\n    *(uint *)&pOVar6->address_ =\n         (uint)(uVar10 < uVar14) + *(int *)&this->vaddr_ + *(int *)&this->memsz_;\n    *(uint *)((int)&pOVar6->address_ + 4) = uVar10;\n    pOVar6->field_0x20 = bVar1 & 0x7f | 0x80;\n    unaff_s1 = this;\n    ppOVar5 = (pointer)poff;\n    if (*(int *)&pOVar6->field_0x20 << 2 < 0) {\nLAB_0021c2ec:\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d60);\nLAB_0021c308:\n      pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d74);\n      lVar30 = CONCAT44(unaff_s5,local_44);\n      unaff_s0 = pLVar21;\n      this = unaff_s1;\n      poff = (off_t *)ppOVar5;\n      goto LAB_0021c324;\n    }\n    *(Layout **)&pOVar6->offset_ = pLVar21;\n    *(Output_data **)((int)&pOVar6->offset_ + 4) = unaff_s2;\n    pOVar6->field_0x20 = bVar1 & 0x5f | 0xa0;\n    __position._M_current =\n         (layout->relax_output_list_).\n         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n         _M_finish;\n    local_58 = pOVar6;\n    if (__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n        _M_end_of_storage) goto LAB_0021c2b4;\n    *__position._M_current = pOVar6;\n    (layout->relax_output_list_).\n    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish =\n         __position._M_current + 1;\n    goto LAB_0021be94;\n  }\nLAB_0021c37c:\n  Target::abi_pagesize(this_00);\nLAB_0021c388:\n                    /* try { // try from 0021c39c to 0021c3db has its CatchHandler @ 0021c3dc */\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);\n  goto LAB_0021c3a4;\nLAB_0021c298:\n  uVar27 = CONCAT44(pppOVar22,unaff_s4);\n  __position._M_current = (Output_data **)0x115d;\n  poff = (off_t *)ppOVar5;\nLAB_0021c29c:\n  this = unaff_s1;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,__position._M_current,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);\nLAB_0021c2b4:\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n  std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n  _M_realloc_insert<gold::Output_data*_const&>(&layout->relax_output_list_,__position,&local_58);\nLAB_0021be94:\n  pOVar17 = (Output_data *)((int)&unaff_s2->_vptr_Output_data + (int)local_50);\n  pOVar6 = (Output_data *)((int)&pLVar21->number_of_input_files_ + (uint)(pOVar17 < unaff_s2));\n  lVar30 = (*(code *)PTR___umoddi3_004c2428)(pOVar6,pOVar17,local_48,unaff_s5);\n  if (lVar30 != 0) goto LAB_0021c3c0;\n  uVar27 = uVar27 + ZEXT48(local_50);\n  lVar30 = (*(code *)PTR___umoddi3_004c2428)((int)(uVar27 >> 0x20),(int)uVar27,local_48,unaff_s5);\n  if (lVar30 == 0) {\n    iVar15 = *(int *)&this->memsz_;\n    if ((iVar15 == *(int *)&this->filesz_) &&\n       (iVar9 = (int)this->memsz_, iVar9 == (int)this->filesz_)) {\n      pbVar7 = local_50 + iVar9;\n      *(bool **)((int)&this->filesz_ + 4) = pbVar7;\n      iVar15 = iVar15 + (uint)(pbVar7 < local_50);\n      *(bool **)((int)&this->memsz_ + 4) = pbVar7;\n      *(int *)&this->filesz_ = iVar15;\n      *(int *)&this->memsz_ = iVar15;\n      *(Output_data **)poff = pOVar6;\n      *(Output_data **)((int)poff + 4) = pOVar17;\n      if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n      return uVar27;\n    }\n    goto LAB_0021c388;\n  }\nLAB_0021c3a4:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);\nLAB_0021c3c0:\n  puVar13 = PTR_s_in_a_linker_script_004c191c + -0x48b4;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar13,0x118c,PTR_s_in_a_linker_script_004c191c + -0x3260);\n                    /* catch() { ... } // from try @ 0021bd48 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c270 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c2c0 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c300 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c374 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c39c with catch @ 0021c3dc */\n  if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  uVar27 = (*(code *)PTR__Unwind_Resume_004c12c8)(puVar13);\n  return uVar27;\n}\n\n" comment comment comment comment comment comment comment comment comment comment (function_definition "uint64_t __thiscall\ngold::Output_segment::set_section_addresses\n          (Output_segment *this,Target *target,Layout *layout,bool reset,uint64_t addr,\n          uint *increase_relro,bool *has_relro,off_t *poff,uint *pshndx)\n\n{\n  byte bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  undefined3 extraout_var;\n  bool bVar8;\n  Layout *pLVar4;\n  pointer ppOVar5;\n  Output_data *pOVar6;\n  bool *pbVar7;\n  int iVar9;\n  Target *this_00;\n  uint uVar10;\n  Target *pTVar11;\n  uint *puVar12;\n  undefined *puVar13;\n  iterator __position;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  Output_data *pOVar17;\n  undefined3 in_register_0000001c;\n  Output_segment *pOVar18;\n  pointer ppOVar19;\n  pointer ppOVar20;\n  Layout *unaff_s0;\n  Layout *pLVar21;\n  Output_segment *unaff_s1;\n  Output_data *unaff_s2;\n  bool *unaff_s4;\n  uint *unaff_s5;\n  Layout *unaff_s6;\n  pointer *pppOVar22;\n  pointer *pppOVar23;\n  code *pcVar24;\n  Target_info *pTVar25;\n  int iVar26;\n  uint64_t uVar27;\n  longlong lVar28;\n  uint64_t uVar29;\n  longlong lVar30;\n  undefined8 uVar31;\n  ulonglong uVar32;\n  undefined1 *local_90 [2];\n  undefined1 auStack_88 [16];\n  string fill_data;\n  off_t foff;\n  Output_data *local_58;\n  bool in_tls;\n  bool *local_50;\n  Layout *local_4c;\n  code *local_48;\n  int local_44;\n  uint *local_40;\n  int *local_3c;\n  int local_38;\n  Output_data *local_34;\n  int local_30;\n  \n  uVar27 = CONCAT44(unaff_s6,unaff_s4);\n  pOVar6 = (Output_data *)CONCAT31(in_register_0000001c,reset);\n  local_40 = addr._4_4_;\n  local_48 = addr._0_4_;\n  __position._M_current = (Output_data **)0x10e4;\n  pLVar21 = unaff_s0;\n  if (this->type_ != 1) goto LAB_0021c29c;\n  local_50 = *(bool **)poff;\n  in_tls = false;\n  local_3c = (int *)PTR_parameters_004c19b4;\n  local_4c = *(Layout **)((int)poff + 4);\n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0021c33c:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n               PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    this = unaff_s1;\nLAB_0021c358:\n    __position._M_current = (Output_data **)0x1131;\n    pLVar21 = unaff_s0;\n    unaff_s1 = this;\n    goto LAB_0021c29c;\n  }\n  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) != '\0') &&\n     (bVar8 = is_first_section_relro(this), CONCAT31(extraout_var,bVar8) != 0)) {\n    if ((*(int *)&this->field_0x1a0 << 1 < 0) &&\n       (unaff_s5 = (uint *)0x0, pOVar6 == (Output_data *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *(int *)poff;\n    pppOVar22 = &this->output_lists_[0].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n    lVar30 = 0;\n    unaff_s2 = (Output_data *)0x0;\n    local_34 = *(Output_data **)((int)poff + 4);\n    unaff_s0 = (Layout *)0x0;\n    pppOVar23 = &this->output_lists_[0x15].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\nLAB_0021bac4:\n    do {\n      unaff_s1 = (Output_segment *)((_Vector_impl *)(pppOVar22 + -1))->_M_start;\n      if (unaff_s1 != (Output_segment *)*pppOVar22) {\n        do {\n          while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }\n          pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);\n          pLVar21 = unaff_s0;\n          if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }\n          uVar27 = CONCAT44(pppOVar22,unaff_s4);\n          ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;\n          if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          ppOVar5[2] = unaff_s2;\n          ppOVar5[3] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;\n          if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }\n          pOVar17 = *ppOVar5;\n          ppOVar5[6] = unaff_s2;\n          ppOVar5[7] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;\n          if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;\n          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n          unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n          if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }\n          unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;\n          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);\n        } while ((Output_segment *)*pppOVar22 != unaff_s1);\n      }\nLAB_0021c04c:\n      pppOVar22 = pppOVar22 + 3;\n    } while (pppOVar23 != pppOVar22);\nLAB_0021c058:\n    uVar14 = (uint)((ulonglong)lVar30 >> 0x20) | (uint)lVar30;\nLAB_0021c05c:\n    uVar27 = CONCAT44(pppOVar22,unaff_s4);\n    uVar16 = (int)&unaff_s0->number_of_input_files_ + *increase_relro;\n    pTVar11 = (Target *)((int)&unaff_s2->_vptr_Output_data + (uint)(uVar16 < *increase_relro));\n    this_00 = pTVar11;\n    uVar10 = uVar16;\n    if (uVar14 != 0) {\n      lVar28 = lVar30 + -1 + CONCAT44(pTVar11,uVar16);\n      uVar10 = (uint)lVar28 & -(int)lVar30;\n      this_00 = (Target *)\n                ((uint)((ulonglong)lVar28 >> 0x20) &\n                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20));\n      lVar30 = CONCAT44((int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11),\n                        uVar10 - uVar16);\n    }\n    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n    local_44 = (int)lVar30;\n    iVar15 = *local_3c;\n    *has_relro = true;\n    iVar9 = *(int *)(iVar15 + 0xc);\n    pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;\n    if (iVar9 != 0) {\n      iVar15 = *(int *)(iVar15 + 8);\n      if (iVar15 != 0) {\n        iVar26 = *(int *)(iVar15 + 0x5228);\n        unaff_s6 = *(Layout **)(iVar15 + 0x522c);\n        if (iVar26 == 0 && unaff_s6 == (Layout *)0x0) {\n          iVar15 = *(int *)(iVar9 + 4);\n          iVar26 = *(int *)(iVar15 + 0x20);\n          unaff_s6 = *(Layout **)(iVar15 + 0x24);\n        }\n        uVar31 = (*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6);\n        unaff_s2 = local_34;\n        unaff_s0 = (Layout *)((int)unaff_s6 - (int)uVar31);\n        unaff_s4 = (bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0));\n        local_30 = local_38;\n        uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6);\n        iVar15 = local_30;\n        if (CONCAT44(unaff_s4,unaff_s0) < uVar32) {\n          unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);\n          local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;\n          uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);\n          iVar15 = local_38;\n        }\n        pLVar4 = (Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2);\n        pLVar21 = (Layout *)((int)pLVar4 - (int)uVar32);\n        *(Layout **)((int)poff + 4) = pLVar21;\n        pbVar7 = unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +\n                 iVar15;\n        *(bool **)poff = pbVar7;\n        puVar12 = (uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c));\n        local_48 = local_48 +\n                   (int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50));\n        local_50 = pbVar7;\n        local_4c = pLVar21;\n        local_40 = puVar12;\n        goto LAB_0021b72c;\n      }\n      goto LAB_0021c37c;\n    }\nLAB_0021c324:\n    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n    local_44 = (int)lVar30;\n    (*pcVar24)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n               PTR_s_in_a_linker_script_004c191c + -0x2998);\n    unaff_s1 = this;\n    goto LAB_0021c33c;\n  }\n  unaff_s5 = (uint *)0x0;\n  local_44 = 0;\nLAB_0021b72c:\n  if ((pOVar6 == (Output_data *)0x0) && (*(int *)&this->field_0x1a0 << 1 < 0)) {\nLAB_0021ba3c:\n    uVar27 = CONCAT44(unaff_s6,unaff_s4);\n    if (*(code **)&this->paddr_ == local_48) {\n      __position._M_current = (Output_data **)0x1131;\n      pLVar21 = unaff_s0;\n      unaff_s1 = this;\n      if (*(uint **)((int)&this->paddr_ + 4) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)&this->vaddr_;\n      local_40 = *(uint **)((int)&this->vaddr_ + 4);\n      goto LAB_0021b768;\n    }\n    goto LAB_0021c358;\n  }\n  bVar1 = this->field_0x1a0;\n  *(code **)&this->vaddr_ = local_48;\n  *(uint **)((int)&this->vaddr_ + 4) = local_40;\n  *(code **)&this->paddr_ = local_48;\n  *(uint **)((int)&this->paddr_ + 4) = local_40;\n  this->field_0x1a0 = bVar1 & 0xbf | 0x40;\nLAB_0021b768:\n  uVar27 = CONCAT44(local_48,local_40);\n  local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n  unaff_s4 = &in_tls;\n  ppOVar5 = (pointer)&foff;\n  in_tls = false;\n  *(bool **)&this->offset_ = local_50;\n  *(Layout **)((int)&this->offset_ + 4) = local_4c;\n  foff._0_4_ = *(Layout **)poff;\n  foff._4_4_ = *(Output_data **)((int)poff + 4);\n  pppOVar22 = (pointer *)0x0;\n  pOVar18 = this;\n  local_40 = unaff_s5;\n  while( true ) {\n    uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27,poff,ppOVar5,pshndx,unaff_s4);\n    unaff_s2 = foff._4_4_;\n    pLVar21 = foff._0_4_;\n    if ((*(Layout **)poff != foff._0_4_) || (*(Output_data **)((int)poff + 4) != foff._4_4_)) {\n      if (pppOVar22 == (pointer *)&DAT_00000011) goto LAB_0021b84c;\n      if ((int)pppOVar22 < 0x1a) goto LAB_0021b834;\n    }\n    *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);\n    *(uint *)&this->filesz_ =\n         (int)foff._0_4_ +\n         (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);\n    pppOVar23 = pppOVar22;\n    if (pppOVar22 == (pointer *)&DAT_0000001c) break;\n    while( true ) {\n      pppOVar22 = (pointer *)((int)pppOVar23 + 1);\n      pOVar18 = (Output_segment *)(this->output_lists_ + (int)((int)pppOVar23 + 1));\n      if (pppOVar22 != (pointer *)&DAT_00000014) break;\n      uVar14 = (uint)*poff + local_44;\n      pOVar17 = (Output_data *)((int)&(foff._4_4_)->_vptr_Output_data + local_44);\n      ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n      *(uint *)((int)poff + 4) = uVar14;\n      foff._0_4_ = (Layout *)\n                   ((int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +\n                   (uint)(pOVar17 < foff._4_4_));\n      *(uint *)poff = (int)local_40 + (uint)(uVar14 < (uint)*poff) + *(int *)poff;\n      if (ppOVar20 == ppOVar19) {\n        *increase_relro = local_44 + *increase_relro;\n      }\n      foff._4_4_ = pOVar17;\n      uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27 + CONCAT44(local_40,local_44),poff,\n                           ppOVar5,pshndx,unaff_s4);\n      if ((foff._0_4_ != *(Layout **)poff) || (foff._4_4_ != *(Output_data **)((int)poff + 4))) {\nLAB_0021b834:\n        pLVar21 = layout;\n        unaff_s1 = this;\n        unaff_s2 = pOVar6;\n        unaff_s5 = pshndx;\n        if ((layout->script_options_->script_sections_).saw_sections_clause_ == false)\n        goto LAB_0021c298;\n      }\nLAB_0021b84c:\n      *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);\n      *(uint *)&this->filesz_ =\n           (int)foff._0_4_ +\n           (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);\n      pppOVar23 = pppOVar22;\n    }\n  }\n  if (in_tls == false) {\n    uVar14 = *(uint *)poff;\n    uVar10 = (uint)*poff;\n  }\n  else {\n    uVar29 = maximum_alignment(layout->tls_segment_);\n    uVar14 = *(uint *)poff;\n    uVar10 = (uint)*poff;\n    if (uVar29 != 0) {\n      lVar30 = uVar29 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1);\n      uVar10 = (uint)lVar30 & -(int)uVar29;\n      uVar14 = (uint)((ulonglong)lVar30 >> 0x20) &\n               -(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20);\n    }\n  }\n  pTVar25 = target->pti_;\n  *(uint *)((int)&this->memsz_ + 4) = uVar10 - (int)local_4c;\n  bVar8 = pTVar25->isolate_execinstr;\n  this_00 = (Target *)((uVar14 - (int)local_50) - (uint)(uVar10 < uVar10 - (int)local_4c));\n  *(Target **)&this->memsz_ = this_00;\n  *(Layout **)poff = pLVar21;\n  *(Output_data **)((int)poff + 4) = unaff_s2;\n  if (bVar8 == false) {\n    return uVar27;\n  }\n  if ((this->flags_ & 1) == 0) {\n    return uVar27;\n  }\n  iVar15 = *(int *)(*local_3c + 8);\n  if (iVar15 != 0) {\n    local_48 = *(code **)(iVar15 + 0x5228);\n    unaff_s5 = *(uint **)(iVar15 + 0x522c);\n    if (local_48 == (code *)0x0 && unaff_s5 == (uint *)0x0) {\n      local_48 = *(code **)&pTVar25->abi_pagesize;\n      unaff_s5 = *(uint **)((int)&pTVar25->abi_pagesize + 4);\n    }\n    pcVar24 = local_48;\n    lVar30 = (*(code *)PTR___umoddi3_004c2428)(local_50,local_4c,local_48,unaff_s5);\n    if (lVar30 != 0) {\n      return uVar27;\n    }\n    lVar30 = (*(code *)PTR___umoddi3_004c2428)(pLVar21,unaff_s2,pcVar24,unaff_s5);\n    if (lVar30 == 0) {\n      return uVar27;\n    }\n    fill_data._M_dataplus._M_p = (pointer)&fill_data.field_2;\n    local_50 = (bool *)((int)unaff_s5 - (int)lVar30);\n    fill_data._M_string_length = 0;\n    fill_data.field_2._M_local_buf[0] = '\0';\n    local_4c = (Layout *)fill_data._M_dataplus._M_p;\n    if (pTVar25->has_code_fill == false) {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_resize_004c22c8)(&fill_data,local_50,0);\n    }\n    else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n      (*target->_vptr_Target[6])(local_90,target);\n      (*(code *)PTR_operator__004c3fbc)(&fill_data,local_90);\n      if (local_90[0] != auStack_88) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n    }\n    pOVar6 = (Output_data *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n    *(undefined4 *)&pOVar6->field_0x24 = 0;\n    pOVar6->field_0x20 = pOVar6->field_0x20 & 7 | 0x50;\n    *(size_type *)((int)&pOVar6->data_size_ + 4) = fill_data._M_string_length;\n    *(undefined4 *)&pOVar6->address_ = 0;\n    pOVar6[1]._vptr_Output_data = (_func_int_varargs **)0x0;\n    puVar3 = PTR_vtable_004c2344;\n    puVar13 = PTR__M_construct<char*>_004c2098;\n    *(undefined4 *)&pOVar6->data_size_ = 0;\n    *(undefined4 *)((int)&pOVar6->offset_ + 4) = 0xffffffff;\n    *(undefined4 *)&pOVar6->offset_ = 0xffffffff;\n    *(undefined4 *)((int)&pOVar6->address_ + 4) = 0;\n    *(undefined4 *)&pOVar6[1].field_0x4 = 0;\n    pOVar6->_vptr_Output_data = (_func_int_varargs **)(puVar3 + 8);\n                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */\n    *(off_t **)&pOVar6[1].address_ = &pOVar6[1].data_size_;\n    (*(code *)puVar13)(&pOVar6[1].address_,fill_data._M_dataplus._M_p,\n                       fill_data._M_dataplus._M_p + fill_data._M_string_length,0);\n    uVar14 = (uint)this->vaddr_;\n    uVar10 = uVar14 + (int)this->memsz_;\n    if (*(int *)&pOVar6->field_0x20 < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n      this_00 = (Target *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (this_00,0x142,PTR_s_in_a_linker_script_004c191c + -0x2d50);\n      goto LAB_0021c37c;\n    }\n    bVar1 = pOVar6->field_0x20;\n    *(uint *)&pOVar6->address_ =\n         (uint)(uVar10 < uVar14) + *(int *)&this->vaddr_ + *(int *)&this->memsz_;\n    *(uint *)((int)&pOVar6->address_ + 4) = uVar10;\n    pOVar6->field_0x20 = bVar1 & 0x7f | 0x80;\n    unaff_s1 = this;\n    ppOVar5 = (pointer)poff;\n    if (*(int *)&pOVar6->field_0x20 << 2 < 0) {\nLAB_0021c2ec:\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d60);\nLAB_0021c308:\n      pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d74);\n      lVar30 = CONCAT44(unaff_s5,local_44);\n      unaff_s0 = pLVar21;\n      this = unaff_s1;\n      poff = (off_t *)ppOVar5;\n      goto LAB_0021c324;\n    }\n    *(Layout **)&pOVar6->offset_ = pLVar21;\n    *(Output_data **)((int)&pOVar6->offset_ + 4) = unaff_s2;\n    pOVar6->field_0x20 = bVar1 & 0x5f | 0xa0;\n    __position._M_current =\n         (layout->relax_output_list_).\n         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n         _M_finish;\n    local_58 = pOVar6;\n    if (__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n        _M_end_of_storage) goto LAB_0021c2b4;\n    *__position._M_current = pOVar6;\n    (layout->relax_output_list_).\n    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish =\n         __position._M_current + 1;\n    goto LAB_0021be94;\n  }\nLAB_0021c37c:\n  Target::abi_pagesize(this_00);\nLAB_0021c388:\n                    /* try { // try from 0021c39c to 0021c3db has its CatchHandler @ 0021c3dc */\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);\n  goto LAB_0021c3a4;\nLAB_0021c298:\n  uVar27 = CONCAT44(pppOVar22,unaff_s4);\n  __position._M_current = (Output_data **)0x115d;\n  poff = (off_t *)ppOVar5;\nLAB_0021c29c:\n  this = unaff_s1;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,__position._M_current,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);\nLAB_0021c2b4:\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n  std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n  _M_realloc_insert<gold::Output_data*_const&>(&layout->relax_output_list_,__position,&local_58);\nLAB_0021be94:\n  pOVar17 = (Output_data *)((int)&unaff_s2->_vptr_Output_data + (int)local_50);\n  pOVar6 = (Output_data *)((int)&pLVar21->number_of_input_files_ + (uint)(pOVar17 < unaff_s2));\n  lVar30 = (*(code *)PTR___umoddi3_004c2428)(pOVar6,pOVar17,local_48,unaff_s5);\n  if (lVar30 != 0) goto LAB_0021c3c0;\n  uVar27 = uVar27 + ZEXT48(local_50);\n  lVar30 = (*(code *)PTR___umoddi3_004c2428)((int)(uVar27 >> 0x20),(int)uVar27,local_48,unaff_s5);\n  if (lVar30 == 0) {\n    iVar15 = *(int *)&this->memsz_;\n    if ((iVar15 == *(int *)&this->filesz_) &&\n       (iVar9 = (int)this->memsz_, iVar9 == (int)this->filesz_)) {\n      pbVar7 = local_50 + iVar9;\n      *(bool **)((int)&this->filesz_ + 4) = pbVar7;\n      iVar15 = iVar15 + (uint)(pbVar7 < local_50);\n      *(bool **)((int)&this->memsz_ + 4) = pbVar7;\n      *(int *)&this->filesz_ = iVar15;\n      *(int *)&this->memsz_ = iVar15;\n      *(Output_data **)poff = pOVar6;\n      *(Output_data **)((int)poff + 4) = pOVar17;\n      if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n      return uVar27;\n    }\n    goto LAB_0021c388;\n  }\nLAB_0021c3a4:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);\nLAB_0021c3c0:\n  puVar13 = PTR_s_in_a_linker_script_004c191c + -0x48b4;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar13,0x118c,PTR_s_in_a_linker_script_004c191c + -0x3260);\n                    /* catch() { ... } // from try @ 0021bd48 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c270 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c2c0 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c300 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c374 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c39c with catch @ 0021c3dc */\n  if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  uVar27 = (*(code *)PTR__Unwind_Resume_004c12c8)(puVar13);\n  return uVar27;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_segment::" identifier : : identifier : :) (function_declarator "set_section_addresses\n          (Output_segment *this,Target *target,Layout *layout,bool reset,uint64_t addr,\n          uint *increase_relro,bool *has_relro,off_t *poff,uint *pshndx)" identifier (parameter_list "(Output_segment *this,Target *target,Layout *layout,bool reset,uint64_t addr,\n          uint *increase_relro,bool *has_relro,off_t *poff,uint *pshndx)" ( (parameter_declaration "Output_segment *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Target *target" type_identifier (pointer_declarator "*target" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "bool reset" primitive_type identifier) , (parameter_declaration "uint64_t addr" primitive_type identifier) , (parameter_declaration "uint *increase_relro" type_identifier (pointer_declarator "*increase_relro" * identifier)) , (parameter_declaration "bool *has_relro" primitive_type (pointer_declarator "*has_relro" * identifier)) , (parameter_declaration "off_t *poff" type_identifier (pointer_declarator "*poff" * identifier)) , (parameter_declaration "uint *pshndx" type_identifier (pointer_declarator "*pshndx" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  longlong lVar2;\n  undefined *puVar3;\n  undefined3 extraout_var;\n  bool bVar8;\n  Layout *pLVar4;\n  pointer ppOVar5;\n  Output_data *pOVar6;\n  bool *pbVar7;\n  int iVar9;\n  Target *this_00;\n  uint uVar10;\n  Target *pTVar11;\n  uint *puVar12;\n  undefined *puVar13;\n  iterator __position;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  Output_data *pOVar17;\n  undefined3 in_register_0000001c;\n  Output_segment *pOVar18;\n  pointer ppOVar19;\n  pointer ppOVar20;\n  Layout *unaff_s0;\n  Layout *pLVar21;\n  Output_segment *unaff_s1;\n  Output_data *unaff_s2;\n  bool *unaff_s4;\n  uint *unaff_s5;\n  Layout *unaff_s6;\n  pointer *pppOVar22;\n  pointer *pppOVar23;\n  code *pcVar24;\n  Target_info *pTVar25;\n  int iVar26;\n  uint64_t uVar27;\n  longlong lVar28;\n  uint64_t uVar29;\n  longlong lVar30;\n  undefined8 uVar31;\n  ulonglong uVar32;\n  undefined1 *local_90 [2];\n  undefined1 auStack_88 [16];\n  string fill_data;\n  off_t foff;\n  Output_data *local_58;\n  bool in_tls;\n  bool *local_50;\n  Layout *local_4c;\n  code *local_48;\n  int local_44;\n  uint *local_40;\n  int *local_3c;\n  int local_38;\n  Output_data *local_34;\n  int local_30;\n  \n  uVar27 = CONCAT44(unaff_s6,unaff_s4);\n  pOVar6 = (Output_data *)CONCAT31(in_register_0000001c,reset);\n  local_40 = addr._4_4_;\n  local_48 = addr._0_4_;\n  __position._M_current = (Output_data **)0x10e4;\n  pLVar21 = unaff_s0;\n  if (this->type_ != 1) goto LAB_0021c29c;\n  local_50 = *(bool **)poff;\n  in_tls = false;\n  local_3c = (int *)PTR_parameters_004c19b4;\n  local_4c = *(Layout **)((int)poff + 4);\n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0021c33c:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n               PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    this = unaff_s1;\nLAB_0021c358:\n    __position._M_current = (Output_data **)0x1131;\n    pLVar21 = unaff_s0;\n    unaff_s1 = this;\n    goto LAB_0021c29c;\n  }\n  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) != '\0') &&\n     (bVar8 = is_first_section_relro(this), CONCAT31(extraout_var,bVar8) != 0)) {\n    if ((*(int *)&this->field_0x1a0 << 1 < 0) &&\n       (unaff_s5 = (uint *)0x0, pOVar6 == (Output_data *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *(int *)poff;\n    pppOVar22 = &this->output_lists_[0].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n    lVar30 = 0;\n    unaff_s2 = (Output_data *)0x0;\n    local_34 = *(Output_data **)((int)poff + 4);\n    unaff_s0 = (Layout *)0x0;\n    pppOVar23 = &this->output_lists_[0x15].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\nLAB_0021bac4:\n    do {\n      unaff_s1 = (Output_segment *)((_Vector_impl *)(pppOVar22 + -1))->_M_start;\n      if (unaff_s1 != (Output_segment *)*pppOVar22) {\n        do {\n          while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }\n          pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);\n          pLVar21 = unaff_s0;\n          if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }\n          uVar27 = CONCAT44(pppOVar22,unaff_s4);\n          ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;\n          if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          ppOVar5[2] = unaff_s2;\n          ppOVar5[3] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;\n          if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }\n          pOVar17 = *ppOVar5;\n          ppOVar5[6] = unaff_s2;\n          ppOVar5[7] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;\n          if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;\n          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n          unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n          if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }\n          unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;\n          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);\n        } while ((Output_segment *)*pppOVar22 != unaff_s1);\n      }\nLAB_0021c04c:\n      pppOVar22 = pppOVar22 + 3;\n    } while (pppOVar23 != pppOVar22);\nLAB_0021c058:\n    uVar14 = (uint)((ulonglong)lVar30 >> 0x20) | (uint)lVar30;\nLAB_0021c05c:\n    uVar27 = CONCAT44(pppOVar22,unaff_s4);\n    uVar16 = (int)&unaff_s0->number_of_input_files_ + *increase_relro;\n    pTVar11 = (Target *)((int)&unaff_s2->_vptr_Output_data + (uint)(uVar16 < *increase_relro));\n    this_00 = pTVar11;\n    uVar10 = uVar16;\n    if (uVar14 != 0) {\n      lVar28 = lVar30 + -1 + CONCAT44(pTVar11,uVar16);\n      uVar10 = (uint)lVar28 & -(int)lVar30;\n      this_00 = (Target *)\n                ((uint)((ulonglong)lVar28 >> 0x20) &\n                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20));\n      lVar30 = CONCAT44((int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11),\n                        uVar10 - uVar16);\n    }\n    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n    local_44 = (int)lVar30;\n    iVar15 = *local_3c;\n    *has_relro = true;\n    iVar9 = *(int *)(iVar15 + 0xc);\n    pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;\n    if (iVar9 != 0) {\n      iVar15 = *(int *)(iVar15 + 8);\n      if (iVar15 != 0) {\n        iVar26 = *(int *)(iVar15 + 0x5228);\n        unaff_s6 = *(Layout **)(iVar15 + 0x522c);\n        if (iVar26 == 0 && unaff_s6 == (Layout *)0x0) {\n          iVar15 = *(int *)(iVar9 + 4);\n          iVar26 = *(int *)(iVar15 + 0x20);\n          unaff_s6 = *(Layout **)(iVar15 + 0x24);\n        }\n        uVar31 = (*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6);\n        unaff_s2 = local_34;\n        unaff_s0 = (Layout *)((int)unaff_s6 - (int)uVar31);\n        unaff_s4 = (bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0));\n        local_30 = local_38;\n        uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6);\n        iVar15 = local_30;\n        if (CONCAT44(unaff_s4,unaff_s0) < uVar32) {\n          unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);\n          local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;\n          uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);\n          iVar15 = local_38;\n        }\n        pLVar4 = (Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2);\n        pLVar21 = (Layout *)((int)pLVar4 - (int)uVar32);\n        *(Layout **)((int)poff + 4) = pLVar21;\n        pbVar7 = unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +\n                 iVar15;\n        *(bool **)poff = pbVar7;\n        puVar12 = (uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c));\n        local_48 = local_48 +\n                   (int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50));\n        local_50 = pbVar7;\n        local_4c = pLVar21;\n        local_40 = puVar12;\n        goto LAB_0021b72c;\n      }\n      goto LAB_0021c37c;\n    }\nLAB_0021c324:\n    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n    local_44 = (int)lVar30;\n    (*pcVar24)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n               PTR_s_in_a_linker_script_004c191c + -0x2998);\n    unaff_s1 = this;\n    goto LAB_0021c33c;\n  }\n  unaff_s5 = (uint *)0x0;\n  local_44 = 0;\nLAB_0021b72c:\n  if ((pOVar6 == (Output_data *)0x0) && (*(int *)&this->field_0x1a0 << 1 < 0)) {\nLAB_0021ba3c:\n    uVar27 = CONCAT44(unaff_s6,unaff_s4);\n    if (*(code **)&this->paddr_ == local_48) {\n      __position._M_current = (Output_data **)0x1131;\n      pLVar21 = unaff_s0;\n      unaff_s1 = this;\n      if (*(uint **)((int)&this->paddr_ + 4) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)&this->vaddr_;\n      local_40 = *(uint **)((int)&this->vaddr_ + 4);\n      goto LAB_0021b768;\n    }\n    goto LAB_0021c358;\n  }\n  bVar1 = this->field_0x1a0;\n  *(code **)&this->vaddr_ = local_48;\n  *(uint **)((int)&this->vaddr_ + 4) = local_40;\n  *(code **)&this->paddr_ = local_48;\n  *(uint **)((int)&this->paddr_ + 4) = local_40;\n  this->field_0x1a0 = bVar1 & 0xbf | 0x40;\nLAB_0021b768:\n  uVar27 = CONCAT44(local_48,local_40);\n  local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n  unaff_s4 = &in_tls;\n  ppOVar5 = (pointer)&foff;\n  in_tls = false;\n  *(bool **)&this->offset_ = local_50;\n  *(Layout **)((int)&this->offset_ + 4) = local_4c;\n  foff._0_4_ = *(Layout **)poff;\n  foff._4_4_ = *(Output_data **)((int)poff + 4);\n  pppOVar22 = (pointer *)0x0;\n  pOVar18 = this;\n  local_40 = unaff_s5;\n  while( true ) {\n    uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27,poff,ppOVar5,pshndx,unaff_s4);\n    unaff_s2 = foff._4_4_;\n    pLVar21 = foff._0_4_;\n    if ((*(Layout **)poff != foff._0_4_) || (*(Output_data **)((int)poff + 4) != foff._4_4_)) {\n      if (pppOVar22 == (pointer *)&DAT_00000011) goto LAB_0021b84c;\n      if ((int)pppOVar22 < 0x1a) goto LAB_0021b834;\n    }\n    *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);\n    *(uint *)&this->filesz_ =\n         (int)foff._0_4_ +\n         (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);\n    pppOVar23 = pppOVar22;\n    if (pppOVar22 == (pointer *)&DAT_0000001c) break;\n    while( true ) {\n      pppOVar22 = (pointer *)((int)pppOVar23 + 1);\n      pOVar18 = (Output_segment *)(this->output_lists_ + (int)((int)pppOVar23 + 1));\n      if (pppOVar22 != (pointer *)&DAT_00000014) break;\n      uVar14 = (uint)*poff + local_44;\n      pOVar17 = (Output_data *)((int)&(foff._4_4_)->_vptr_Output_data + local_44);\n      ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n      *(uint *)((int)poff + 4) = uVar14;\n      foff._0_4_ = (Layout *)\n                   ((int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +\n                   (uint)(pOVar17 < foff._4_4_));\n      *(uint *)poff = (int)local_40 + (uint)(uVar14 < (uint)*poff) + *(int *)poff;\n      if (ppOVar20 == ppOVar19) {\n        *increase_relro = local_44 + *increase_relro;\n      }\n      foff._4_4_ = pOVar17;\n      uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27 + CONCAT44(local_40,local_44),poff,\n                           ppOVar5,pshndx,unaff_s4);\n      if ((foff._0_4_ != *(Layout **)poff) || (foff._4_4_ != *(Output_data **)((int)poff + 4))) {\nLAB_0021b834:\n        pLVar21 = layout;\n        unaff_s1 = this;\n        unaff_s2 = pOVar6;\n        unaff_s5 = pshndx;\n        if ((layout->script_options_->script_sections_).saw_sections_clause_ == false)\n        goto LAB_0021c298;\n      }\nLAB_0021b84c:\n      *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);\n      *(uint *)&this->filesz_ =\n           (int)foff._0_4_ +\n           (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);\n      pppOVar23 = pppOVar22;\n    }\n  }\n  if (in_tls == false) {\n    uVar14 = *(uint *)poff;\n    uVar10 = (uint)*poff;\n  }\n  else {\n    uVar29 = maximum_alignment(layout->tls_segment_);\n    uVar14 = *(uint *)poff;\n    uVar10 = (uint)*poff;\n    if (uVar29 != 0) {\n      lVar30 = uVar29 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1);\n      uVar10 = (uint)lVar30 & -(int)uVar29;\n      uVar14 = (uint)((ulonglong)lVar30 >> 0x20) &\n               -(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20);\n    }\n  }\n  pTVar25 = target->pti_;\n  *(uint *)((int)&this->memsz_ + 4) = uVar10 - (int)local_4c;\n  bVar8 = pTVar25->isolate_execinstr;\n  this_00 = (Target *)((uVar14 - (int)local_50) - (uint)(uVar10 < uVar10 - (int)local_4c));\n  *(Target **)&this->memsz_ = this_00;\n  *(Layout **)poff = pLVar21;\n  *(Output_data **)((int)poff + 4) = unaff_s2;\n  if (bVar8 == false) {\n    return uVar27;\n  }\n  if ((this->flags_ & 1) == 0) {\n    return uVar27;\n  }\n  iVar15 = *(int *)(*local_3c + 8);\n  if (iVar15 != 0) {\n    local_48 = *(code **)(iVar15 + 0x5228);\n    unaff_s5 = *(uint **)(iVar15 + 0x522c);\n    if (local_48 == (code *)0x0 && unaff_s5 == (uint *)0x0) {\n      local_48 = *(code **)&pTVar25->abi_pagesize;\n      unaff_s5 = *(uint **)((int)&pTVar25->abi_pagesize + 4);\n    }\n    pcVar24 = local_48;\n    lVar30 = (*(code *)PTR___umoddi3_004c2428)(local_50,local_4c,local_48,unaff_s5);\n    if (lVar30 != 0) {\n      return uVar27;\n    }\n    lVar30 = (*(code *)PTR___umoddi3_004c2428)(pLVar21,unaff_s2,pcVar24,unaff_s5);\n    if (lVar30 == 0) {\n      return uVar27;\n    }\n    fill_data._M_dataplus._M_p = (pointer)&fill_data.field_2;\n    local_50 = (bool *)((int)unaff_s5 - (int)lVar30);\n    fill_data._M_string_length = 0;\n    fill_data.field_2._M_local_buf[0] = '\0';\n    local_4c = (Layout *)fill_data._M_dataplus._M_p;\n    if (pTVar25->has_code_fill == false) {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_resize_004c22c8)(&fill_data,local_50,0);\n    }\n    else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n      (*target->_vptr_Target[6])(local_90,target);\n      (*(code *)PTR_operator__004c3fbc)(&fill_data,local_90);\n      if (local_90[0] != auStack_88) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n    }\n    pOVar6 = (Output_data *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n    *(undefined4 *)&pOVar6->field_0x24 = 0;\n    pOVar6->field_0x20 = pOVar6->field_0x20 & 7 | 0x50;\n    *(size_type *)((int)&pOVar6->data_size_ + 4) = fill_data._M_string_length;\n    *(undefined4 *)&pOVar6->address_ = 0;\n    pOVar6[1]._vptr_Output_data = (_func_int_varargs **)0x0;\n    puVar3 = PTR_vtable_004c2344;\n    puVar13 = PTR__M_construct<char*>_004c2098;\n    *(undefined4 *)&pOVar6->data_size_ = 0;\n    *(undefined4 *)((int)&pOVar6->offset_ + 4) = 0xffffffff;\n    *(undefined4 *)&pOVar6->offset_ = 0xffffffff;\n    *(undefined4 *)((int)&pOVar6->address_ + 4) = 0;\n    *(undefined4 *)&pOVar6[1].field_0x4 = 0;\n    pOVar6->_vptr_Output_data = (_func_int_varargs **)(puVar3 + 8);\n                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */\n    *(off_t **)&pOVar6[1].address_ = &pOVar6[1].data_size_;\n    (*(code *)puVar13)(&pOVar6[1].address_,fill_data._M_dataplus._M_p,\n                       fill_data._M_dataplus._M_p + fill_data._M_string_length,0);\n    uVar14 = (uint)this->vaddr_;\n    uVar10 = uVar14 + (int)this->memsz_;\n    if (*(int *)&pOVar6->field_0x20 < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n      this_00 = (Target *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (this_00,0x142,PTR_s_in_a_linker_script_004c191c + -0x2d50);\n      goto LAB_0021c37c;\n    }\n    bVar1 = pOVar6->field_0x20;\n    *(uint *)&pOVar6->address_ =\n         (uint)(uVar10 < uVar14) + *(int *)&this->vaddr_ + *(int *)&this->memsz_;\n    *(uint *)((int)&pOVar6->address_ + 4) = uVar10;\n    pOVar6->field_0x20 = bVar1 & 0x7f | 0x80;\n    unaff_s1 = this;\n    ppOVar5 = (pointer)poff;\n    if (*(int *)&pOVar6->field_0x20 << 2 < 0) {\nLAB_0021c2ec:\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d60);\nLAB_0021c308:\n      pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d74);\n      lVar30 = CONCAT44(unaff_s5,local_44);\n      unaff_s0 = pLVar21;\n      this = unaff_s1;\n      poff = (off_t *)ppOVar5;\n      goto LAB_0021c324;\n    }\n    *(Layout **)&pOVar6->offset_ = pLVar21;\n    *(Output_data **)((int)&pOVar6->offset_ + 4) = unaff_s2;\n    pOVar6->field_0x20 = bVar1 & 0x5f | 0xa0;\n    __position._M_current =\n         (layout->relax_output_list_).\n         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n         _M_finish;\n    local_58 = pOVar6;\n    if (__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n        _M_end_of_storage) goto LAB_0021c2b4;\n    *__position._M_current = pOVar6;\n    (layout->relax_output_list_).\n    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish =\n         __position._M_current + 1;\n    goto LAB_0021be94;\n  }\nLAB_0021c37c:\n  Target::abi_pagesize(this_00);\nLAB_0021c388:\n                    /* try { // try from 0021c39c to 0021c3db has its CatchHandler @ 0021c3dc */\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);\n  goto LAB_0021c3a4;\nLAB_0021c298:\n  uVar27 = CONCAT44(pppOVar22,unaff_s4);\n  __position._M_current = (Output_data **)0x115d;\n  poff = (off_t *)ppOVar5;\nLAB_0021c29c:\n  this = unaff_s1;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,__position._M_current,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);\nLAB_0021c2b4:\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n  std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n  _M_realloc_insert<gold::Output_data*_const&>(&layout->relax_output_list_,__position,&local_58);\nLAB_0021be94:\n  pOVar17 = (Output_data *)((int)&unaff_s2->_vptr_Output_data + (int)local_50);\n  pOVar6 = (Output_data *)((int)&pLVar21->number_of_input_files_ + (uint)(pOVar17 < unaff_s2));\n  lVar30 = (*(code *)PTR___umoddi3_004c2428)(pOVar6,pOVar17,local_48,unaff_s5);\n  if (lVar30 != 0) goto LAB_0021c3c0;\n  uVar27 = uVar27 + ZEXT48(local_50);\n  lVar30 = (*(code *)PTR___umoddi3_004c2428)((int)(uVar27 >> 0x20),(int)uVar27,local_48,unaff_s5);\n  if (lVar30 == 0) {\n    iVar15 = *(int *)&this->memsz_;\n    if ((iVar15 == *(int *)&this->filesz_) &&\n       (iVar9 = (int)this->memsz_, iVar9 == (int)this->filesz_)) {\n      pbVar7 = local_50 + iVar9;\n      *(bool **)((int)&this->filesz_ + 4) = pbVar7;\n      iVar15 = iVar15 + (uint)(pbVar7 < local_50);\n      *(bool **)((int)&this->memsz_ + 4) = pbVar7;\n      *(int *)&this->filesz_ = iVar15;\n      *(int *)&this->memsz_ = iVar15;\n      *(Output_data **)poff = pOVar6;\n      *(Output_data **)((int)poff + 4) = pOVar17;\n      if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n      return uVar27;\n    }\n    goto LAB_0021c388;\n  }\nLAB_0021c3a4:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);\nLAB_0021c3c0:\n  puVar13 = PTR_s_in_a_linker_script_004c191c + -0x48b4;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar13,0x118c,PTR_s_in_a_linker_script_004c191c + -0x3260);\n                    /* catch() { ... } // from try @ 0021bd48 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c270 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c2c0 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c300 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c374 with catch @ 0021c3dc\n                       catch() { ... } // from try @ 0021c39c with catch @ 0021c3dc */\n  if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  uVar27 = (*(code *)PTR__Unwind_Resume_004c12c8)(puVar13);\n  return uVar27;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "Layout *pLVar4;" type_identifier (pointer_declarator "*pLVar4" * identifier) ;) (declaration "pointer ppOVar5;" type_identifier identifier ;) (declaration "Output_data *pOVar6;" type_identifier (pointer_declarator "*pOVar6" * identifier) ;) (declaration "bool *pbVar7;" primitive_type (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "Target *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "Target *pTVar11;" type_identifier (pointer_declarator "*pTVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "Output_data *pOVar17;" type_identifier (pointer_declarator "*pOVar17" * identifier) ;) (declaration "undefined3 in_register_0000001c;" type_identifier identifier ;) (declaration "Output_segment *pOVar18;" type_identifier (pointer_declarator "*pOVar18" * identifier) ;) (declaration "pointer ppOVar19;" type_identifier identifier ;) (declaration "pointer ppOVar20;" type_identifier identifier ;) (declaration "Layout *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "Layout *pLVar21;" type_identifier (pointer_declarator "*pLVar21" * identifier) ;) (declaration "Output_segment *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "Output_data *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "bool *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "Layout *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "pointer *pppOVar22;" type_identifier (pointer_declarator "*pppOVar22" * identifier) ;) (declaration "pointer *pppOVar23;" type_identifier (pointer_declarator "*pppOVar23" * identifier) ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "Target_info *pTVar25;" type_identifier (pointer_declarator "*pTVar25" * identifier) ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "uint64_t uVar27;" primitive_type identifier ;) (declaration "longlong lVar28;" type_identifier identifier ;) (declaration "uint64_t uVar29;" primitive_type identifier ;) (declaration "longlong lVar30;" type_identifier identifier ;) (declaration "undefined8 uVar31;" type_identifier identifier ;) (declaration "ulonglong uVar32;" type_identifier identifier ;) (declaration "undefined1 *local_90 [2];" type_identifier (pointer_declarator "*local_90 [2]" * (array_declarator "local_90 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_88 [16];" type_identifier (array_declarator "auStack_88 [16]" identifier [ number_literal ]) ;) (declaration "string fill_data;" type_identifier identifier ;) (declaration "off_t foff;" type_identifier identifier ;) (declaration "Output_data *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "bool in_tls;" primitive_type identifier ;) (declaration "bool *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "Layout *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "code *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "uint *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "int *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "Output_data *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (expression_statement "uVar27 = CONCAT44(unaff_s6,unaff_s4);" (assignment_expression "uVar27 = CONCAT44(unaff_s6,unaff_s4)" identifier = (call_expression "CONCAT44(unaff_s6,unaff_s4)" identifier (argument_list "(unaff_s6,unaff_s4)" ( identifier , identifier )))) ;) (expression_statement "pOVar6 = (Output_data *)CONCAT31(in_register_0000001c,reset);" (assignment_expression "pOVar6 = (Output_data *)CONCAT31(in_register_0000001c,reset)" identifier = (cast_expression "(Output_data *)CONCAT31(in_register_0000001c,reset)" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(in_register_0000001c,reset)" identifier (argument_list "(in_register_0000001c,reset)" ( identifier , identifier ))))) ;) (expression_statement "local_40 = addr._4_4_;" (assignment_expression "local_40 = addr._4_4_" identifier = (field_expression "addr._4_4_" identifier . field_identifier)) ;) (expression_statement "local_48 = addr._0_4_;" (assignment_expression "local_48 = addr._0_4_" identifier = (field_expression "addr._0_4_" identifier . field_identifier)) ;) (expression_statement "__position._M_current = (Output_data **)0x10e4;" (assignment_expression "__position._M_current = (Output_data **)0x10e4" (field_expression "__position._M_current" identifier . field_identifier) = (cast_expression "(Output_data **)0x10e4" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pLVar21 = unaff_s0;" (assignment_expression "pLVar21 = unaff_s0" identifier = identifier) ;) (if_statement "if (this->type_ != 1) goto LAB_0021c29c;" if (parenthesized_expression "(this->type_ != 1)" ( (binary_expression "this->type_ != 1" (field_expression "this->type_" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_0021c29c;" goto statement_identifier ;)) (expression_statement "local_50 = *(bool **)poff;" (assignment_expression "local_50 = *(bool **)poff" identifier = (pointer_expression "*(bool **)poff" * (cast_expression "(bool **)poff" ( (type_descriptor "bool **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "in_tls = false;" (assignment_expression "in_tls = false" identifier = false) ;) (expression_statement "local_3c = (int *)PTR_parameters_004c19b4;" (assignment_expression "local_3c = (int *)PTR_parameters_004c19b4" identifier = (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_4c = *(Layout **)((int)poff + 4);" (assignment_expression "local_4c = *(Layout **)((int)poff + 4)" identifier = (pointer_expression "*(Layout **)((int)poff + 4)" * (cast_expression "(Layout **)((int)poff + 4)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)poff + 4)" ( (binary_expression "(int)poff + 4" (cast_expression "(int)poff" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\nLAB_0021c33c:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n               PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    this = unaff_s1;\nLAB_0021c358:\n    __position._M_current = (Output_data **)0x1131;\n    pLVar21 = unaff_s0;\n    unaff_s1 = this;\n    goto LAB_0021c29c;\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_0021c33c:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n               PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    this = unaff_s1;\nLAB_0021c358:\n    __position._M_current = (Output_data **)0x1131;\n    pLVar21 = unaff_s0;\n    unaff_s1 = this;\n    goto LAB_0021c29c;\n  }" { (labeled_statement "LAB_0021c33c:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n               PTR_s_in_a_linker_script_004c191c + -0x29c4);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n               PTR_s_in_a_linker_script_004c191c + -0x29c4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n               PTR_s_in_a_linker_script_004c191c + -0x29c4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n               PTR_s_in_a_linker_script_004c191c + -0x29c4)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29c4" identifier + number_literal) ))) ;)) (expression_statement "this = unaff_s1;" (assignment_expression "this = unaff_s1" identifier = identifier) ;) (labeled_statement "LAB_0021c358:\n    __position._M_current = (Output_data **)0x1131;" statement_identifier : (expression_statement "__position._M_current = (Output_data **)0x1131;" (assignment_expression "__position._M_current = (Output_data **)0x1131" (field_expression "__position._M_current" identifier . field_identifier) = (cast_expression "(Output_data **)0x1131" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;)) (expression_statement "pLVar21 = unaff_s0;" (assignment_expression "pLVar21 = unaff_s0" identifier = identifier) ;) (expression_statement "unaff_s1 = this;" (assignment_expression "unaff_s1 = this" identifier = identifier) ;) (goto_statement "goto LAB_0021c29c;" goto statement_identifier ;) })) (if_statement "if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) != '\0') &&\n     (bVar8 = is_first_section_relro(this), CONCAT31(extraout_var,bVar8) != 0)) {\n    if ((*(int *)&this->field_0x1a0 << 1 < 0) &&\n       (unaff_s5 = (uint *)0x0, pOVar6 == (Output_data *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *(int *)poff;\n    pppOVar22 = &this->output_lists_[0].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n    lVar30 = 0;\n    unaff_s2 = (Output_data *)0x0;\n    local_34 = *(Output_data **)((int)poff + 4);\n    unaff_s0 = (Layout *)0x0;\n    pppOVar23 = &this->output_lists_[0x15].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\nLAB_0021bac4:\n    do {\n      unaff_s1 = (Output_segment *)((_Vector_impl *)(pppOVar22 + -1))->_M_start;\n      if (unaff_s1 != (Output_segment *)*pppOVar22) {\n        do {\n          while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }\n          pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);\n          pLVar21 = unaff_s0;\n          if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }\n          uVar27 = CONCAT44(pppOVar22,unaff_s4);\n          ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;\n          if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          ppOVar5[2] = unaff_s2;\n          ppOVar5[3] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;\n          if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }\n          pOVar17 = *ppOVar5;\n          ppOVar5[6] = unaff_s2;\n          ppOVar5[7] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;\n          if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;\n          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n          unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n          if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }\n          unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;\n          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);\n        } while ((Output_segment *)*pppOVar22 != unaff_s1);\n      }\nLAB_0021c04c:\n      pppOVar22 = pppOVar22 + 3;\n    } while (pppOVar23 != pppOVar22);\nLAB_0021c058:\n    uVar14 = (uint)((ulonglong)lVar30 >> 0x20) | (uint)lVar30;\nLAB_0021c05c:\n    uVar27 = CONCAT44(pppOVar22,unaff_s4);\n    uVar16 = (int)&unaff_s0->number_of_input_files_ + *increase_relro;\n    pTVar11 = (Target *)((int)&unaff_s2->_vptr_Output_data + (uint)(uVar16 < *increase_relro));\n    this_00 = pTVar11;\n    uVar10 = uVar16;\n    if (uVar14 != 0) {\n      lVar28 = lVar30 + -1 + CONCAT44(pTVar11,uVar16);\n      uVar10 = (uint)lVar28 & -(int)lVar30;\n      this_00 = (Target *)\n                ((uint)((ulonglong)lVar28 >> 0x20) &\n                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20));\n      lVar30 = CONCAT44((int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11),\n                        uVar10 - uVar16);\n    }\n    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n    local_44 = (int)lVar30;\n    iVar15 = *local_3c;\n    *has_relro = true;\n    iVar9 = *(int *)(iVar15 + 0xc);\n    pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;\n    if (iVar9 != 0) {\n      iVar15 = *(int *)(iVar15 + 8);\n      if (iVar15 != 0) {\n        iVar26 = *(int *)(iVar15 + 0x5228);\n        unaff_s6 = *(Layout **)(iVar15 + 0x522c);\n        if (iVar26 == 0 && unaff_s6 == (Layout *)0x0) {\n          iVar15 = *(int *)(iVar9 + 4);\n          iVar26 = *(int *)(iVar15 + 0x20);\n          unaff_s6 = *(Layout **)(iVar15 + 0x24);\n        }\n        uVar31 = (*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6);\n        unaff_s2 = local_34;\n        unaff_s0 = (Layout *)((int)unaff_s6 - (int)uVar31);\n        unaff_s4 = (bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0));\n        local_30 = local_38;\n        uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6);\n        iVar15 = local_30;\n        if (CONCAT44(unaff_s4,unaff_s0) < uVar32) {\n          unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);\n          local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;\n          uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);\n          iVar15 = local_38;\n        }\n        pLVar4 = (Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2);\n        pLVar21 = (Layout *)((int)pLVar4 - (int)uVar32);\n        *(Layout **)((int)poff + 4) = pLVar21;\n        pbVar7 = unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +\n                 iVar15;\n        *(bool **)poff = pbVar7;\n        puVar12 = (uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c));\n        local_48 = local_48 +\n                   (int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50));\n        local_50 = pbVar7;\n        local_4c = pLVar21;\n        local_40 = puVar12;\n        goto LAB_0021b72c;\n      }\n      goto LAB_0021c37c;\n    }\nLAB_0021c324:\n    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n    local_44 = (int)lVar30;\n    (*pcVar24)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n               PTR_s_in_a_linker_script_004c191c + -0x2998);\n    unaff_s1 = this;\n    goto LAB_0021c33c;\n  }" if (parenthesized_expression "((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) != '\0') &&\n     (bVar8 = is_first_section_relro(this), CONCAT31(extraout_var,bVar8) != 0))" ( (binary_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) != '\0') &&\n     (bVar8 = is_first_section_relro(this), CONCAT31(extraout_var,bVar8) != 0)" (parenthesized_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) != '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) != '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9)" * (cast_expression "(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(bVar8 = is_first_section_relro(this), CONCAT31(extraout_var,bVar8) != 0)" ( (comma_expression "bVar8 = is_first_section_relro(this), CONCAT31(extraout_var,bVar8) != 0" (assignment_expression "bVar8 = is_first_section_relro(this)" identifier = (call_expression "is_first_section_relro(this)" identifier (argument_list "(this)" ( identifier )))) , (binary_expression "CONCAT31(extraout_var,bVar8) != 0" (call_expression "CONCAT31(extraout_var,bVar8)" identifier (argument_list "(extraout_var,bVar8)" ( identifier , identifier ))) != number_literal)) ))) )) (compound_statement "{\n    if ((*(int *)&this->field_0x1a0 << 1 < 0) &&\n       (unaff_s5 = (uint *)0x0, pOVar6 == (Output_data *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *(int *)poff;\n    pppOVar22 = &this->output_lists_[0].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n    lVar30 = 0;\n    unaff_s2 = (Output_data *)0x0;\n    local_34 = *(Output_data **)((int)poff + 4);\n    unaff_s0 = (Layout *)0x0;\n    pppOVar23 = &this->output_lists_[0x15].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\nLAB_0021bac4:\n    do {\n      unaff_s1 = (Output_segment *)((_Vector_impl *)(pppOVar22 + -1))->_M_start;\n      if (unaff_s1 != (Output_segment *)*pppOVar22) {\n        do {\n          while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }\n          pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);\n          pLVar21 = unaff_s0;\n          if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }\n          uVar27 = CONCAT44(pppOVar22,unaff_s4);\n          ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;\n          if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          ppOVar5[2] = unaff_s2;\n          ppOVar5[3] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;\n          if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }\n          pOVar17 = *ppOVar5;\n          ppOVar5[6] = unaff_s2;\n          ppOVar5[7] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;\n          if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;\n          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n          unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n          if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }\n          unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;\n          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);\n        } while ((Output_segment *)*pppOVar22 != unaff_s1);\n      }\nLAB_0021c04c:\n      pppOVar22 = pppOVar22 + 3;\n    } while (pppOVar23 != pppOVar22);\nLAB_0021c058:\n    uVar14 = (uint)((ulonglong)lVar30 >> 0x20) | (uint)lVar30;\nLAB_0021c05c:\n    uVar27 = CONCAT44(pppOVar22,unaff_s4);\n    uVar16 = (int)&unaff_s0->number_of_input_files_ + *increase_relro;\n    pTVar11 = (Target *)((int)&unaff_s2->_vptr_Output_data + (uint)(uVar16 < *increase_relro));\n    this_00 = pTVar11;\n    uVar10 = uVar16;\n    if (uVar14 != 0) {\n      lVar28 = lVar30 + -1 + CONCAT44(pTVar11,uVar16);\n      uVar10 = (uint)lVar28 & -(int)lVar30;\n      this_00 = (Target *)\n                ((uint)((ulonglong)lVar28 >> 0x20) &\n                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20));\n      lVar30 = CONCAT44((int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11),\n                        uVar10 - uVar16);\n    }\n    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n    local_44 = (int)lVar30;\n    iVar15 = *local_3c;\n    *has_relro = true;\n    iVar9 = *(int *)(iVar15 + 0xc);\n    pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;\n    if (iVar9 != 0) {\n      iVar15 = *(int *)(iVar15 + 8);\n      if (iVar15 != 0) {\n        iVar26 = *(int *)(iVar15 + 0x5228);\n        unaff_s6 = *(Layout **)(iVar15 + 0x522c);\n        if (iVar26 == 0 && unaff_s6 == (Layout *)0x0) {\n          iVar15 = *(int *)(iVar9 + 4);\n          iVar26 = *(int *)(iVar15 + 0x20);\n          unaff_s6 = *(Layout **)(iVar15 + 0x24);\n        }\n        uVar31 = (*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6);\n        unaff_s2 = local_34;\n        unaff_s0 = (Layout *)((int)unaff_s6 - (int)uVar31);\n        unaff_s4 = (bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0));\n        local_30 = local_38;\n        uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6);\n        iVar15 = local_30;\n        if (CONCAT44(unaff_s4,unaff_s0) < uVar32) {\n          unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);\n          local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;\n          uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);\n          iVar15 = local_38;\n        }\n        pLVar4 = (Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2);\n        pLVar21 = (Layout *)((int)pLVar4 - (int)uVar32);\n        *(Layout **)((int)poff + 4) = pLVar21;\n        pbVar7 = unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +\n                 iVar15;\n        *(bool **)poff = pbVar7;\n        puVar12 = (uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c));\n        local_48 = local_48 +\n                   (int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50));\n        local_50 = pbVar7;\n        local_4c = pLVar21;\n        local_40 = puVar12;\n        goto LAB_0021b72c;\n      }\n      goto LAB_0021c37c;\n    }\nLAB_0021c324:\n    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n    local_44 = (int)lVar30;\n    (*pcVar24)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n               PTR_s_in_a_linker_script_004c191c + -0x2998);\n    unaff_s1 = this;\n    goto LAB_0021c33c;\n  }" { (if_statement "if ((*(int *)&this->field_0x1a0 << 1 < 0) &&\n       (unaff_s5 = (uint *)0x0, pOVar6 == (Output_data *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }" if (parenthesized_expression "((*(int *)&this->field_0x1a0 << 1 < 0) &&\n       (unaff_s5 = (uint *)0x0, pOVar6 == (Output_data *)0x0))" ( (binary_expression "(*(int *)&this->field_0x1a0 << 1 < 0) &&\n       (unaff_s5 = (uint *)0x0, pOVar6 == (Output_data *)0x0)" (parenthesized_expression "(*(int *)&this->field_0x1a0 << 1 < 0)" ( (binary_expression "*(int *)&this->field_0x1a0 << 1 < 0" (binary_expression "*(int *)&this->field_0x1a0 << 1" (pointer_expression "*(int *)&this->field_0x1a0" * (cast_expression "(int *)&this->field_0x1a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x1a0" & (field_expression "this->field_0x1a0" identifier -> field_identifier)))) << number_literal) < number_literal) )) && (parenthesized_expression "(unaff_s5 = (uint *)0x0, pOVar6 == (Output_data *)0x0)" ( (comma_expression "unaff_s5 = (uint *)0x0, pOVar6 == (Output_data *)0x0" (assignment_expression "unaff_s5 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "pOVar6 == (Output_data *)0x0" identifier == (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }" { (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0021ba3c;" goto statement_identifier ;) })) (expression_statement "local_38 = *(int *)poff;" (assignment_expression "local_38 = *(int *)poff" identifier = (pointer_expression "*(int *)poff" * (cast_expression "(int *)poff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pppOVar22 = &this->output_lists_[0].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;" (field_expression "pppOVar22 = &this->output_lists_[0].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish" (field_expression "pppOVar22 = &this->output_lists_[0].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "pppOVar22 = &this->output_lists_[0].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "pppOVar22 = &this->output_lists_[0].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "pppOVar22 = &this->output_lists_[0].\n                 super__Vector_base<gold::Output_data*,_std" (assignment_expression "pppOVar22 = &this->output_lists_[0].\n                 super__Vector_base<gold" identifier = (binary_expression "&this->output_lists_[0].\n                 super__Vector_base<gold" (pointer_expression "&this->output_lists_[0].\n                 super__Vector_base" & (field_expression "this->output_lists_[0].\n                 super__Vector_base" (subscript_expression "this->output_lists_[0]" (field_expression "this->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "lVar30 = 0;" (assignment_expression "lVar30 = 0" identifier = number_literal) ;) (expression_statement "unaff_s2 = (Output_data *)0x0;" (assignment_expression "unaff_s2 = (Output_data *)0x0" identifier = (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = *(Output_data **)((int)poff + 4);" (assignment_expression "local_34 = *(Output_data **)((int)poff + 4)" identifier = (pointer_expression "*(Output_data **)((int)poff + 4)" * (cast_expression "(Output_data **)((int)poff + 4)" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)poff + 4)" ( (binary_expression "(int)poff + 4" (cast_expression "(int)poff" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s0 = (Layout *)0x0;" (assignment_expression "unaff_s0 = (Layout *)0x0" identifier = (cast_expression "(Layout *)0x0" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pppOVar23 = &this->output_lists_[0x15].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;" (field_expression "pppOVar23 = &this->output_lists_[0x15].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish" (field_expression "pppOVar23 = &this->output_lists_[0x15].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "pppOVar23 = &this->output_lists_[0x15].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "pppOVar23 = &this->output_lists_[0x15].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "pppOVar23 = &this->output_lists_[0x15].\n                 super__Vector_base<gold::Output_data*,_std" (assignment_expression "pppOVar23 = &this->output_lists_[0x15].\n                 super__Vector_base<gold" identifier = (binary_expression "&this->output_lists_[0x15].\n                 super__Vector_base<gold" (pointer_expression "&this->output_lists_[0x15].\n                 super__Vector_base" & (field_expression "this->output_lists_[0x15].\n                 super__Vector_base" (subscript_expression "this->output_lists_[0x15]" (field_expression "this->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (labeled_statement "LAB_0021bac4:\n    do {\n      unaff_s1 = (Output_segment *)((_Vector_impl *)(pppOVar22 + -1))->_M_start;\n      if (unaff_s1 != (Output_segment *)*pppOVar22) {\n        do {\n          while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }\n          pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);\n          pLVar21 = unaff_s0;\n          if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }\n          uVar27 = CONCAT44(pppOVar22,unaff_s4);\n          ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;\n          if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          ppOVar5[2] = unaff_s2;\n          ppOVar5[3] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;\n          if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }\n          pOVar17 = *ppOVar5;\n          ppOVar5[6] = unaff_s2;\n          ppOVar5[7] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;\n          if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;\n          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n          unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n          if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }\n          unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;\n          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);\n        } while ((Output_segment *)*pppOVar22 != unaff_s1);\n      }\nLAB_0021c04c:\n      pppOVar22 = pppOVar22 + 3;\n    } while (pppOVar23 != pppOVar22);" statement_identifier : (do_statement "do {\n      unaff_s1 = (Output_segment *)((_Vector_impl *)(pppOVar22 + -1))->_M_start;\n      if (unaff_s1 != (Output_segment *)*pppOVar22) {\n        do {\n          while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }\n          pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);\n          pLVar21 = unaff_s0;\n          if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }\n          uVar27 = CONCAT44(pppOVar22,unaff_s4);\n          ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;\n          if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          ppOVar5[2] = unaff_s2;\n          ppOVar5[3] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;\n          if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }\n          pOVar17 = *ppOVar5;\n          ppOVar5[6] = unaff_s2;\n          ppOVar5[7] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;\n          if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;\n          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n          unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n          if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }\n          unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;\n          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);\n        } while ((Output_segment *)*pppOVar22 != unaff_s1);\n      }\nLAB_0021c04c:\n      pppOVar22 = pppOVar22 + 3;\n    } while (pppOVar23 != pppOVar22);" do (compound_statement "{\n      unaff_s1 = (Output_segment *)((_Vector_impl *)(pppOVar22 + -1))->_M_start;\n      if (unaff_s1 != (Output_segment *)*pppOVar22) {\n        do {\n          while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }\n          pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);\n          pLVar21 = unaff_s0;\n          if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }\n          uVar27 = CONCAT44(pppOVar22,unaff_s4);\n          ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;\n          if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          ppOVar5[2] = unaff_s2;\n          ppOVar5[3] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;\n          if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }\n          pOVar17 = *ppOVar5;\n          ppOVar5[6] = unaff_s2;\n          ppOVar5[7] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;\n          if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;\n          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n          unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n          if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }\n          unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;\n          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);\n        } while ((Output_segment *)*pppOVar22 != unaff_s1);\n      }\nLAB_0021c04c:\n      pppOVar22 = pppOVar22 + 3;\n    }" { (expression_statement "unaff_s1 = (Output_segment *)((_Vector_impl *)(pppOVar22 + -1))->_M_start;" (assignment_expression "unaff_s1 = (Output_segment *)((_Vector_impl *)(pppOVar22 + -1))->_M_start" identifier = (cast_expression "(Output_segment *)((_Vector_impl *)(pppOVar22 + -1))->_M_start" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((_Vector_impl *)(pppOVar22 + -1))->_M_start" (parenthesized_expression "((_Vector_impl *)(pppOVar22 + -1))" ( (cast_expression "(_Vector_impl *)(pppOVar22 + -1)" ( (type_descriptor "_Vector_impl *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppOVar22 + -1)" ( (binary_expression "pppOVar22 + -1" identifier + number_literal) ))) )) -> field_identifier))) ;) (if_statement "if (unaff_s1 != (Output_segment *)*pppOVar22) {\n        do {\n          while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }\n          pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);\n          pLVar21 = unaff_s0;\n          if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }\n          uVar27 = CONCAT44(pppOVar22,unaff_s4);\n          ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;\n          if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          ppOVar5[2] = unaff_s2;\n          ppOVar5[3] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;\n          if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }\n          pOVar17 = *ppOVar5;\n          ppOVar5[6] = unaff_s2;\n          ppOVar5[7] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;\n          if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;\n          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n          unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n          if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }\n          unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;\n          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);\n        } while ((Output_segment *)*pppOVar22 != unaff_s1);\n      }" if (parenthesized_expression "(unaff_s1 != (Output_segment *)*pppOVar22)" ( (binary_expression "unaff_s1 != (Output_segment *)*pppOVar22" identifier != (cast_expression "(Output_segment *)*pppOVar22" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pppOVar22" * identifier))) )) (compound_statement "{\n        do {\n          while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }\n          pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);\n          pLVar21 = unaff_s0;\n          if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }\n          uVar27 = CONCAT44(pppOVar22,unaff_s4);\n          ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;\n          if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          ppOVar5[2] = unaff_s2;\n          ppOVar5[3] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;\n          if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }\n          pOVar17 = *ppOVar5;\n          ppOVar5[6] = unaff_s2;\n          ppOVar5[7] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;\n          if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;\n          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n          unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n          if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }\n          unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;\n          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);\n        } while ((Output_segment *)*pppOVar22 != unaff_s1);\n      }" { (do_statement "do {\n          while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }\n          pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);\n          pLVar21 = unaff_s0;\n          if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }\n          uVar27 = CONCAT44(pppOVar22,unaff_s4);\n          ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;\n          if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          ppOVar5[2] = unaff_s2;\n          ppOVar5[3] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;\n          if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }\n          pOVar17 = *ppOVar5;\n          ppOVar5[6] = unaff_s2;\n          ppOVar5[7] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;\n          if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;\n          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n          unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n          if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }\n          unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;\n          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);\n        } while ((Output_segment *)*pppOVar22 != unaff_s1);" do (compound_statement "{\n          while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }\n          pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);\n          pLVar21 = unaff_s0;\n          if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }\n          uVar27 = CONCAT44(pppOVar22,unaff_s4);\n          ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;\n          if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          ppOVar5[2] = unaff_s2;\n          ppOVar5[3] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;\n          if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }\n          pOVar17 = *ppOVar5;\n          ppOVar5[6] = unaff_s2;\n          ppOVar5[7] = (Output_data *)pLVar21;\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;\n          if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }\n          bVar1 = *(byte *)(ppOVar5 + 8);\n          *(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;\n          unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n          unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n          if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }\n          unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;\n          (**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);\n        }" { (while_statement "while( true ) {\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar14 = (uint)((ulonglong)lVar30 >> 0x20);\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);\n            if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);\n            uVar10 = (uint)((ulonglong)lVar28 >> 0x20);\n            if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }\n            unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }\n            unaff_s4 = (bool *)lVar28;\n            iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();\n            if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;\nLAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n            if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;\n          }" { (expression_statement "uVar14 = (uint)((ulonglong)lVar30 >> 0x20);" (assignment_expression "uVar14 = (uint)((ulonglong)lVar30 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;" (field_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start" (field_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold" identifier = (binary_expression "unaff_s1->output_lists_[0].\n                      super__Vector_base<gold" (field_expression "unaff_s1->output_lists_[0].\n                      super__Vector_base" (subscript_expression "unaff_s1->output_lists_[0]" (field_expression "unaff_s1->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5);" (assignment_expression "iVar15 = (**(code **)&(*ppOVar5)->offset_)(ppOVar5)" identifier = (call_expression "(**(code **)&(*ppOVar5)->offset_)(ppOVar5)" (parenthesized_expression "(**(code **)&(*ppOVar5)->offset_)" ( (pointer_expression "**(code **)&(*ppOVar5)->offset_" * (pointer_expression "*(code **)&(*ppOVar5)->offset_" * (cast_expression "(code **)&(*ppOVar5)->offset_" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(*ppOVar5)->offset_" & (field_expression "(*ppOVar5)->offset_" (parenthesized_expression "(*ppOVar5)" ( (pointer_expression "*ppOVar5" * identifier) )) -> field_identifier))))) )) (argument_list "(ppOVar5)" ( identifier )))) ;) (if_statement "if (iVar15 == 0) {\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;\n              pppOVar22 = pppOVar22 + 3;\n              uVar14 = uVar14 | (uint)lVar30;\n              if (pppOVar23 != pppOVar22) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }" { (if_statement "if (unaff_s1 != (Output_segment *)*pppOVar22) goto LAB_0021c058;" if (parenthesized_expression "(unaff_s1 != (Output_segment *)*pppOVar22)" ( (binary_expression "unaff_s1 != (Output_segment *)*pppOVar22" identifier != (cast_expression "(Output_segment *)*pppOVar22" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pppOVar22" * identifier))) )) (goto_statement "goto LAB_0021c058;" goto statement_identifier ;)) (expression_statement "pppOVar22 = pppOVar22 + 3;" (assignment_expression "pppOVar22 = pppOVar22 + 3" identifier = (binary_expression "pppOVar22 + 3" identifier + number_literal)) ;) (expression_statement "uVar14 = uVar14 | (uint)lVar30;" (assignment_expression "uVar14 = uVar14 | (uint)lVar30" identifier = (binary_expression "uVar14 | (uint)lVar30" identifier | (cast_expression "(uint)lVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (pppOVar23 != pppOVar22) goto LAB_0021bac4;" if (parenthesized_expression "(pppOVar23 != pppOVar22)" ( (binary_expression "pppOVar23 != pppOVar22" identifier != identifier) )) (goto_statement "goto LAB_0021bac4;" goto statement_identifier ;)) (goto_statement "goto LAB_0021c05c;" goto statement_identifier ;) })) (expression_statement "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;" (field_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start" (field_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold" identifier = (binary_expression "unaff_s1->output_lists_[0].\n                      super__Vector_base<gold" (field_expression "unaff_s1->output_lists_[0].\n                      super__Vector_base" (subscript_expression "unaff_s1->output_lists_[0]" (field_expression "unaff_s1->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5);" (assignment_expression "lVar28 = (**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5)" identifier = (call_expression "(**(code **)((int)&(*ppOVar5)->address_ + 4))(ppOVar5)" (parenthesized_expression "(**(code **)((int)&(*ppOVar5)->address_ + 4))" ( (pointer_expression "**(code **)((int)&(*ppOVar5)->address_ + 4)" * (pointer_expression "*(code **)((int)&(*ppOVar5)->address_ + 4)" * (cast_expression "(code **)((int)&(*ppOVar5)->address_ + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(*ppOVar5)->address_ + 4)" ( (binary_expression "(int)&(*ppOVar5)->address_ + 4" (cast_expression "(int)&(*ppOVar5)->address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(*ppOVar5)->address_" & (field_expression "(*ppOVar5)->address_" (parenthesized_expression "(*ppOVar5)" ( (pointer_expression "*ppOVar5" * identifier) )) -> field_identifier))) + number_literal) ))))) )) (argument_list "(ppOVar5)" ( identifier )))) ;) (expression_statement "uVar10 = (uint)((ulonglong)lVar28 >> 0x20);" (assignment_expression "uVar10 = (uint)((ulonglong)lVar28 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar28 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar28 >> 0x20)" ( (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))) {\n              lVar30 = lVar28;\n            }" if (parenthesized_expression "((uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28))))" ( (binary_expression "(uVar14 < uVar10) || ((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))" (parenthesized_expression "(uVar14 < uVar10)" ( (binary_expression "uVar14 < uVar10" identifier < identifier) )) || (parenthesized_expression "((uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)))" ( (parenthesized_expression "(uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28))" ( (binary_expression "uVar10 == uVar14 && ((uint)lVar30 < (uint)lVar28)" (binary_expression "uVar10 == uVar14" identifier == identifier) && (parenthesized_expression "((uint)lVar30 < (uint)lVar28)" ( (binary_expression "(uint)lVar30 < (uint)lVar28" (cast_expression "(uint)lVar30" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)lVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) ))) )) (compound_statement "{\n              lVar30 = lVar28;\n            }" { (expression_statement "lVar30 = lVar28;" (assignment_expression "lVar30 = lVar28" identifier = identifier) ;) })) (expression_statement "unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);" (assignment_expression "unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20)" identifier = (cast_expression "(uint *)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();" (assignment_expression "iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)()" identifier = (call_expression "(**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)()" (parenthesized_expression "(**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)" ( (pointer_expression "**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20" * (pointer_expression "*(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20" * (cast_expression "(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20" & (field_expression "(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20" (parenthesized_expression "(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)" ( (field_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start" (field_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl" (binary_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std" (binary_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold" (pointer_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base" * (field_expression "unaff_s1->output_lists_[0].\n                                    super__Vector_base" (subscript_expression "unaff_s1->output_lists_[0]" (field_expression "unaff_s1->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) -> field_identifier))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar15 == 0) {\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }\n            else {\n              in_tls = true;\n            }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }\n            }" { (if_statement "if (in_tls != false) {\n                in_tls = false;\n                lVar28 = lVar30;\n              }" if (parenthesized_expression "(in_tls != false)" ( (binary_expression "in_tls != false" identifier != false) )) (compound_statement "{\n                in_tls = false;\n                lVar28 = lVar30;\n              }" { (expression_statement "in_tls = false;" (assignment_expression "in_tls = false" identifier = false) ;) (expression_statement "lVar28 = lVar30;" (assignment_expression "lVar28 = lVar30" identifier = identifier) ;) })) }) (else_clause "else {\n              in_tls = true;\n            }" else (compound_statement "{\n              in_tls = true;\n            }" { (expression_statement "in_tls = true;" (assignment_expression "in_tls = true" identifier = true) ;) }))) (expression_statement "unaff_s4 = (bool *)lVar28;" (assignment_expression "unaff_s4 = (bool *)lVar28" identifier = (cast_expression "(bool *)lVar28" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)();" (assignment_expression "iVar15 = (**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)()" identifier = (call_expression "(**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)()" (parenthesized_expression "(**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20)" ( (pointer_expression "**(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20" * (pointer_expression "*(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20" * (cast_expression "(code **)&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20" & (field_expression "(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)->field_0x20" (parenthesized_expression "(*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start)" ( (field_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl._M_start" (field_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                    ._M_impl" (binary_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold::Output_data*,_std" (binary_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base<gold" (pointer_expression "*unaff_s1->output_lists_[0].\n                                    super__Vector_base" * (field_expression "unaff_s1->output_lists_[0].\n                                    super__Vector_base" (subscript_expression "unaff_s1->output_lists_[0]" (field_expression "unaff_s1->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) -> field_identifier))))) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))\n            break;" if (parenthesized_expression "((iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0))" ( (binary_expression "(iVar15 == 0) ||\n               (ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0)" (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) || (parenthesized_expression "(ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0)" ( (comma_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n               iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0" (field_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start" (field_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                          super__Vector_base<gold" identifier = (binary_expression "unaff_s1->output_lists_[0].\n                          super__Vector_base<gold" (field_expression "unaff_s1->output_lists_[0].\n                          super__Vector_base" (subscript_expression "unaff_s1->output_lists_[0]" (field_expression "unaff_s1->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) , (comma_expression "iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8), iVar15 == 0" (assignment_expression "iVar15 = (**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8)" identifier = (call_expression "(**(code **)((int)&(*ppOVar5)->offset_ + 4))(ppOVar5,8)" (parenthesized_expression "(**(code **)((int)&(*ppOVar5)->offset_ + 4))" ( (pointer_expression "**(code **)((int)&(*ppOVar5)->offset_ + 4)" * (pointer_expression "*(code **)((int)&(*ppOVar5)->offset_ + 4)" * (cast_expression "(code **)((int)&(*ppOVar5)->offset_ + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(*ppOVar5)->offset_ + 4)" ( (binary_expression "(int)&(*ppOVar5)->offset_ + 4" (cast_expression "(int)&(*ppOVar5)->offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(*ppOVar5)->offset_" & (field_expression "(*ppOVar5)->offset_" (parenthesized_expression "(*ppOVar5)" ( (pointer_expression "*ppOVar5" * identifier) )) -> field_identifier))) + number_literal) ))))) )) (argument_list "(ppOVar5,8)" ( identifier , number_literal )))) , (binary_expression "iVar15 == 0" identifier == number_literal))) ))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0021bb94:\n            unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;" statement_identifier : (expression_statement "unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;" (field_expression "unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish" (field_expression "unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl" (binary_expression "unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold::Output_data*,_std" (assignment_expression "unaff_s1 = (Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold" identifier = (binary_expression "(Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base<gold" (cast_expression "(Output_segment *)\n                       &unaff_s1->output_lists_[0].\n                        super__Vector_base" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s1->output_lists_[0].\n                        super__Vector_base" & (field_expression "unaff_s1->output_lists_[0].\n                        super__Vector_base" (subscript_expression "unaff_s1->output_lists_[0]" (field_expression "unaff_s1->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier))) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;)) (if_statement "if ((Output_segment *)*pppOVar22 == unaff_s1) goto LAB_0021c04c;" if (parenthesized_expression "((Output_segment *)*pppOVar22 == unaff_s1)" ( (binary_expression "(Output_segment *)*pppOVar22 == unaff_s1" (cast_expression "(Output_segment *)*pppOVar22" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pppOVar22" * identifier)) == identifier) )) (goto_statement "goto LAB_0021c04c;" goto statement_identifier ;)) })) (expression_statement "pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3);" (assignment_expression "pLVar4 = (Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3)" identifier = (cast_expression "(Layout *)\n                   ((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3)" ( (binary_expression "(int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count + 3" (cast_expression "(int)&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count" & (field_expression "unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header.\n                          _M_node_count" (field_expression "unaff_s0[-1].gnu_properties_._M_t._M_impl.super__Rb_tree_header" (field_expression "unaff_s0[-1].gnu_properties_._M_t._M_impl" (field_expression "unaff_s0[-1].gnu_properties_._M_t" (field_expression "unaff_s0[-1].gnu_properties_" (subscript_expression "unaff_s0[-1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + number_literal) )))) ;) (expression_statement "pLVar21 = unaff_s0;" (assignment_expression "pLVar21 = unaff_s0" identifier = identifier) ;) (if_statement "if (lVar28 != 0) {\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }" if (parenthesized_expression "(lVar28 != 0)" ( (binary_expression "lVar28 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);\n            unaff_s4 = (bool *)-(int)unaff_s4;\n            pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);\n            unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));\n          }" { (expression_statement "lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4);" (assignment_expression "lVar2 = lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4)" identifier = (binary_expression "lVar28 + CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4)" identifier + (call_expression "CONCAT44((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4)" identifier (argument_list "((int)unaff_s2 + ((pLVar4 < unaff_s0) - 1),pLVar4)" ( (binary_expression "(int)unaff_s2 + ((pLVar4 < unaff_s0) - 1)" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((pLVar4 < unaff_s0) - 1)" ( (binary_expression "(pLVar4 < unaff_s0) - 1" (parenthesized_expression "(pLVar4 < unaff_s0)" ( (binary_expression "pLVar4 < unaff_s0" identifier < identifier) )) - number_literal) ))) , identifier ))))) ;) (expression_statement "unaff_s4 = (bool *)-(int)unaff_s4;" (assignment_expression "unaff_s4 = (bool *)-(int)unaff_s4" identifier = (cast_expression "(bool *)-(int)unaff_s4" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)unaff_s4" - (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4);" (assignment_expression "pLVar21 = (Layout *)((uint)lVar2 & (uint)unaff_s4)" identifier = (cast_expression "(Layout *)((uint)lVar2 & (uint)unaff_s4)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)lVar2 & (uint)unaff_s4)" ( (binary_expression "(uint)lVar2 & (uint)unaff_s4" (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)unaff_s4" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20));" (assignment_expression "unaff_s2 = (Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20))" identifier = (cast_expression "(Output_data *)\n                       ((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20))" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20))" ( (binary_expression "(uint)((ulonglong)lVar2 >> 0x20) &\n                       -(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20)" (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (binary_expression "-(uint)(unaff_s4 != (bool *)0x0) - (int)((ulonglong)lVar28 >> 0x20)" (unary_expression "-(uint)(unaff_s4 != (bool *)0x0)" - (call_expression "(uint)(unaff_s4 != (bool *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s4 != (bool *)0x0)" ( (binary_expression "unaff_s4 != (bool *)0x0" identifier != (cast_expression "(bool *)0x0" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) - (cast_expression "(int)((ulonglong)lVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar28 >> 0x20)" ( (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))))) )))) ;) })) (expression_statement "uVar27 = CONCAT44(pppOVar22,unaff_s4);" (assignment_expression "uVar27 = CONCAT44(pppOVar22,unaff_s4)" identifier = (call_expression "CONCAT44(pppOVar22,unaff_s4)" identifier (argument_list "(pppOVar22,unaff_s4)" ( identifier , identifier )))) ;) (expression_statement "ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start;" (field_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl._M_start" (field_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                    _M_impl" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                    super__Vector_base<gold" identifier = (binary_expression "unaff_s1->output_lists_[0].\n                    super__Vector_base<gold" (field_expression "unaff_s1->output_lists_[0].\n                    super__Vector_base" (subscript_expression "unaff_s1->output_lists_[0]" (field_expression "unaff_s1->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((int)ppOVar5[8] < 0) {\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }" if (parenthesized_expression "((int)ppOVar5[8] < 0)" ( (binary_expression "(int)ppOVar5[8] < 0" (cast_expression "(int)ppOVar5[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppOVar5[8]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n            if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }\nLAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);\n            goto LAB_0021c298;\n          }" { (if_statement "if ((int)ppOVar5[8] << 1 < 0) {\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }" if (parenthesized_expression "((int)ppOVar5[8] << 1 < 0)" ( (binary_expression "(int)ppOVar5[8] << 1 < 0" (binary_expression "(int)ppOVar5[8] << 1" (cast_expression "(int)ppOVar5[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppOVar5[8]" identifier [ number_literal ])) << number_literal) < number_literal) )) (compound_statement "{\n              unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);\n              unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));\n              goto LAB_0021bb94;\n            }" { (expression_statement "unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);" (assignment_expression "unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5])" identifier = (cast_expression "(Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5])" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5])" ( (binary_expression "(int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]" (cast_expression "(int)&pLVar21->number_of_input_files_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pLVar21->number_of_input_files_" & (field_expression "pLVar21->number_of_input_files_" identifier -> field_identifier))) + (cast_expression "(int)ppOVar5[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppOVar5[5]" identifier [ number_literal ]))) )))) ;) (expression_statement "unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));" (assignment_expression "unaff_s2 = (Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21))" identifier = (cast_expression "(Output_data *)\n                         ((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21))" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21))" ( (binary_expression "(int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21)" (binary_expression "(int)&unaff_s2->_vptr_Output_data +\n                         (int)&ppOVar5[4]->_vptr_Output_data" (cast_expression "(int)&unaff_s2->_vptr_Output_data" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s2->_vptr_Output_data" & (field_expression "unaff_s2->_vptr_Output_data" identifier -> field_identifier))) + (cast_expression "(int)&ppOVar5[4]->_vptr_Output_data" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppOVar5[4]->_vptr_Output_data" & (field_expression "ppOVar5[4]->_vptr_Output_data" (subscript_expression "ppOVar5[4]" identifier [ number_literal ]) -> field_identifier)))) + (call_expression "(uint)(unaff_s0 < pLVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s0 < pLVar21)" ( (binary_expression "unaff_s0 < pLVar21" identifier < identifier) )))) )))) ;) (goto_statement "goto LAB_0021bb94;" goto statement_identifier ;) })) (labeled_statement "LAB_0021c280:\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                       PTR_s_in_a_linker_script_004c191c + -0x29fc)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29fc" identifier + number_literal) ))) ;)) (goto_statement "goto LAB_0021c298;" goto statement_identifier ;) })) (expression_statement "bVar1 = *(byte *)(ppOVar5 + 8);" (assignment_expression "bVar1 = *(byte *)(ppOVar5 + 8)" identifier = (pointer_expression "*(byte *)(ppOVar5 + 8)" * (cast_expression "(byte *)(ppOVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppOVar5 + 8)" ( (binary_expression "ppOVar5 + 8" identifier + number_literal) ))))) ;) (expression_statement "ppOVar5[2] = unaff_s2;" (assignment_expression "ppOVar5[2] = unaff_s2" (subscript_expression "ppOVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppOVar5[3] = (Output_data *)pLVar21;" (assignment_expression "ppOVar5[3] = (Output_data *)pLVar21" (subscript_expression "ppOVar5[3]" identifier [ number_literal ]) = (cast_expression "(Output_data *)pLVar21" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80;" (assignment_expression "*(byte *)(ppOVar5 + 8) = bVar1 & 0x7f | 0x80" (pointer_expression "*(byte *)(ppOVar5 + 8)" * (cast_expression "(byte *)(ppOVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppOVar5 + 8)" ( (binary_expression "ppOVar5 + 8" identifier + number_literal) )))) = (binary_expression "bVar1 & 0x7f | 0x80" (binary_expression "bVar1 & 0x7f" identifier & number_literal) | number_literal)) ;) (if_statement "if ((int)ppOVar5[8] << 2 < 0) {\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }" if (parenthesized_expression "((int)ppOVar5[8] << 2 < 0)" ( (binary_expression "(int)ppOVar5[8] << 2 < 0" (binary_expression "(int)ppOVar5[8] << 2" (cast_expression "(int)ppOVar5[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppOVar5[8]" identifier [ number_literal ])) << number_literal) < number_literal) )) (compound_statement "{\n            (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            goto LAB_0021c2ec;\n          }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                       PTR_s_in_a_linker_script_004c191c + -0x2d60)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d60" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0021c2ec;" goto statement_identifier ;) })) (expression_statement "pOVar17 = *ppOVar5;" (assignment_expression "pOVar17 = *ppOVar5" identifier = (pointer_expression "*ppOVar5" * identifier)) ;) (expression_statement "ppOVar5[6] = unaff_s2;" (assignment_expression "ppOVar5[6] = unaff_s2" (subscript_expression "ppOVar5[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppOVar5[7] = (Output_data *)pLVar21;" (assignment_expression "ppOVar5[7] = (Output_data *)pLVar21" (subscript_expression "ppOVar5[7]" identifier [ number_literal ]) = (cast_expression "(Output_data *)pLVar21" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0;" (assignment_expression "*(byte *)(ppOVar5 + 8) = bVar1 & 0x5f | 0xa0" (pointer_expression "*(byte *)(ppOVar5 + 8)" * (cast_expression "(byte *)(ppOVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppOVar5 + 8)" ( (binary_expression "ppOVar5 + 8" identifier + number_literal) )))) = (binary_expression "bVar1 & 0x5f | 0xa0" (binary_expression "bVar1 & 0x5f" identifier & number_literal) | number_literal)) ;) (if_statement "if (-1 < (int)ppOVar5[8] << 1) {\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }" if (parenthesized_expression "(-1 < (int)ppOVar5[8] << 1)" ( (binary_expression "-1 < (int)ppOVar5[8] << 1" number_literal < (binary_expression "(int)ppOVar5[8] << 1" (cast_expression "(int)ppOVar5[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppOVar5[8]" identifier [ number_literal ])) << number_literal)) )) (compound_statement "{\n            (**(code **)&pOVar17[1].data_size_)(ppOVar5);\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;\n            ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;\n            if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;\n            pOVar17 = *ppOVar5;\n          }" { (expression_statement "(**(code **)&pOVar17[1].data_size_)(ppOVar5);" (call_expression "(**(code **)&pOVar17[1].data_size_)(ppOVar5)" (parenthesized_expression "(**(code **)&pOVar17[1].data_size_)" ( (pointer_expression "**(code **)&pOVar17[1].data_size_" * (pointer_expression "*(code **)&pOVar17[1].data_size_" * (cast_expression "(code **)&pOVar17[1].data_size_" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar17[1].data_size_" & (field_expression "pOVar17[1].data_size_" (subscript_expression "pOVar17[1]" identifier [ number_literal ]) . field_identifier))))) )) (argument_list "(ppOVar5)" ( identifier ))) ;) (if_statement "if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c308;" if (parenthesized_expression "(-1 < (int)ppOVar5[8] << 1)" ( (binary_expression "-1 < (int)ppOVar5[8] << 1" number_literal < (binary_expression "(int)ppOVar5[8] << 1" (cast_expression "(int)ppOVar5[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppOVar5[8]" identifier [ number_literal ])) << number_literal)) )) (goto_statement "goto LAB_0021c308;" goto statement_identifier ;)) (expression_statement "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start;" (field_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_start" (field_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar5 = unaff_s1->output_lists_[0].\n                      super__Vector_base<gold" identifier = (binary_expression "unaff_s1->output_lists_[0].\n                      super__Vector_base<gold" (field_expression "unaff_s1->output_lists_[0].\n                      super__Vector_base" (subscript_expression "unaff_s1->output_lists_[0]" (field_expression "unaff_s1->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (-1 < (int)ppOVar5[8] << 1) goto LAB_0021c280;" if (parenthesized_expression "(-1 < (int)ppOVar5[8] << 1)" ( (binary_expression "-1 < (int)ppOVar5[8] << 1" number_literal < (binary_expression "(int)ppOVar5[8] << 1" (cast_expression "(int)ppOVar5[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppOVar5[8]" identifier [ number_literal ])) << number_literal)) )) (goto_statement "goto LAB_0021c280;" goto statement_identifier ;)) (expression_statement "pOVar17 = *ppOVar5;" (assignment_expression "pOVar17 = *ppOVar5" identifier = (pointer_expression "*ppOVar5" * identifier)) ;) })) (expression_statement "bVar1 = *(byte *)(ppOVar5 + 8);" (assignment_expression "bVar1 = *(byte *)(ppOVar5 + 8)" identifier = (pointer_expression "*(byte *)(ppOVar5 + 8)" * (cast_expression "(byte *)(ppOVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppOVar5 + 8)" ( (binary_expression "ppOVar5 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(ppOVar5 + 8) = bVar1 & 0x5f;" (assignment_expression "*(byte *)(ppOVar5 + 8) = bVar1 & 0x5f" (pointer_expression "*(byte *)(ppOVar5 + 8)" * (cast_expression "(byte *)(ppOVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppOVar5 + 8)" ( (binary_expression "ppOVar5 + 8" identifier + number_literal) )))) = (binary_expression "bVar1 & 0x5f" identifier & number_literal)) ;) (expression_statement "unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]);" (assignment_expression "unaff_s0 = (Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5])" identifier = (cast_expression "(Layout *)((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5])" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5])" ( (binary_expression "(int)&pLVar21->number_of_input_files_ + (int)ppOVar5[5]" (cast_expression "(int)&pLVar21->number_of_input_files_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pLVar21->number_of_input_files_" & (field_expression "pLVar21->number_of_input_files_" identifier -> field_identifier))) + (cast_expression "(int)ppOVar5[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppOVar5[5]" identifier [ number_literal ]))) )))) ;) (expression_statement "unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21));" (assignment_expression "unaff_s2 = (Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21))" identifier = (cast_expression "(Output_data *)\n                     ((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21))" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21))" ( (binary_expression "(int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data + (uint)(unaff_s0 < pLVar21)" (binary_expression "(int)&unaff_s2->_vptr_Output_data +\n                     (int)&ppOVar5[4]->_vptr_Output_data" (cast_expression "(int)&unaff_s2->_vptr_Output_data" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s2->_vptr_Output_data" & (field_expression "unaff_s2->_vptr_Output_data" identifier -> field_identifier))) + (cast_expression "(int)&ppOVar5[4]->_vptr_Output_data" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppOVar5[4]->_vptr_Output_data" & (field_expression "ppOVar5[4]->_vptr_Output_data" (subscript_expression "ppOVar5[4]" identifier [ number_literal ]) -> field_identifier)))) + (call_expression "(uint)(unaff_s0 < pLVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s0 < pLVar21)" ( (binary_expression "unaff_s0 < pLVar21" identifier < identifier) )))) )))) ;) (if_statement "if (-1 < (int)ppOVar5[8] << 3) {\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }" if (parenthesized_expression "(-1 < (int)ppOVar5[8] << 3)" ( (binary_expression "-1 < (int)ppOVar5[8] << 3" number_literal < (binary_expression "(int)ppOVar5[8] << 3" (cast_expression "(int)ppOVar5[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppOVar5[8]" identifier [ number_literal ])) << number_literal)) )) (compound_statement "{\n            *(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;\n          }" { (expression_statement "*(byte *)(ppOVar5 + 8) = bVar1 & 0x1f;" (assignment_expression "*(byte *)(ppOVar5 + 8) = bVar1 & 0x1f" (pointer_expression "*(byte *)(ppOVar5 + 8)" * (cast_expression "(byte *)(ppOVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppOVar5 + 8)" ( (binary_expression "ppOVar5 + 8" identifier + number_literal) )))) = (binary_expression "bVar1 & 0x1f" identifier & number_literal)) ;) })) (expression_statement "unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish;" (field_expression "unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish" (field_expression "unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl" (binary_expression "unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold::Output_data*,_std" (assignment_expression "unaff_s1 = (Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold" identifier = (binary_expression "(Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base<gold" (cast_expression "(Output_segment *)\n                     &unaff_s1->output_lists_[0].\n                      super__Vector_base" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s1->output_lists_[0].\n                      super__Vector_base" & (field_expression "unaff_s1->output_lists_[0].\n                      super__Vector_base" (subscript_expression "unaff_s1->output_lists_[0]" (field_expression "unaff_s1->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier))) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "(**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5);" (call_expression "(**(code **)((int)&pOVar17[1].data_size_ + 4))(ppOVar5)" (parenthesized_expression "(**(code **)((int)&pOVar17[1].data_size_ + 4))" ( (pointer_expression "**(code **)((int)&pOVar17[1].data_size_ + 4)" * (pointer_expression "*(code **)((int)&pOVar17[1].data_size_ + 4)" * (cast_expression "(code **)((int)&pOVar17[1].data_size_ + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar17[1].data_size_ + 4)" ( (binary_expression "(int)&pOVar17[1].data_size_ + 4" (cast_expression "(int)&pOVar17[1].data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar17[1].data_size_" & (field_expression "pOVar17[1].data_size_" (subscript_expression "pOVar17[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) )) (argument_list "(ppOVar5)" ( identifier ))) ;) }) while (parenthesized_expression "((Output_segment *)*pppOVar22 != unaff_s1)" ( (binary_expression "(Output_segment *)*pppOVar22 != unaff_s1" (cast_expression "(Output_segment *)*pppOVar22" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pppOVar22" * identifier)) != identifier) )) ;) })) (labeled_statement "LAB_0021c04c:\n      pppOVar22 = pppOVar22 + 3;" statement_identifier : (expression_statement "pppOVar22 = pppOVar22 + 3;" (assignment_expression "pppOVar22 = pppOVar22 + 3" identifier = (binary_expression "pppOVar22 + 3" identifier + number_literal)) ;)) }) while (parenthesized_expression "(pppOVar23 != pppOVar22)" ( (binary_expression "pppOVar23 != pppOVar22" identifier != identifier) )) ;)) (labeled_statement "LAB_0021c058:\n    uVar14 = (uint)((ulonglong)lVar30 >> 0x20) | (uint)lVar30;" statement_identifier : (expression_statement "uVar14 = (uint)((ulonglong)lVar30 >> 0x20) | (uint)lVar30;" (assignment_expression "uVar14 = (uint)((ulonglong)lVar30 >> 0x20) | (uint)lVar30" identifier = (binary_expression "(uint)((ulonglong)lVar30 >> 0x20) | (uint)lVar30" (call_expression "(uint)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) | (cast_expression "(uint)lVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;)) (labeled_statement "LAB_0021c05c:\n    uVar27 = CONCAT44(pppOVar22,unaff_s4);" statement_identifier : (expression_statement "uVar27 = CONCAT44(pppOVar22,unaff_s4);" (assignment_expression "uVar27 = CONCAT44(pppOVar22,unaff_s4)" identifier = (call_expression "CONCAT44(pppOVar22,unaff_s4)" identifier (argument_list "(pppOVar22,unaff_s4)" ( identifier , identifier )))) ;)) (expression_statement "uVar16 = (int)&unaff_s0->number_of_input_files_ + *increase_relro;" (assignment_expression "uVar16 = (int)&unaff_s0->number_of_input_files_ + *increase_relro" identifier = (binary_expression "(int)&unaff_s0->number_of_input_files_ + *increase_relro" (cast_expression "(int)&unaff_s0->number_of_input_files_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s0->number_of_input_files_" & (field_expression "unaff_s0->number_of_input_files_" identifier -> field_identifier))) + (pointer_expression "*increase_relro" * identifier))) ;) (expression_statement "pTVar11 = (Target *)((int)&unaff_s2->_vptr_Output_data + (uint)(uVar16 < *increase_relro));" (assignment_expression "pTVar11 = (Target *)((int)&unaff_s2->_vptr_Output_data + (uint)(uVar16 < *increase_relro))" identifier = (cast_expression "(Target *)((int)&unaff_s2->_vptr_Output_data + (uint)(uVar16 < *increase_relro))" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s2->_vptr_Output_data + (uint)(uVar16 < *increase_relro))" ( (binary_expression "(int)&unaff_s2->_vptr_Output_data + (uint)(uVar16 < *increase_relro)" (cast_expression "(int)&unaff_s2->_vptr_Output_data" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s2->_vptr_Output_data" & (field_expression "unaff_s2->_vptr_Output_data" identifier -> field_identifier))) + (call_expression "(uint)(uVar16 < *increase_relro)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < *increase_relro)" ( (binary_expression "uVar16 < *increase_relro" identifier < (pointer_expression "*increase_relro" * identifier)) )))) )))) ;) (expression_statement "this_00 = pTVar11;" (assignment_expression "this_00 = pTVar11" identifier = identifier) ;) (expression_statement "uVar10 = uVar16;" (assignment_expression "uVar10 = uVar16" identifier = identifier) ;) (if_statement "if (uVar14 != 0) {\n      lVar28 = lVar30 + -1 + CONCAT44(pTVar11,uVar16);\n      uVar10 = (uint)lVar28 & -(int)lVar30;\n      this_00 = (Target *)\n                ((uint)((ulonglong)lVar28 >> 0x20) &\n                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20));\n      lVar30 = CONCAT44((int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11),\n                        uVar10 - uVar16);\n    }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar28 = lVar30 + -1 + CONCAT44(pTVar11,uVar16);\n      uVar10 = (uint)lVar28 & -(int)lVar30;\n      this_00 = (Target *)\n                ((uint)((ulonglong)lVar28 >> 0x20) &\n                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20));\n      lVar30 = CONCAT44((int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11),\n                        uVar10 - uVar16);\n    }" { (expression_statement "lVar28 = lVar30 + -1 + CONCAT44(pTVar11,uVar16);" (assignment_expression "lVar28 = lVar30 + -1 + CONCAT44(pTVar11,uVar16)" identifier = (binary_expression "lVar30 + -1 + CONCAT44(pTVar11,uVar16)" (binary_expression "lVar30 + -1" identifier + number_literal) + (call_expression "CONCAT44(pTVar11,uVar16)" identifier (argument_list "(pTVar11,uVar16)" ( identifier , identifier ))))) ;) (expression_statement "uVar10 = (uint)lVar28 & -(int)lVar30;" (assignment_expression "uVar10 = (uint)lVar28 & -(int)lVar30" identifier = (binary_expression "(uint)lVar28 & -(int)lVar30" (cast_expression "(uint)lVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar30" - (cast_expression "(int)lVar30" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "this_00 = (Target *)\n                ((uint)((ulonglong)lVar28 >> 0x20) &\n                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20));" (assignment_expression "this_00 = (Target *)\n                ((uint)((ulonglong)lVar28 >> 0x20) &\n                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20))" identifier = (cast_expression "(Target *)\n                ((uint)((ulonglong)lVar28 >> 0x20) &\n                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20))" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((ulonglong)lVar28 >> 0x20) &\n                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20))" ( (binary_expression "(uint)((ulonglong)lVar28 >> 0x20) &\n                -(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20)" (call_expression "(uint)((ulonglong)lVar28 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar28 >> 0x20)" ( (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (binary_expression "-(uint)(-(int)lVar30 != 0) - (int)((ulonglong)lVar30 >> 0x20)" (unary_expression "-(uint)(-(int)lVar30 != 0)" - (call_expression "(uint)(-(int)lVar30 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)lVar30 != 0)" ( (binary_expression "-(int)lVar30 != 0" (unary_expression "-(int)lVar30" - (cast_expression "(int)lVar30" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (cast_expression "(int)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))))) )))) ;) (expression_statement "lVar30 = CONCAT44((int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11),\n                        uVar10 - uVar16);" (assignment_expression "lVar30 = CONCAT44((int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11),\n                        uVar10 - uVar16)" identifier = (call_expression "CONCAT44((int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11),\n                        uVar10 - uVar16)" identifier (argument_list "((int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11),\n                        uVar10 - uVar16)" ( (binary_expression "(int)this_00 + (-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11)" (cast_expression "(int)this_00" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11)" ( (binary_expression "-(uint)(uVar10 < uVar10 - uVar16) - (int)pTVar11" (unary_expression "-(uint)(uVar10 < uVar10 - uVar16)" - (call_expression "(uint)(uVar10 < uVar10 - uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar10 - uVar16)" ( (binary_expression "uVar10 < uVar10 - uVar16" identifier < (binary_expression "uVar10 - uVar16" identifier - identifier)) )))) - (cast_expression "(int)pTVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , (binary_expression "uVar10 - uVar16" identifier - identifier) )))) ;) })) (expression_statement "unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);" (assignment_expression "unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20)" identifier = (cast_expression "(uint *)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_44 = (int)lVar30;" (assignment_expression "local_44 = (int)lVar30" identifier = (cast_expression "(int)lVar30" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar15 = *local_3c;" (assignment_expression "iVar15 = *local_3c" identifier = (pointer_expression "*local_3c" * identifier)) ;) (expression_statement "*has_relro = true;" (assignment_expression "*has_relro = true" (pointer_expression "*has_relro" * identifier) = true) ;) (expression_statement "iVar9 = *(int *)(iVar15 + 0xc);" (assignment_expression "iVar9 = *(int *)(iVar15 + 0xc)" identifier = (pointer_expression "*(int *)(iVar15 + 0xc)" * (cast_expression "(int *)(iVar15 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;" (assignment_expression "pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30" identifier = (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar9 != 0) {\n      iVar15 = *(int *)(iVar15 + 8);\n      if (iVar15 != 0) {\n        iVar26 = *(int *)(iVar15 + 0x5228);\n        unaff_s6 = *(Layout **)(iVar15 + 0x522c);\n        if (iVar26 == 0 && unaff_s6 == (Layout *)0x0) {\n          iVar15 = *(int *)(iVar9 + 4);\n          iVar26 = *(int *)(iVar15 + 0x20);\n          unaff_s6 = *(Layout **)(iVar15 + 0x24);\n        }\n        uVar31 = (*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6);\n        unaff_s2 = local_34;\n        unaff_s0 = (Layout *)((int)unaff_s6 - (int)uVar31);\n        unaff_s4 = (bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0));\n        local_30 = local_38;\n        uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6);\n        iVar15 = local_30;\n        if (CONCAT44(unaff_s4,unaff_s0) < uVar32) {\n          unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);\n          local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;\n          uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);\n          iVar15 = local_38;\n        }\n        pLVar4 = (Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2);\n        pLVar21 = (Layout *)((int)pLVar4 - (int)uVar32);\n        *(Layout **)((int)poff + 4) = pLVar21;\n        pbVar7 = unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +\n                 iVar15;\n        *(bool **)poff = pbVar7;\n        puVar12 = (uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c));\n        local_48 = local_48 +\n                   (int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50));\n        local_50 = pbVar7;\n        local_4c = pLVar21;\n        local_40 = puVar12;\n        goto LAB_0021b72c;\n      }\n      goto LAB_0021c37c;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar15 = *(int *)(iVar15 + 8);\n      if (iVar15 != 0) {\n        iVar26 = *(int *)(iVar15 + 0x5228);\n        unaff_s6 = *(Layout **)(iVar15 + 0x522c);\n        if (iVar26 == 0 && unaff_s6 == (Layout *)0x0) {\n          iVar15 = *(int *)(iVar9 + 4);\n          iVar26 = *(int *)(iVar15 + 0x20);\n          unaff_s6 = *(Layout **)(iVar15 + 0x24);\n        }\n        uVar31 = (*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6);\n        unaff_s2 = local_34;\n        unaff_s0 = (Layout *)((int)unaff_s6 - (int)uVar31);\n        unaff_s4 = (bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0));\n        local_30 = local_38;\n        uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6);\n        iVar15 = local_30;\n        if (CONCAT44(unaff_s4,unaff_s0) < uVar32) {\n          unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);\n          local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;\n          uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);\n          iVar15 = local_38;\n        }\n        pLVar4 = (Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2);\n        pLVar21 = (Layout *)((int)pLVar4 - (int)uVar32);\n        *(Layout **)((int)poff + 4) = pLVar21;\n        pbVar7 = unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +\n                 iVar15;\n        *(bool **)poff = pbVar7;\n        puVar12 = (uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c));\n        local_48 = local_48 +\n                   (int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50));\n        local_50 = pbVar7;\n        local_4c = pLVar21;\n        local_40 = puVar12;\n        goto LAB_0021b72c;\n      }\n      goto LAB_0021c37c;\n    }" { (expression_statement "iVar15 = *(int *)(iVar15 + 8);" (assignment_expression "iVar15 = *(int *)(iVar15 + 8)" identifier = (pointer_expression "*(int *)(iVar15 + 8)" * (cast_expression "(int *)(iVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 8)" ( (binary_expression "iVar15 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar15 != 0) {\n        iVar26 = *(int *)(iVar15 + 0x5228);\n        unaff_s6 = *(Layout **)(iVar15 + 0x522c);\n        if (iVar26 == 0 && unaff_s6 == (Layout *)0x0) {\n          iVar15 = *(int *)(iVar9 + 4);\n          iVar26 = *(int *)(iVar15 + 0x20);\n          unaff_s6 = *(Layout **)(iVar15 + 0x24);\n        }\n        uVar31 = (*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6);\n        unaff_s2 = local_34;\n        unaff_s0 = (Layout *)((int)unaff_s6 - (int)uVar31);\n        unaff_s4 = (bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0));\n        local_30 = local_38;\n        uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6);\n        iVar15 = local_30;\n        if (CONCAT44(unaff_s4,unaff_s0) < uVar32) {\n          unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);\n          local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;\n          uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);\n          iVar15 = local_38;\n        }\n        pLVar4 = (Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2);\n        pLVar21 = (Layout *)((int)pLVar4 - (int)uVar32);\n        *(Layout **)((int)poff + 4) = pLVar21;\n        pbVar7 = unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +\n                 iVar15;\n        *(bool **)poff = pbVar7;\n        puVar12 = (uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c));\n        local_48 = local_48 +\n                   (int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50));\n        local_50 = pbVar7;\n        local_4c = pLVar21;\n        local_40 = puVar12;\n        goto LAB_0021b72c;\n      }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar26 = *(int *)(iVar15 + 0x5228);\n        unaff_s6 = *(Layout **)(iVar15 + 0x522c);\n        if (iVar26 == 0 && unaff_s6 == (Layout *)0x0) {\n          iVar15 = *(int *)(iVar9 + 4);\n          iVar26 = *(int *)(iVar15 + 0x20);\n          unaff_s6 = *(Layout **)(iVar15 + 0x24);\n        }\n        uVar31 = (*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6);\n        unaff_s2 = local_34;\n        unaff_s0 = (Layout *)((int)unaff_s6 - (int)uVar31);\n        unaff_s4 = (bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0));\n        local_30 = local_38;\n        uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6);\n        iVar15 = local_30;\n        if (CONCAT44(unaff_s4,unaff_s0) < uVar32) {\n          unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);\n          local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;\n          uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);\n          iVar15 = local_38;\n        }\n        pLVar4 = (Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2);\n        pLVar21 = (Layout *)((int)pLVar4 - (int)uVar32);\n        *(Layout **)((int)poff + 4) = pLVar21;\n        pbVar7 = unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +\n                 iVar15;\n        *(bool **)poff = pbVar7;\n        puVar12 = (uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c));\n        local_48 = local_48 +\n                   (int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50));\n        local_50 = pbVar7;\n        local_4c = pLVar21;\n        local_40 = puVar12;\n        goto LAB_0021b72c;\n      }" { (expression_statement "iVar26 = *(int *)(iVar15 + 0x5228);" (assignment_expression "iVar26 = *(int *)(iVar15 + 0x5228)" identifier = (pointer_expression "*(int *)(iVar15 + 0x5228)" * (cast_expression "(int *)(iVar15 + 0x5228)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x5228)" ( (binary_expression "iVar15 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(Layout **)(iVar15 + 0x522c);" (assignment_expression "unaff_s6 = *(Layout **)(iVar15 + 0x522c)" identifier = (pointer_expression "*(Layout **)(iVar15 + 0x522c)" * (cast_expression "(Layout **)(iVar15 + 0x522c)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x522c)" ( (binary_expression "iVar15 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (iVar26 == 0 && unaff_s6 == (Layout *)0x0) {\n          iVar15 = *(int *)(iVar9 + 4);\n          iVar26 = *(int *)(iVar15 + 0x20);\n          unaff_s6 = *(Layout **)(iVar15 + 0x24);\n        }" if (parenthesized_expression "(iVar26 == 0 && unaff_s6 == (Layout *)0x0)" ( (binary_expression "iVar26 == 0 && unaff_s6 == (Layout *)0x0" (binary_expression "iVar26 == 0" identifier == number_literal) && (binary_expression "unaff_s6 == (Layout *)0x0" identifier == (cast_expression "(Layout *)0x0" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          iVar15 = *(int *)(iVar9 + 4);\n          iVar26 = *(int *)(iVar15 + 0x20);\n          unaff_s6 = *(Layout **)(iVar15 + 0x24);\n        }" { (expression_statement "iVar15 = *(int *)(iVar9 + 4);" (assignment_expression "iVar15 = *(int *)(iVar9 + 4)" identifier = (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(iVar15 + 0x20);" (assignment_expression "iVar26 = *(int *)(iVar15 + 0x20)" identifier = (pointer_expression "*(int *)(iVar15 + 0x20)" * (cast_expression "(int *)(iVar15 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x20)" ( (binary_expression "iVar15 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(Layout **)(iVar15 + 0x24);" (assignment_expression "unaff_s6 = *(Layout **)(iVar15 + 0x24)" identifier = (pointer_expression "*(Layout **)(iVar15 + 0x24)" * (cast_expression "(Layout **)(iVar15 + 0x24)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x24)" ( (binary_expression "iVar15 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "uVar31 = (*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6);" (assignment_expression "uVar31 = (*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6)" identifier = (call_expression "(*(code *)PTR___umoddi3_004c2428)(this_00,uVar10,iVar26,unaff_s6)" (parenthesized_expression "(*(code *)PTR___umoddi3_004c2428)" ( (pointer_expression "*(code *)PTR___umoddi3_004c2428" * (cast_expression "(code *)PTR___umoddi3_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this_00,uVar10,iVar26,unaff_s6)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "unaff_s2 = local_34;" (assignment_expression "unaff_s2 = local_34" identifier = identifier) ;) (expression_statement "unaff_s0 = (Layout *)((int)unaff_s6 - (int)uVar31);" (assignment_expression "unaff_s0 = (Layout *)((int)unaff_s6 - (int)uVar31)" identifier = (cast_expression "(Layout *)((int)unaff_s6 - (int)uVar31)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 - (int)uVar31)" ( (binary_expression "(int)unaff_s6 - (int)uVar31" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)uVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "unaff_s4 = (bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0));" (assignment_expression "unaff_s4 = (bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0))" identifier = (cast_expression "(bool *)((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0))" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0))" ( (binary_expression "(iVar26 - (int)((ulonglong)uVar31 >> 0x20)) -\n                           (uint)(unaff_s6 < unaff_s0)" (parenthesized_expression "(iVar26 - (int)((ulonglong)uVar31 >> 0x20))" ( (binary_expression "iVar26 - (int)((ulonglong)uVar31 >> 0x20)" identifier - (cast_expression "(int)((ulonglong)uVar31 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar31 >> 0x20)" ( (binary_expression "(ulonglong)uVar31 >> 0x20" (cast_expression "(ulonglong)uVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) - (call_expression "(uint)(unaff_s6 < unaff_s0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s6 < unaff_s0)" ( (binary_expression "unaff_s6 < unaff_s0" identifier < identifier) )))) )))) ;) (expression_statement "local_30 = local_38;" (assignment_expression "local_30 = local_38" identifier = identifier) ;) (expression_statement "uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6);" (assignment_expression "uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6)" identifier = (call_expression "(*(code *)PTR___umoddi3_004c2428)(local_38,local_34,iVar26,unaff_s6)" (parenthesized_expression "(*(code *)PTR___umoddi3_004c2428)" ( (pointer_expression "*(code *)PTR___umoddi3_004c2428" * (cast_expression "(code *)PTR___umoddi3_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38,local_34,iVar26,unaff_s6)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar15 = local_30;" (assignment_expression "iVar15 = local_30" identifier = identifier) ;) (if_statement "if (CONCAT44(unaff_s4,unaff_s0) < uVar32) {\n          unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);\n          local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;\n          uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);\n          iVar15 = local_38;\n        }" if (parenthesized_expression "(CONCAT44(unaff_s4,unaff_s0) < uVar32)" ( (binary_expression "CONCAT44(unaff_s4,unaff_s0) < uVar32" (call_expression "CONCAT44(unaff_s4,unaff_s0)" identifier (argument_list "(unaff_s4,unaff_s0)" ( identifier , identifier ))) < identifier) )) (compound_statement "{\n          unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);\n          local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;\n          uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);\n          iVar15 = local_38;\n        }" { (expression_statement "unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34);" (assignment_expression "unaff_s2 = (Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34)" identifier = (cast_expression "(Output_data *)((int)&unaff_s6->number_of_input_files_ + (int)local_34)" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s6->number_of_input_files_ + (int)local_34)" ( (binary_expression "(int)&unaff_s6->number_of_input_files_ + (int)local_34" (cast_expression "(int)&unaff_s6->number_of_input_files_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s6->number_of_input_files_" & (field_expression "unaff_s6->number_of_input_files_" identifier -> field_identifier))) + (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26;" (assignment_expression "local_38 = local_38 + (uint)(unaff_s2 < local_34) + iVar26" identifier = (binary_expression "local_38 + (uint)(unaff_s2 < local_34) + iVar26" (binary_expression "local_38 + (uint)(unaff_s2 < local_34)" identifier + (call_expression "(uint)(unaff_s2 < local_34)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s2 < local_34)" ( (binary_expression "unaff_s2 < local_34" identifier < identifier) )))) + identifier)) ;) (expression_statement "uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6);" (assignment_expression "uVar32 = (*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6)" identifier = (call_expression "(*(code *)PTR___umoddi3_004c2428)(local_38,unaff_s2,iVar26,unaff_s6)" (parenthesized_expression "(*(code *)PTR___umoddi3_004c2428)" ( (pointer_expression "*(code *)PTR___umoddi3_004c2428" * (cast_expression "(code *)PTR___umoddi3_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38,unaff_s2,iVar26,unaff_s6)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "iVar15 = local_38;" (assignment_expression "iVar15 = local_38" identifier = identifier) ;) })) (expression_statement "pLVar4 = (Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2);" (assignment_expression "pLVar4 = (Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2)" identifier = (cast_expression "(Layout *)((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s0->number_of_input_files_ + (int)unaff_s2)" ( (binary_expression "(int)&unaff_s0->number_of_input_files_ + (int)unaff_s2" (cast_expression "(int)&unaff_s0->number_of_input_files_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s0->number_of_input_files_" & (field_expression "unaff_s0->number_of_input_files_" identifier -> field_identifier))) + (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pLVar21 = (Layout *)((int)pLVar4 - (int)uVar32);" (assignment_expression "pLVar21 = (Layout *)((int)pLVar4 - (int)uVar32)" identifier = (cast_expression "(Layout *)((int)pLVar4 - (int)uVar32)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pLVar4 - (int)uVar32)" ( (binary_expression "(int)pLVar4 - (int)uVar32" (cast_expression "(int)pLVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)uVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*(Layout **)((int)poff + 4) = pLVar21;" (assignment_expression "*(Layout **)((int)poff + 4) = pLVar21" (pointer_expression "*(Layout **)((int)poff + 4)" * (cast_expression "(Layout **)((int)poff + 4)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)poff + 4)" ( (binary_expression "(int)poff + 4" (cast_expression "(int)poff" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pbVar7 = unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +\n                 iVar15;" (assignment_expression "pbVar7 = unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +\n                 iVar15" identifier = (binary_expression "unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)) +\n                 iVar15" (binary_expression "unaff_s4 +\n                 (((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21))" identifier + (parenthesized_expression "(((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21))" ( (binary_expression "((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)) - (uint)(pLVar4 < pLVar21)" (parenthesized_expression "((uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20))" ( (binary_expression "(uint)(pLVar4 < unaff_s0) - (int)(uVar32 >> 0x20)" (call_expression "(uint)(pLVar4 < unaff_s0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pLVar4 < unaff_s0)" ( (binary_expression "pLVar4 < unaff_s0" identifier < identifier) ))) - (cast_expression "(int)(uVar32 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar32 >> 0x20)" ( (binary_expression "uVar32 >> 0x20" identifier >> number_literal) )))) )) - (call_expression "(uint)(pLVar4 < pLVar21)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pLVar4 < pLVar21)" ( (binary_expression "pLVar4 < pLVar21" identifier < identifier) )))) ))) + identifier)) ;) (expression_statement "*(bool **)poff = pbVar7;" (assignment_expression "*(bool **)poff = pbVar7" (pointer_expression "*(bool **)poff" * (cast_expression "(bool **)poff" ( (type_descriptor "bool **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "puVar12 = (uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c));" (assignment_expression "puVar12 = (uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c))" identifier = (cast_expression "(uint *)((int)local_40 + ((int)pLVar21 - (int)local_4c))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + ((int)pLVar21 - (int)local_4c))" ( (binary_expression "(int)local_40 + ((int)pLVar21 - (int)local_4c)" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)pLVar21 - (int)local_4c)" ( (binary_expression "(int)pLVar21 - (int)local_4c" (cast_expression "(int)pLVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "local_48 = local_48 +\n                   (int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50));" (assignment_expression "local_48 = local_48 +\n                   (int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50))" identifier = (binary_expression "local_48 +\n                   (int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50))" identifier + (cast_expression "(int)(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50))" ( (binary_expression "pbVar7 + (uint)(puVar12 < local_40) +\n                                  (-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50)" (binary_expression "pbVar7 + (uint)(puVar12 < local_40)" identifier + (call_expression "(uint)(puVar12 < local_40)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar12 < local_40)" ( (binary_expression "puVar12 < local_40" identifier < identifier) )))) + (parenthesized_expression "(-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50)" ( (binary_expression "-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)) -\n                                  (int)local_50" (unary_expression "-(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c))" - (call_expression "(uint)(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c))" ( (binary_expression "pLVar21 < (Layout *)((int)pLVar21 - (int)local_4c)" identifier < (cast_expression "(Layout *)((int)pLVar21 - (int)local_4c)" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pLVar21 - (int)local_4c)" ( (binary_expression "(int)pLVar21 - (int)local_4c" (cast_expression "(int)pLVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )))) - (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))))) ;) (expression_statement "local_50 = pbVar7;" (assignment_expression "local_50 = pbVar7" identifier = identifier) ;) (expression_statement "local_4c = pLVar21;" (assignment_expression "local_4c = pLVar21" identifier = identifier) ;) (expression_statement "local_40 = puVar12;" (assignment_expression "local_40 = puVar12" identifier = identifier) ;) (goto_statement "goto LAB_0021b72c;" goto statement_identifier ;) })) (goto_statement "goto LAB_0021c37c;" goto statement_identifier ;) })) (labeled_statement "LAB_0021c324:\n    unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);" statement_identifier : (expression_statement "unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20);" (assignment_expression "unaff_s5 = (uint *)((ulonglong)lVar30 >> 0x20)" identifier = (cast_expression "(uint *)((ulonglong)lVar30 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_44 = (int)lVar30;" (assignment_expression "local_44 = (int)lVar30" identifier = (cast_expression "(int)lVar30" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(*pcVar24)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n               PTR_s_in_a_linker_script_004c191c + -0x2998);" (call_expression "(*pcVar24)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n               PTR_s_in_a_linker_script_004c191c + -0x2998)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n               PTR_s_in_a_linker_script_004c191c + -0x2998)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2998" identifier + number_literal) ))) ;) (expression_statement "unaff_s1 = this;" (assignment_expression "unaff_s1 = this" identifier = identifier) ;) (goto_statement "goto LAB_0021c33c;" goto statement_identifier ;) })) (expression_statement "unaff_s5 = (uint *)0x0;" (assignment_expression "unaff_s5 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0021b72c:\n  if ((pOVar6 == (Output_data *)0x0) && (*(int *)&this->field_0x1a0 << 1 < 0)) {\nLAB_0021ba3c:\n    uVar27 = CONCAT44(unaff_s6,unaff_s4);\n    if (*(code **)&this->paddr_ == local_48) {\n      __position._M_current = (Output_data **)0x1131;\n      pLVar21 = unaff_s0;\n      unaff_s1 = this;\n      if (*(uint **)((int)&this->paddr_ + 4) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)&this->vaddr_;\n      local_40 = *(uint **)((int)&this->vaddr_ + 4);\n      goto LAB_0021b768;\n    }\n    goto LAB_0021c358;\n  }" statement_identifier : (if_statement "if ((pOVar6 == (Output_data *)0x0) && (*(int *)&this->field_0x1a0 << 1 < 0)) {\nLAB_0021ba3c:\n    uVar27 = CONCAT44(unaff_s6,unaff_s4);\n    if (*(code **)&this->paddr_ == local_48) {\n      __position._M_current = (Output_data **)0x1131;\n      pLVar21 = unaff_s0;\n      unaff_s1 = this;\n      if (*(uint **)((int)&this->paddr_ + 4) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)&this->vaddr_;\n      local_40 = *(uint **)((int)&this->vaddr_ + 4);\n      goto LAB_0021b768;\n    }\n    goto LAB_0021c358;\n  }" if (parenthesized_expression "((pOVar6 == (Output_data *)0x0) && (*(int *)&this->field_0x1a0 << 1 < 0))" ( (binary_expression "(pOVar6 == (Output_data *)0x0) && (*(int *)&this->field_0x1a0 << 1 < 0)" (parenthesized_expression "(pOVar6 == (Output_data *)0x0)" ( (binary_expression "pOVar6 == (Output_data *)0x0" identifier == (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(int *)&this->field_0x1a0 << 1 < 0)" ( (binary_expression "*(int *)&this->field_0x1a0 << 1 < 0" (binary_expression "*(int *)&this->field_0x1a0 << 1" (pointer_expression "*(int *)&this->field_0x1a0" * (cast_expression "(int *)&this->field_0x1a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x1a0" & (field_expression "this->field_0x1a0" identifier -> field_identifier)))) << number_literal) < number_literal) ))) )) (compound_statement "{\nLAB_0021ba3c:\n    uVar27 = CONCAT44(unaff_s6,unaff_s4);\n    if (*(code **)&this->paddr_ == local_48) {\n      __position._M_current = (Output_data **)0x1131;\n      pLVar21 = unaff_s0;\n      unaff_s1 = this;\n      if (*(uint **)((int)&this->paddr_ + 4) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)&this->vaddr_;\n      local_40 = *(uint **)((int)&this->vaddr_ + 4);\n      goto LAB_0021b768;\n    }\n    goto LAB_0021c358;\n  }" { (labeled_statement "LAB_0021ba3c:\n    uVar27 = CONCAT44(unaff_s6,unaff_s4);" statement_identifier : (expression_statement "uVar27 = CONCAT44(unaff_s6,unaff_s4);" (assignment_expression "uVar27 = CONCAT44(unaff_s6,unaff_s4)" identifier = (call_expression "CONCAT44(unaff_s6,unaff_s4)" identifier (argument_list "(unaff_s6,unaff_s4)" ( identifier , identifier )))) ;)) (if_statement "if (*(code **)&this->paddr_ == local_48) {\n      __position._M_current = (Output_data **)0x1131;\n      pLVar21 = unaff_s0;\n      unaff_s1 = this;\n      if (*(uint **)((int)&this->paddr_ + 4) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)&this->vaddr_;\n      local_40 = *(uint **)((int)&this->vaddr_ + 4);\n      goto LAB_0021b768;\n    }" if (parenthesized_expression "(*(code **)&this->paddr_ == local_48)" ( (binary_expression "*(code **)&this->paddr_ == local_48" (pointer_expression "*(code **)&this->paddr_" * (cast_expression "(code **)&this->paddr_" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this->paddr_" & (field_expression "this->paddr_" identifier -> field_identifier)))) == identifier) )) (compound_statement "{\n      __position._M_current = (Output_data **)0x1131;\n      pLVar21 = unaff_s0;\n      unaff_s1 = this;\n      if (*(uint **)((int)&this->paddr_ + 4) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)&this->vaddr_;\n      local_40 = *(uint **)((int)&this->vaddr_ + 4);\n      goto LAB_0021b768;\n    }" { (expression_statement "__position._M_current = (Output_data **)0x1131;" (assignment_expression "__position._M_current = (Output_data **)0x1131" (field_expression "__position._M_current" identifier . field_identifier) = (cast_expression "(Output_data **)0x1131" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pLVar21 = unaff_s0;" (assignment_expression "pLVar21 = unaff_s0" identifier = identifier) ;) (expression_statement "unaff_s1 = this;" (assignment_expression "unaff_s1 = this" identifier = identifier) ;) (if_statement "if (*(uint **)((int)&this->paddr_ + 4) != local_40) goto LAB_0021c29c;" if (parenthesized_expression "(*(uint **)((int)&this->paddr_ + 4) != local_40)" ( (binary_expression "*(uint **)((int)&this->paddr_ + 4) != local_40" (pointer_expression "*(uint **)((int)&this->paddr_ + 4)" * (cast_expression "(uint **)((int)&this->paddr_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&this->paddr_ + 4)" ( (binary_expression "(int)&this->paddr_ + 4" (cast_expression "(int)&this->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->paddr_" & (field_expression "this->paddr_" identifier -> field_identifier))) + number_literal) )))) != identifier) )) (goto_statement "goto LAB_0021c29c;" goto statement_identifier ;)) (expression_statement "local_48 = *(code **)&this->vaddr_;" (assignment_expression "local_48 = *(code **)&this->vaddr_" identifier = (pointer_expression "*(code **)&this->vaddr_" * (cast_expression "(code **)&this->vaddr_" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this->vaddr_" & (field_expression "this->vaddr_" identifier -> field_identifier))))) ;) (expression_statement "local_40 = *(uint **)((int)&this->vaddr_ + 4);" (assignment_expression "local_40 = *(uint **)((int)&this->vaddr_ + 4)" identifier = (pointer_expression "*(uint **)((int)&this->vaddr_ + 4)" * (cast_expression "(uint **)((int)&this->vaddr_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&this->vaddr_ + 4)" ( (binary_expression "(int)&this->vaddr_ + 4" (cast_expression "(int)&this->vaddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->vaddr_" & (field_expression "this->vaddr_" identifier -> field_identifier))) + number_literal) ))))) ;) (goto_statement "goto LAB_0021b768;" goto statement_identifier ;) })) (goto_statement "goto LAB_0021c358;" goto statement_identifier ;) }))) (expression_statement "bVar1 = this->field_0x1a0;" (assignment_expression "bVar1 = this->field_0x1a0" identifier = (field_expression "this->field_0x1a0" identifier -> field_identifier)) ;) (expression_statement "*(code **)&this->vaddr_ = local_48;" (assignment_expression "*(code **)&this->vaddr_ = local_48" (pointer_expression "*(code **)&this->vaddr_" * (cast_expression "(code **)&this->vaddr_" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this->vaddr_" & (field_expression "this->vaddr_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint **)((int)&this->vaddr_ + 4) = local_40;" (assignment_expression "*(uint **)((int)&this->vaddr_ + 4) = local_40" (pointer_expression "*(uint **)((int)&this->vaddr_ + 4)" * (cast_expression "(uint **)((int)&this->vaddr_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&this->vaddr_ + 4)" ( (binary_expression "(int)&this->vaddr_ + 4" (cast_expression "(int)&this->vaddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->vaddr_" & (field_expression "this->vaddr_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)&this->paddr_ = local_48;" (assignment_expression "*(code **)&this->paddr_ = local_48" (pointer_expression "*(code **)&this->paddr_" * (cast_expression "(code **)&this->paddr_" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this->paddr_" & (field_expression "this->paddr_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint **)((int)&this->paddr_ + 4) = local_40;" (assignment_expression "*(uint **)((int)&this->paddr_ + 4) = local_40" (pointer_expression "*(uint **)((int)&this->paddr_ + 4)" * (cast_expression "(uint **)((int)&this->paddr_ + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&this->paddr_ + 4)" ( (binary_expression "(int)&this->paddr_ + 4" (cast_expression "(int)&this->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->paddr_" & (field_expression "this->paddr_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "this->field_0x1a0 = bVar1 & 0xbf | 0x40;" (assignment_expression "this->field_0x1a0 = bVar1 & 0xbf | 0x40" (field_expression "this->field_0x1a0" identifier -> field_identifier) = (binary_expression "bVar1 & 0xbf | 0x40" (binary_expression "bVar1 & 0xbf" identifier & number_literal) | number_literal)) ;) (labeled_statement "LAB_0021b768:\n  uVar27 = CONCAT44(local_48,local_40);" statement_identifier : (expression_statement "uVar27 = CONCAT44(local_48,local_40);" (assignment_expression "uVar27 = CONCAT44(local_48,local_40)" identifier = (call_expression "CONCAT44(local_48,local_40)" identifier (argument_list "(local_48,local_40)" ( identifier , identifier )))) ;)) (expression_statement "local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;" (assignment_expression "local_48 = (code *)PTR_set_section_list_addresses_004c3fb4" identifier = (cast_expression "(code *)PTR_set_section_list_addresses_004c3fb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s4 = &in_tls;" (assignment_expression "unaff_s4 = &in_tls" identifier = (pointer_expression "&in_tls" & identifier)) ;) (expression_statement "ppOVar5 = (pointer)&foff;" (assignment_expression "ppOVar5 = (pointer)&foff" identifier = (binary_expression "(pointer)&foff" (parenthesized_expression "(pointer)" ( identifier )) & identifier)) ;) (expression_statement "in_tls = false;" (assignment_expression "in_tls = false" identifier = false) ;) (expression_statement "*(bool **)&this->offset_ = local_50;" (assignment_expression "*(bool **)&this->offset_ = local_50" (pointer_expression "*(bool **)&this->offset_" * (cast_expression "(bool **)&this->offset_" ( (type_descriptor "bool **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this->offset_" & (field_expression "this->offset_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(Layout **)((int)&this->offset_ + 4) = local_4c;" (assignment_expression "*(Layout **)((int)&this->offset_ + 4) = local_4c" (pointer_expression "*(Layout **)((int)&this->offset_ + 4)" * (cast_expression "(Layout **)((int)&this->offset_ + 4)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&this->offset_ + 4)" ( (binary_expression "(int)&this->offset_ + 4" (cast_expression "(int)&this->offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->offset_" & (field_expression "this->offset_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "foff._0_4_ = *(Layout **)poff;" (assignment_expression "foff._0_4_ = *(Layout **)poff" (field_expression "foff._0_4_" identifier . field_identifier) = (pointer_expression "*(Layout **)poff" * (cast_expression "(Layout **)poff" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "foff._4_4_ = *(Output_data **)((int)poff + 4);" (assignment_expression "foff._4_4_ = *(Output_data **)((int)poff + 4)" (field_expression "foff._4_4_" identifier . field_identifier) = (pointer_expression "*(Output_data **)((int)poff + 4)" * (cast_expression "(Output_data **)((int)poff + 4)" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)poff + 4)" ( (binary_expression "(int)poff + 4" (cast_expression "(int)poff" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pppOVar22 = (pointer *)0x0;" (assignment_expression "pppOVar22 = (pointer *)0x0" identifier = (cast_expression "(pointer *)0x0" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pOVar18 = this;" (assignment_expression "pOVar18 = this" identifier = identifier) ;) (expression_statement "local_40 = unaff_s5;" (assignment_expression "local_40 = unaff_s5" identifier = identifier) ;) (while_statement "while( true ) {\n    uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27,poff,ppOVar5,pshndx,unaff_s4);\n    unaff_s2 = foff._4_4_;\n    pLVar21 = foff._0_4_;\n    if ((*(Layout **)poff != foff._0_4_) || (*(Output_data **)((int)poff + 4) != foff._4_4_)) {\n      if (pppOVar22 == (pointer *)&DAT_00000011) goto LAB_0021b84c;\n      if ((int)pppOVar22 < 0x1a) goto LAB_0021b834;\n    }\n    *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);\n    *(uint *)&this->filesz_ =\n         (int)foff._0_4_ +\n         (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);\n    pppOVar23 = pppOVar22;\n    if (pppOVar22 == (pointer *)&DAT_0000001c) break;\n    while( true ) {\n      pppOVar22 = (pointer *)((int)pppOVar23 + 1);\n      pOVar18 = (Output_segment *)(this->output_lists_ + (int)((int)pppOVar23 + 1));\n      if (pppOVar22 != (pointer *)&DAT_00000014) break;\n      uVar14 = (uint)*poff + local_44;\n      pOVar17 = (Output_data *)((int)&(foff._4_4_)->_vptr_Output_data + local_44);\n      ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n      *(uint *)((int)poff + 4) = uVar14;\n      foff._0_4_ = (Layout *)\n                   ((int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +\n                   (uint)(pOVar17 < foff._4_4_));\n      *(uint *)poff = (int)local_40 + (uint)(uVar14 < (uint)*poff) + *(int *)poff;\n      if (ppOVar20 == ppOVar19) {\n        *increase_relro = local_44 + *increase_relro;\n      }\n      foff._4_4_ = pOVar17;\n      uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27 + CONCAT44(local_40,local_44),poff,\n                           ppOVar5,pshndx,unaff_s4);\n      if ((foff._0_4_ != *(Layout **)poff) || (foff._4_4_ != *(Output_data **)((int)poff + 4))) {\nLAB_0021b834:\n        pLVar21 = layout;\n        unaff_s1 = this;\n        unaff_s2 = pOVar6;\n        unaff_s5 = pshndx;\n        if ((layout->script_options_->script_sections_).saw_sections_clause_ == false)\n        goto LAB_0021c298;\n      }\nLAB_0021b84c:\n      *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);\n      *(uint *)&this->filesz_ =\n           (int)foff._0_4_ +\n           (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);\n      pppOVar23 = pppOVar22;\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27,poff,ppOVar5,pshndx,unaff_s4);\n    unaff_s2 = foff._4_4_;\n    pLVar21 = foff._0_4_;\n    if ((*(Layout **)poff != foff._0_4_) || (*(Output_data **)((int)poff + 4) != foff._4_4_)) {\n      if (pppOVar22 == (pointer *)&DAT_00000011) goto LAB_0021b84c;\n      if ((int)pppOVar22 < 0x1a) goto LAB_0021b834;\n    }\n    *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);\n    *(uint *)&this->filesz_ =\n         (int)foff._0_4_ +\n         (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);\n    pppOVar23 = pppOVar22;\n    if (pppOVar22 == (pointer *)&DAT_0000001c) break;\n    while( true ) {\n      pppOVar22 = (pointer *)((int)pppOVar23 + 1);\n      pOVar18 = (Output_segment *)(this->output_lists_ + (int)((int)pppOVar23 + 1));\n      if (pppOVar22 != (pointer *)&DAT_00000014) break;\n      uVar14 = (uint)*poff + local_44;\n      pOVar17 = (Output_data *)((int)&(foff._4_4_)->_vptr_Output_data + local_44);\n      ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n      *(uint *)((int)poff + 4) = uVar14;\n      foff._0_4_ = (Layout *)\n                   ((int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +\n                   (uint)(pOVar17 < foff._4_4_));\n      *(uint *)poff = (int)local_40 + (uint)(uVar14 < (uint)*poff) + *(int *)poff;\n      if (ppOVar20 == ppOVar19) {\n        *increase_relro = local_44 + *increase_relro;\n      }\n      foff._4_4_ = pOVar17;\n      uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27 + CONCAT44(local_40,local_44),poff,\n                           ppOVar5,pshndx,unaff_s4);\n      if ((foff._0_4_ != *(Layout **)poff) || (foff._4_4_ != *(Output_data **)((int)poff + 4))) {\nLAB_0021b834:\n        pLVar21 = layout;\n        unaff_s1 = this;\n        unaff_s2 = pOVar6;\n        unaff_s5 = pshndx;\n        if ((layout->script_options_->script_sections_).saw_sections_clause_ == false)\n        goto LAB_0021c298;\n      }\nLAB_0021b84c:\n      *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);\n      *(uint *)&this->filesz_ =\n           (int)foff._0_4_ +\n           (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);\n      pppOVar23 = pppOVar22;\n    }\n  }" { (expression_statement "uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27,poff,ppOVar5,pshndx,unaff_s4);" (assignment_expression "uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27,poff,ppOVar5,pshndx,unaff_s4)" identifier = (call_expression "(*local_48)(this,layout,pOVar6,pOVar18,uVar27,poff,ppOVar5,pshndx,unaff_s4)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(this,layout,pOVar6,pOVar18,uVar27,poff,ppOVar5,pshndx,unaff_s4)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "unaff_s2 = foff._4_4_;" (assignment_expression "unaff_s2 = foff._4_4_" identifier = (field_expression "foff._4_4_" identifier . field_identifier)) ;) (expression_statement "pLVar21 = foff._0_4_;" (assignment_expression "pLVar21 = foff._0_4_" identifier = (field_expression "foff._0_4_" identifier . field_identifier)) ;) (if_statement "if ((*(Layout **)poff != foff._0_4_) || (*(Output_data **)((int)poff + 4) != foff._4_4_)) {\n      if (pppOVar22 == (pointer *)&DAT_00000011) goto LAB_0021b84c;\n      if ((int)pppOVar22 < 0x1a) goto LAB_0021b834;\n    }" if (parenthesized_expression "((*(Layout **)poff != foff._0_4_) || (*(Output_data **)((int)poff + 4) != foff._4_4_))" ( (binary_expression "(*(Layout **)poff != foff._0_4_) || (*(Output_data **)((int)poff + 4) != foff._4_4_)" (parenthesized_expression "(*(Layout **)poff != foff._0_4_)" ( (binary_expression "*(Layout **)poff != foff._0_4_" (pointer_expression "*(Layout **)poff" * (cast_expression "(Layout **)poff" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) != (field_expression "foff._0_4_" identifier . field_identifier)) )) || (parenthesized_expression "(*(Output_data **)((int)poff + 4) != foff._4_4_)" ( (binary_expression "*(Output_data **)((int)poff + 4) != foff._4_4_" (pointer_expression "*(Output_data **)((int)poff + 4)" * (cast_expression "(Output_data **)((int)poff + 4)" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)poff + 4)" ( (binary_expression "(int)poff + 4" (cast_expression "(int)poff" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (field_expression "foff._4_4_" identifier . field_identifier)) ))) )) (compound_statement "{\n      if (pppOVar22 == (pointer *)&DAT_00000011) goto LAB_0021b84c;\n      if ((int)pppOVar22 < 0x1a) goto LAB_0021b834;\n    }" { (if_statement "if (pppOVar22 == (pointer *)&DAT_00000011) goto LAB_0021b84c;" if (parenthesized_expression "(pppOVar22 == (pointer *)&DAT_00000011)" ( (binary_expression "pppOVar22 == (pointer *)&DAT_00000011" identifier == (cast_expression "(pointer *)&DAT_00000011" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000011" & identifier))) )) (goto_statement "goto LAB_0021b84c;" goto statement_identifier ;)) (if_statement "if ((int)pppOVar22 < 0x1a) goto LAB_0021b834;" if (parenthesized_expression "((int)pppOVar22 < 0x1a)" ( (binary_expression "(int)pppOVar22 < 0x1a" (cast_expression "(int)pppOVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0021b834;" goto statement_identifier ;)) })) (expression_statement "*(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);" (assignment_expression "*(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c)" (pointer_expression "*(Output_data **)((int)&this->filesz_ + 4)" * (cast_expression "(Output_data **)((int)&this->filesz_ + 4)" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&this->filesz_ + 4)" ( (binary_expression "(int)&this->filesz_ + 4" (cast_expression "(int)&this->filesz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->filesz_" & (field_expression "this->filesz_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(Output_data *)((int)foff._4_4_ - (int)local_4c)" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)foff._4_4_ - (int)local_4c)" ( (binary_expression "(int)foff._4_4_ - (int)local_4c" (cast_expression "(int)foff._4_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "foff._4_4_" identifier . field_identifier)) - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*(uint *)&this->filesz_ =\n         (int)foff._0_4_ +\n         (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);" (assignment_expression "*(uint *)&this->filesz_ =\n         (int)foff._0_4_ +\n         (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50)" (pointer_expression "*(uint *)&this->filesz_" * (cast_expression "(uint *)&this->filesz_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->filesz_" & (field_expression "this->filesz_" identifier -> field_identifier)))) = (binary_expression "(int)foff._0_4_ +\n         (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50)" (cast_expression "(int)foff._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "foff._0_4_" identifier . field_identifier)) + (parenthesized_expression "(-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50)" ( (binary_expression "-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50" (unary_expression "-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c))" - (call_expression "(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c))" ( (binary_expression "foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)" (field_expression "foff._4_4_" identifier . field_identifier) < (cast_expression "(Output_data *)((int)foff._4_4_ - (int)local_4c)" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)foff._4_4_ - (int)local_4c)" ( (binary_expression "(int)foff._4_4_ - (int)local_4c" (cast_expression "(int)foff._4_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "foff._4_4_" identifier . field_identifier)) - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )))) - (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppOVar23 = pppOVar22;" (assignment_expression "pppOVar23 = pppOVar22" identifier = identifier) ;) (if_statement "if (pppOVar22 == (pointer *)&DAT_0000001c) break;" if (parenthesized_expression "(pppOVar22 == (pointer *)&DAT_0000001c)" ( (binary_expression "pppOVar22 == (pointer *)&DAT_0000001c" identifier == (cast_expression "(pointer *)&DAT_0000001c" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000001c" & identifier))) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n      pppOVar22 = (pointer *)((int)pppOVar23 + 1);\n      pOVar18 = (Output_segment *)(this->output_lists_ + (int)((int)pppOVar23 + 1));\n      if (pppOVar22 != (pointer *)&DAT_00000014) break;\n      uVar14 = (uint)*poff + local_44;\n      pOVar17 = (Output_data *)((int)&(foff._4_4_)->_vptr_Output_data + local_44);\n      ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n      *(uint *)((int)poff + 4) = uVar14;\n      foff._0_4_ = (Layout *)\n                   ((int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +\n                   (uint)(pOVar17 < foff._4_4_));\n      *(uint *)poff = (int)local_40 + (uint)(uVar14 < (uint)*poff) + *(int *)poff;\n      if (ppOVar20 == ppOVar19) {\n        *increase_relro = local_44 + *increase_relro;\n      }\n      foff._4_4_ = pOVar17;\n      uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27 + CONCAT44(local_40,local_44),poff,\n                           ppOVar5,pshndx,unaff_s4);\n      if ((foff._0_4_ != *(Layout **)poff) || (foff._4_4_ != *(Output_data **)((int)poff + 4))) {\nLAB_0021b834:\n        pLVar21 = layout;\n        unaff_s1 = this;\n        unaff_s2 = pOVar6;\n        unaff_s5 = pshndx;\n        if ((layout->script_options_->script_sections_).saw_sections_clause_ == false)\n        goto LAB_0021c298;\n      }\nLAB_0021b84c:\n      *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);\n      *(uint *)&this->filesz_ =\n           (int)foff._0_4_ +\n           (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);\n      pppOVar23 = pppOVar22;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pppOVar22 = (pointer *)((int)pppOVar23 + 1);\n      pOVar18 = (Output_segment *)(this->output_lists_ + (int)((int)pppOVar23 + 1));\n      if (pppOVar22 != (pointer *)&DAT_00000014) break;\n      uVar14 = (uint)*poff + local_44;\n      pOVar17 = (Output_data *)((int)&(foff._4_4_)->_vptr_Output_data + local_44);\n      ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;\n      *(uint *)((int)poff + 4) = uVar14;\n      foff._0_4_ = (Layout *)\n                   ((int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +\n                   (uint)(pOVar17 < foff._4_4_));\n      *(uint *)poff = (int)local_40 + (uint)(uVar14 < (uint)*poff) + *(int *)poff;\n      if (ppOVar20 == ppOVar19) {\n        *increase_relro = local_44 + *increase_relro;\n      }\n      foff._4_4_ = pOVar17;\n      uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27 + CONCAT44(local_40,local_44),poff,\n                           ppOVar5,pshndx,unaff_s4);\n      if ((foff._0_4_ != *(Layout **)poff) || (foff._4_4_ != *(Output_data **)((int)poff + 4))) {\nLAB_0021b834:\n        pLVar21 = layout;\n        unaff_s1 = this;\n        unaff_s2 = pOVar6;\n        unaff_s5 = pshndx;\n        if ((layout->script_options_->script_sections_).saw_sections_clause_ == false)\n        goto LAB_0021c298;\n      }\nLAB_0021b84c:\n      *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);\n      *(uint *)&this->filesz_ =\n           (int)foff._0_4_ +\n           (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);\n      pppOVar23 = pppOVar22;\n    }" { (expression_statement "pppOVar22 = (pointer *)((int)pppOVar23 + 1);" (assignment_expression "pppOVar22 = (pointer *)((int)pppOVar23 + 1)" identifier = (cast_expression "(pointer *)((int)pppOVar23 + 1)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppOVar23 + 1)" ( (binary_expression "(int)pppOVar23 + 1" (cast_expression "(int)pppOVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pOVar18 = (Output_segment *)(this->output_lists_ + (int)((int)pppOVar23 + 1));" (assignment_expression "pOVar18 = (Output_segment *)(this->output_lists_ + (int)((int)pppOVar23 + 1))" identifier = (cast_expression "(Output_segment *)(this->output_lists_ + (int)((int)pppOVar23 + 1))" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this->output_lists_ + (int)((int)pppOVar23 + 1))" ( (binary_expression "this->output_lists_ + (int)((int)pppOVar23 + 1)" (field_expression "this->output_lists_" identifier -> field_identifier) + (cast_expression "(int)((int)pppOVar23 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppOVar23 + 1)" ( (binary_expression "(int)pppOVar23 + 1" (cast_expression "(int)pppOVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (pppOVar22 != (pointer *)&DAT_00000014) break;" if (parenthesized_expression "(pppOVar22 != (pointer *)&DAT_00000014)" ( (binary_expression "pppOVar22 != (pointer *)&DAT_00000014" identifier != (cast_expression "(pointer *)&DAT_00000014" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000014" & identifier))) )) (break_statement "break;" break ;)) (expression_statement "uVar14 = (uint)*poff + local_44;" (assignment_expression "uVar14 = (uint)*poff + local_44" identifier = (binary_expression "(uint)*poff + local_44" (binary_expression "(uint)*poff" (parenthesized_expression "(uint)" ( identifier )) * identifier) + identifier)) ;) (expression_statement "pOVar17 = (Output_data *)((int)&(foff._4_4_)->_vptr_Output_data + local_44);" (assignment_expression "pOVar17 = (Output_data *)((int)&(foff._4_4_)->_vptr_Output_data + local_44)" identifier = (cast_expression "(Output_data *)((int)&(foff._4_4_)->_vptr_Output_data + local_44)" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(foff._4_4_)->_vptr_Output_data + local_44)" ( (binary_expression "(int)&(foff._4_4_)->_vptr_Output_data + local_44" (cast_expression "(int)&(foff._4_4_)->_vptr_Output_data" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(foff._4_4_)->_vptr_Output_data" & (field_expression "(foff._4_4_)->_vptr_Output_data" (parenthesized_expression "(foff._4_4_)" ( (field_expression "foff._4_4_" identifier . field_identifier) )) -> field_identifier))) + identifier) )))) ;) (expression_statement "ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;" (field_expression "ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start" (field_expression "ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar20 = this->output_lists_[0x14].\n                 super__Vector_base<gold" identifier = (binary_expression "this->output_lists_[0x14].\n                 super__Vector_base<gold" (field_expression "this->output_lists_[0x14].\n                 super__Vector_base" (subscript_expression "this->output_lists_[0x14]" (field_expression "this->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish;" (field_expression "ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish" (field_expression "ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar19 = this->output_lists_[0x14].\n                 super__Vector_base<gold" identifier = (binary_expression "this->output_lists_[0x14].\n                 super__Vector_base<gold" (field_expression "this->output_lists_[0x14].\n                 super__Vector_base" (subscript_expression "this->output_lists_[0x14]" (field_expression "this->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "*(uint *)((int)poff + 4) = uVar14;" (assignment_expression "*(uint *)((int)poff + 4) = uVar14" (pointer_expression "*(uint *)((int)poff + 4)" * (cast_expression "(uint *)((int)poff + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)poff + 4)" ( (binary_expression "(int)poff + 4" (cast_expression "(int)poff" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "foff._0_4_ = (Layout *)\n                   ((int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +\n                   (uint)(pOVar17 < foff._4_4_));" (assignment_expression "foff._0_4_ = (Layout *)\n                   ((int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +\n                   (uint)(pOVar17 < foff._4_4_))" (field_expression "foff._0_4_" identifier . field_identifier) = (cast_expression "(Layout *)\n                   ((int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +\n                   (uint)(pOVar17 < foff._4_4_))" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +\n                   (uint)(pOVar17 < foff._4_4_))" ( (binary_expression "(int)&(foff._0_4_)->number_of_input_files_ + (int)local_40 +\n                   (uint)(pOVar17 < foff._4_4_)" (binary_expression "(int)&(foff._0_4_)->number_of_input_files_ + (int)local_40" (cast_expression "(int)&(foff._0_4_)->number_of_input_files_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(foff._0_4_)->number_of_input_files_" & (field_expression "(foff._0_4_)->number_of_input_files_" (parenthesized_expression "(foff._0_4_)" ( (field_expression "foff._0_4_" identifier . field_identifier) )) -> field_identifier))) + (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier)) + (call_expression "(uint)(pOVar17 < foff._4_4_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar17 < foff._4_4_)" ( (binary_expression "pOVar17 < foff._4_4_" identifier < (field_expression "foff._4_4_" identifier . field_identifier)) )))) )))) ;) (expression_statement "*(uint *)poff = (int)local_40 + (uint)(uVar14 < (uint)*poff) + *(int *)poff;" (assignment_expression "*(uint *)poff = (int)local_40 + (uint)(uVar14 < (uint)*poff) + *(int *)poff" (pointer_expression "*(uint *)poff" * (cast_expression "(uint *)poff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(int)local_40 + (uint)(uVar14 < (uint)*poff) + *(int *)poff" (binary_expression "(int)local_40 + (uint)(uVar14 < (uint)*poff)" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(uVar14 < (uint)*poff)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < (uint)*poff)" ( (binary_expression "uVar14 < (uint)*poff" identifier < (binary_expression "(uint)*poff" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) + (pointer_expression "*(int *)poff" * (cast_expression "(int *)poff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (if_statement "if (ppOVar20 == ppOVar19) {\n        *increase_relro = local_44 + *increase_relro;\n      }" if (parenthesized_expression "(ppOVar20 == ppOVar19)" ( (binary_expression "ppOVar20 == ppOVar19" identifier == identifier) )) (compound_statement "{\n        *increase_relro = local_44 + *increase_relro;\n      }" { (expression_statement "*increase_relro = local_44 + *increase_relro;" (assignment_expression "*increase_relro = local_44 + *increase_relro" (pointer_expression "*increase_relro" * identifier) = (binary_expression "local_44 + *increase_relro" identifier + (pointer_expression "*increase_relro" * identifier))) ;) })) (expression_statement "foff._4_4_ = pOVar17;" (assignment_expression "foff._4_4_ = pOVar17" (field_expression "foff._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27 + CONCAT44(local_40,local_44),poff,\n                           ppOVar5,pshndx,unaff_s4);" (assignment_expression "uVar27 = (*local_48)(this,layout,pOVar6,pOVar18,uVar27 + CONCAT44(local_40,local_44),poff,\n                           ppOVar5,pshndx,unaff_s4)" identifier = (call_expression "(*local_48)(this,layout,pOVar6,pOVar18,uVar27 + CONCAT44(local_40,local_44),poff,\n                           ppOVar5,pshndx,unaff_s4)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(this,layout,pOVar6,pOVar18,uVar27 + CONCAT44(local_40,local_44),poff,\n                           ppOVar5,pshndx,unaff_s4)" ( identifier , identifier , identifier , identifier , (binary_expression "uVar27 + CONCAT44(local_40,local_44)" identifier + (call_expression "CONCAT44(local_40,local_44)" identifier (argument_list "(local_40,local_44)" ( identifier , identifier )))) , identifier , identifier , identifier , identifier )))) ;) (if_statement "if ((foff._0_4_ != *(Layout **)poff) || (foff._4_4_ != *(Output_data **)((int)poff + 4))) {\nLAB_0021b834:\n        pLVar21 = layout;\n        unaff_s1 = this;\n        unaff_s2 = pOVar6;\n        unaff_s5 = pshndx;\n        if ((layout->script_options_->script_sections_).saw_sections_clause_ == false)\n        goto LAB_0021c298;\n      }" if (parenthesized_expression "((foff._0_4_ != *(Layout **)poff) || (foff._4_4_ != *(Output_data **)((int)poff + 4)))" ( (binary_expression "(foff._0_4_ != *(Layout **)poff) || (foff._4_4_ != *(Output_data **)((int)poff + 4))" (parenthesized_expression "(foff._0_4_ != *(Layout **)poff)" ( (binary_expression "foff._0_4_ != *(Layout **)poff" (field_expression "foff._0_4_" identifier . field_identifier) != (pointer_expression "*(Layout **)poff" * (cast_expression "(Layout **)poff" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) || (parenthesized_expression "(foff._4_4_ != *(Output_data **)((int)poff + 4))" ( (binary_expression "foff._4_4_ != *(Output_data **)((int)poff + 4)" (field_expression "foff._4_4_" identifier . field_identifier) != (pointer_expression "*(Output_data **)((int)poff + 4)" * (cast_expression "(Output_data **)((int)poff + 4)" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)poff + 4)" ( (binary_expression "(int)poff + 4" (cast_expression "(int)poff" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) )) (compound_statement "{\nLAB_0021b834:\n        pLVar21 = layout;\n        unaff_s1 = this;\n        unaff_s2 = pOVar6;\n        unaff_s5 = pshndx;\n        if ((layout->script_options_->script_sections_).saw_sections_clause_ == false)\n        goto LAB_0021c298;\n      }" { (labeled_statement "LAB_0021b834:\n        pLVar21 = layout;" statement_identifier : (expression_statement "pLVar21 = layout;" (assignment_expression "pLVar21 = layout" identifier = identifier) ;)) (expression_statement "unaff_s1 = this;" (assignment_expression "unaff_s1 = this" identifier = identifier) ;) (expression_statement "unaff_s2 = pOVar6;" (assignment_expression "unaff_s2 = pOVar6" identifier = identifier) ;) (expression_statement "unaff_s5 = pshndx;" (assignment_expression "unaff_s5 = pshndx" identifier = identifier) ;) (if_statement "if ((layout->script_options_->script_sections_).saw_sections_clause_ == false)\n        goto LAB_0021c298;" if (parenthesized_expression "((layout->script_options_->script_sections_).saw_sections_clause_ == false)" ( (binary_expression "(layout->script_options_->script_sections_).saw_sections_clause_ == false" (field_expression "(layout->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(layout->script_options_->script_sections_)" ( (field_expression "layout->script_options_->script_sections_" (field_expression "layout->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (goto_statement "goto LAB_0021c298;" goto statement_identifier ;)) })) (labeled_statement "LAB_0021b84c:\n      *(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);" statement_identifier : (expression_statement "*(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c);" (assignment_expression "*(Output_data **)((int)&this->filesz_ + 4) = (Output_data *)((int)foff._4_4_ - (int)local_4c)" (pointer_expression "*(Output_data **)((int)&this->filesz_ + 4)" * (cast_expression "(Output_data **)((int)&this->filesz_ + 4)" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&this->filesz_ + 4)" ( (binary_expression "(int)&this->filesz_ + 4" (cast_expression "(int)&this->filesz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->filesz_" & (field_expression "this->filesz_" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(Output_data *)((int)foff._4_4_ - (int)local_4c)" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)foff._4_4_ - (int)local_4c)" ( (binary_expression "(int)foff._4_4_ - (int)local_4c" (cast_expression "(int)foff._4_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "foff._4_4_" identifier . field_identifier)) - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "*(uint *)&this->filesz_ =\n           (int)foff._0_4_ +\n           (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50);" (assignment_expression "*(uint *)&this->filesz_ =\n           (int)foff._0_4_ +\n           (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50)" (pointer_expression "*(uint *)&this->filesz_" * (cast_expression "(uint *)&this->filesz_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->filesz_" & (field_expression "this->filesz_" identifier -> field_identifier)))) = (binary_expression "(int)foff._0_4_ +\n           (-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50)" (cast_expression "(int)foff._0_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "foff._0_4_" identifier . field_identifier)) + (parenthesized_expression "(-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50)" ( (binary_expression "-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)) - (int)local_50" (unary_expression "-(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c))" - (call_expression "(uint)(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c))" ( (binary_expression "foff._4_4_ < (Output_data *)((int)foff._4_4_ - (int)local_4c)" (field_expression "foff._4_4_" identifier . field_identifier) < (cast_expression "(Output_data *)((int)foff._4_4_ - (int)local_4c)" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)foff._4_4_ - (int)local_4c)" ( (binary_expression "(int)foff._4_4_ - (int)local_4c" (cast_expression "(int)foff._4_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "foff._4_4_" identifier . field_identifier)) - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )))) - (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppOVar23 = pppOVar22;" (assignment_expression "pppOVar23 = pppOVar22" identifier = identifier) ;) })) })) (if_statement "if (in_tls == false) {\n    uVar14 = *(uint *)poff;\n    uVar10 = (uint)*poff;\n  }\n  else {\n    uVar29 = maximum_alignment(layout->tls_segment_);\n    uVar14 = *(uint *)poff;\n    uVar10 = (uint)*poff;\n    if (uVar29 != 0) {\n      lVar30 = uVar29 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1);\n      uVar10 = (uint)lVar30 & -(int)uVar29;\n      uVar14 = (uint)((ulonglong)lVar30 >> 0x20) &\n               -(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20);\n    }\n  }" if (parenthesized_expression "(in_tls == false)" ( (binary_expression "in_tls == false" identifier == false) )) (compound_statement "{\n    uVar14 = *(uint *)poff;\n    uVar10 = (uint)*poff;\n  }" { (expression_statement "uVar14 = *(uint *)poff;" (assignment_expression "uVar14 = *(uint *)poff" identifier = (pointer_expression "*(uint *)poff" * (cast_expression "(uint *)poff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar10 = (uint)*poff;" (assignment_expression "uVar10 = (uint)*poff" identifier = (binary_expression "(uint)*poff" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) (else_clause "else {\n    uVar29 = maximum_alignment(layout->tls_segment_);\n    uVar14 = *(uint *)poff;\n    uVar10 = (uint)*poff;\n    if (uVar29 != 0) {\n      lVar30 = uVar29 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1);\n      uVar10 = (uint)lVar30 & -(int)uVar29;\n      uVar14 = (uint)((ulonglong)lVar30 >> 0x20) &\n               -(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20);\n    }\n  }" else (compound_statement "{\n    uVar29 = maximum_alignment(layout->tls_segment_);\n    uVar14 = *(uint *)poff;\n    uVar10 = (uint)*poff;\n    if (uVar29 != 0) {\n      lVar30 = uVar29 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1);\n      uVar10 = (uint)lVar30 & -(int)uVar29;\n      uVar14 = (uint)((ulonglong)lVar30 >> 0x20) &\n               -(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20);\n    }\n  }" { (expression_statement "uVar29 = maximum_alignment(layout->tls_segment_);" (assignment_expression "uVar29 = maximum_alignment(layout->tls_segment_)" identifier = (call_expression "maximum_alignment(layout->tls_segment_)" identifier (argument_list "(layout->tls_segment_)" ( (field_expression "layout->tls_segment_" identifier -> field_identifier) )))) ;) (expression_statement "uVar14 = *(uint *)poff;" (assignment_expression "uVar14 = *(uint *)poff" identifier = (pointer_expression "*(uint *)poff" * (cast_expression "(uint *)poff" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar10 = (uint)*poff;" (assignment_expression "uVar10 = (uint)*poff" identifier = (binary_expression "(uint)*poff" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar29 != 0) {\n      lVar30 = uVar29 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1);\n      uVar10 = (uint)lVar30 & -(int)uVar29;\n      uVar14 = (uint)((ulonglong)lVar30 >> 0x20) &\n               -(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20);\n    }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar30 = uVar29 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1);\n      uVar10 = (uint)lVar30 & -(int)uVar29;\n      uVar14 = (uint)((ulonglong)lVar30 >> 0x20) &\n               -(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20);\n    }" { (expression_statement "lVar30 = uVar29 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1);" (assignment_expression "lVar30 = uVar29 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1)" identifier = (binary_expression "uVar29 + CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1)" identifier + (call_expression "CONCAT44((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1)" identifier (argument_list "((uint)(uVar10 - 1 < uVar10) + (uVar14 - 1),uVar10 - 1)" ( (binary_expression "(uint)(uVar10 - 1 < uVar10) + (uVar14 - 1)" (call_expression "(uint)(uVar10 - 1 < uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 - 1 < uVar10)" ( (binary_expression "uVar10 - 1 < uVar10" (binary_expression "uVar10 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar14 - 1)" ( (binary_expression "uVar14 - 1" identifier - number_literal) ))) , (binary_expression "uVar10 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar10 = (uint)lVar30 & -(int)uVar29;" (assignment_expression "uVar10 = (uint)lVar30 & -(int)uVar29" identifier = (binary_expression "(uint)lVar30 & -(int)uVar29" (cast_expression "(uint)lVar30" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)uVar29" - (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar14 = (uint)((ulonglong)lVar30 >> 0x20) &\n               -(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20);" (assignment_expression "uVar14 = (uint)((ulonglong)lVar30 >> 0x20) &\n               -(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20)" identifier = (binary_expression "(uint)((ulonglong)lVar30 >> 0x20) &\n               -(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20)" (call_expression "(uint)((ulonglong)lVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar30 >> 0x20)" ( (binary_expression "(ulonglong)lVar30 >> 0x20" (cast_expression "(ulonglong)lVar30" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (binary_expression "-(uint)(-(int)uVar29 != 0) - (int)(uVar29 >> 0x20)" (unary_expression "-(uint)(-(int)uVar29 != 0)" - (call_expression "(uint)(-(int)uVar29 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)uVar29 != 0)" ( (binary_expression "-(int)uVar29 != 0" (unary_expression "-(int)uVar29" - (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (cast_expression "(int)(uVar29 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar29 >> 0x20)" ( (binary_expression "uVar29 >> 0x20" identifier >> number_literal) )))))) ;) })) }))) (expression_statement "pTVar25 = target->pti_;" (assignment_expression "pTVar25 = target->pti_" identifier = (field_expression "target->pti_" identifier -> field_identifier)) ;) (expression_statement "*(uint *)((int)&this->memsz_ + 4) = uVar10 - (int)local_4c;" (assignment_expression "*(uint *)((int)&this->memsz_ + 4) = uVar10 - (int)local_4c" (pointer_expression "*(uint *)((int)&this->memsz_ + 4)" * (cast_expression "(uint *)((int)&this->memsz_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&this->memsz_ + 4)" ( (binary_expression "(int)&this->memsz_ + 4" (cast_expression "(int)&this->memsz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->memsz_" & (field_expression "this->memsz_" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "uVar10 - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar8 = pTVar25->isolate_execinstr;" (assignment_expression "bVar8 = pTVar25->isolate_execinstr" identifier = (field_expression "pTVar25->isolate_execinstr" identifier -> field_identifier)) ;) (expression_statement "this_00 = (Target *)((uVar14 - (int)local_50) - (uint)(uVar10 < uVar10 - (int)local_4c));" (assignment_expression "this_00 = (Target *)((uVar14 - (int)local_50) - (uint)(uVar10 < uVar10 - (int)local_4c))" identifier = (cast_expression "(Target *)((uVar14 - (int)local_50) - (uint)(uVar10 < uVar10 - (int)local_4c))" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar14 - (int)local_50) - (uint)(uVar10 < uVar10 - (int)local_4c))" ( (binary_expression "(uVar14 - (int)local_50) - (uint)(uVar10 < uVar10 - (int)local_4c)" (parenthesized_expression "(uVar14 - (int)local_50)" ( (binary_expression "uVar14 - (int)local_50" identifier - (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (call_expression "(uint)(uVar10 < uVar10 - (int)local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar10 - (int)local_4c)" ( (binary_expression "uVar10 < uVar10 - (int)local_4c" identifier < (binary_expression "uVar10 - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) )))) )))) ;) (expression_statement "*(Target **)&this->memsz_ = this_00;" (assignment_expression "*(Target **)&this->memsz_ = this_00" (pointer_expression "*(Target **)&this->memsz_" * (cast_expression "(Target **)&this->memsz_" ( (type_descriptor "Target **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this->memsz_" & (field_expression "this->memsz_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(Layout **)poff = pLVar21;" (assignment_expression "*(Layout **)poff = pLVar21" (pointer_expression "*(Layout **)poff" * (cast_expression "(Layout **)poff" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(Output_data **)((int)poff + 4) = unaff_s2;" (assignment_expression "*(Output_data **)((int)poff + 4) = unaff_s2" (pointer_expression "*(Output_data **)((int)poff + 4)" * (cast_expression "(Output_data **)((int)poff + 4)" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)poff + 4)" ( (binary_expression "(int)poff + 4" (cast_expression "(int)poff" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (bVar8 == false) {\n    return uVar27;\n  }" if (parenthesized_expression "(bVar8 == false)" ( (binary_expression "bVar8 == false" identifier == false) )) (compound_statement "{\n    return uVar27;\n  }" { (return_statement "return uVar27;" return identifier ;) })) (if_statement "if ((this->flags_ & 1) == 0) {\n    return uVar27;\n  }" if (parenthesized_expression "((this->flags_ & 1) == 0)" ( (binary_expression "(this->flags_ & 1) == 0" (parenthesized_expression "(this->flags_ & 1)" ( (binary_expression "this->flags_ & 1" (field_expression "this->flags_" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    return uVar27;\n  }" { (return_statement "return uVar27;" return identifier ;) })) (expression_statement "iVar15 = *(int *)(*local_3c + 8);" (assignment_expression "iVar15 = *(int *)(*local_3c + 8)" identifier = (pointer_expression "*(int *)(*local_3c + 8)" * (cast_expression "(int *)(*local_3c + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_3c + 8)" ( (binary_expression "*local_3c + 8" (pointer_expression "*local_3c" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar15 != 0) {\n    local_48 = *(code **)(iVar15 + 0x5228);\n    unaff_s5 = *(uint **)(iVar15 + 0x522c);\n    if (local_48 == (code *)0x0 && unaff_s5 == (uint *)0x0) {\n      local_48 = *(code **)&pTVar25->abi_pagesize;\n      unaff_s5 = *(uint **)((int)&pTVar25->abi_pagesize + 4);\n    }\n    pcVar24 = local_48;\n    lVar30 = (*(code *)PTR___umoddi3_004c2428)(local_50,local_4c,local_48,unaff_s5);\n    if (lVar30 != 0) {\n      return uVar27;\n    }\n    lVar30 = (*(code *)PTR___umoddi3_004c2428)(pLVar21,unaff_s2,pcVar24,unaff_s5);\n    if (lVar30 == 0) {\n      return uVar27;\n    }\n    fill_data._M_dataplus._M_p = (pointer)&fill_data.field_2;\n    local_50 = (bool *)((int)unaff_s5 - (int)lVar30);\n    fill_data._M_string_length = 0;\n    fill_data.field_2._M_local_buf[0] = '\0';\n    local_4c = (Layout *)fill_data._M_dataplus._M_p;\n    if (pTVar25->has_code_fill == false) {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_resize_004c22c8)(&fill_data,local_50,0);\n    }\n    else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n      (*target->_vptr_Target[6])(local_90,target);\n      (*(code *)PTR_operator__004c3fbc)(&fill_data,local_90);\n      if (local_90[0] != auStack_88) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n    }\n    pOVar6 = (Output_data *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n    *(undefined4 *)&pOVar6->field_0x24 = 0;\n    pOVar6->field_0x20 = pOVar6->field_0x20 & 7 | 0x50;\n    *(size_type *)((int)&pOVar6->data_size_ + 4) = fill_data._M_string_length;\n    *(undefined4 *)&pOVar6->address_ = 0;\n    pOVar6[1]._vptr_Output_data = (_func_int_varargs **)0x0;\n    puVar3 = PTR_vtable_004c2344;\n    puVar13 = PTR__M_construct<char*>_004c2098;\n    *(undefined4 *)&pOVar6->data_size_ = 0;\n    *(undefined4 *)((int)&pOVar6->offset_ + 4) = 0xffffffff;\n    *(undefined4 *)&pOVar6->offset_ = 0xffffffff;\n    *(undefined4 *)((int)&pOVar6->address_ + 4) = 0;\n    *(undefined4 *)&pOVar6[1].field_0x4 = 0;\n    pOVar6->_vptr_Output_data = (_func_int_varargs **)(puVar3 + 8);\n                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */\n    *(off_t **)&pOVar6[1].address_ = &pOVar6[1].data_size_;\n    (*(code *)puVar13)(&pOVar6[1].address_,fill_data._M_dataplus._M_p,\n                       fill_data._M_dataplus._M_p + fill_data._M_string_length,0);\n    uVar14 = (uint)this->vaddr_;\n    uVar10 = uVar14 + (int)this->memsz_;\n    if (*(int *)&pOVar6->field_0x20 < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n      this_00 = (Target *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (this_00,0x142,PTR_s_in_a_linker_script_004c191c + -0x2d50);\n      goto LAB_0021c37c;\n    }\n    bVar1 = pOVar6->field_0x20;\n    *(uint *)&pOVar6->address_ =\n         (uint)(uVar10 < uVar14) + *(int *)&this->vaddr_ + *(int *)&this->memsz_;\n    *(uint *)((int)&pOVar6->address_ + 4) = uVar10;\n    pOVar6->field_0x20 = bVar1 & 0x7f | 0x80;\n    unaff_s1 = this;\n    ppOVar5 = (pointer)poff;\n    if (*(int *)&pOVar6->field_0x20 << 2 < 0) {\nLAB_0021c2ec:\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d60);\nLAB_0021c308:\n      pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d74);\n      lVar30 = CONCAT44(unaff_s5,local_44);\n      unaff_s0 = pLVar21;\n      this = unaff_s1;\n      poff = (off_t *)ppOVar5;\n      goto LAB_0021c324;\n    }\n    *(Layout **)&pOVar6->offset_ = pLVar21;\n    *(Output_data **)((int)&pOVar6->offset_ + 4) = unaff_s2;\n    pOVar6->field_0x20 = bVar1 & 0x5f | 0xa0;\n    __position._M_current =\n         (layout->relax_output_list_).\n         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n         _M_finish;\n    local_58 = pOVar6;\n    if (__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n        _M_end_of_storage) goto LAB_0021c2b4;\n    *__position._M_current = pOVar6;\n    (layout->relax_output_list_).\n    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish =\n         __position._M_current + 1;\n    goto LAB_0021be94;\n  }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    local_48 = *(code **)(iVar15 + 0x5228);\n    unaff_s5 = *(uint **)(iVar15 + 0x522c);\n    if (local_48 == (code *)0x0 && unaff_s5 == (uint *)0x0) {\n      local_48 = *(code **)&pTVar25->abi_pagesize;\n      unaff_s5 = *(uint **)((int)&pTVar25->abi_pagesize + 4);\n    }\n    pcVar24 = local_48;\n    lVar30 = (*(code *)PTR___umoddi3_004c2428)(local_50,local_4c,local_48,unaff_s5);\n    if (lVar30 != 0) {\n      return uVar27;\n    }\n    lVar30 = (*(code *)PTR___umoddi3_004c2428)(pLVar21,unaff_s2,pcVar24,unaff_s5);\n    if (lVar30 == 0) {\n      return uVar27;\n    }\n    fill_data._M_dataplus._M_p = (pointer)&fill_data.field_2;\n    local_50 = (bool *)((int)unaff_s5 - (int)lVar30);\n    fill_data._M_string_length = 0;\n    fill_data.field_2._M_local_buf[0] = '\0';\n    local_4c = (Layout *)fill_data._M_dataplus._M_p;\n    if (pTVar25->has_code_fill == false) {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_resize_004c22c8)(&fill_data,local_50,0);\n    }\n    else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n      (*target->_vptr_Target[6])(local_90,target);\n      (*(code *)PTR_operator__004c3fbc)(&fill_data,local_90);\n      if (local_90[0] != auStack_88) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n    }\n    pOVar6 = (Output_data *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n    *(undefined4 *)&pOVar6->field_0x24 = 0;\n    pOVar6->field_0x20 = pOVar6->field_0x20 & 7 | 0x50;\n    *(size_type *)((int)&pOVar6->data_size_ + 4) = fill_data._M_string_length;\n    *(undefined4 *)&pOVar6->address_ = 0;\n    pOVar6[1]._vptr_Output_data = (_func_int_varargs **)0x0;\n    puVar3 = PTR_vtable_004c2344;\n    puVar13 = PTR__M_construct<char*>_004c2098;\n    *(undefined4 *)&pOVar6->data_size_ = 0;\n    *(undefined4 *)((int)&pOVar6->offset_ + 4) = 0xffffffff;\n    *(undefined4 *)&pOVar6->offset_ = 0xffffffff;\n    *(undefined4 *)((int)&pOVar6->address_ + 4) = 0;\n    *(undefined4 *)&pOVar6[1].field_0x4 = 0;\n    pOVar6->_vptr_Output_data = (_func_int_varargs **)(puVar3 + 8);\n                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */\n    *(off_t **)&pOVar6[1].address_ = &pOVar6[1].data_size_;\n    (*(code *)puVar13)(&pOVar6[1].address_,fill_data._M_dataplus._M_p,\n                       fill_data._M_dataplus._M_p + fill_data._M_string_length,0);\n    uVar14 = (uint)this->vaddr_;\n    uVar10 = uVar14 + (int)this->memsz_;\n    if (*(int *)&pOVar6->field_0x20 < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n      this_00 = (Target *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (this_00,0x142,PTR_s_in_a_linker_script_004c191c + -0x2d50);\n      goto LAB_0021c37c;\n    }\n    bVar1 = pOVar6->field_0x20;\n    *(uint *)&pOVar6->address_ =\n         (uint)(uVar10 < uVar14) + *(int *)&this->vaddr_ + *(int *)&this->memsz_;\n    *(uint *)((int)&pOVar6->address_ + 4) = uVar10;\n    pOVar6->field_0x20 = bVar1 & 0x7f | 0x80;\n    unaff_s1 = this;\n    ppOVar5 = (pointer)poff;\n    if (*(int *)&pOVar6->field_0x20 << 2 < 0) {\nLAB_0021c2ec:\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d60);\nLAB_0021c308:\n      pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d74);\n      lVar30 = CONCAT44(unaff_s5,local_44);\n      unaff_s0 = pLVar21;\n      this = unaff_s1;\n      poff = (off_t *)ppOVar5;\n      goto LAB_0021c324;\n    }\n    *(Layout **)&pOVar6->offset_ = pLVar21;\n    *(Output_data **)((int)&pOVar6->offset_ + 4) = unaff_s2;\n    pOVar6->field_0x20 = bVar1 & 0x5f | 0xa0;\n    __position._M_current =\n         (layout->relax_output_list_).\n         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n         _M_finish;\n    local_58 = pOVar6;\n    if (__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n        _M_end_of_storage) goto LAB_0021c2b4;\n    *__position._M_current = pOVar6;\n    (layout->relax_output_list_).\n    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish =\n         __position._M_current + 1;\n    goto LAB_0021be94;\n  }" { (expression_statement "local_48 = *(code **)(iVar15 + 0x5228);" (assignment_expression "local_48 = *(code **)(iVar15 + 0x5228)" identifier = (pointer_expression "*(code **)(iVar15 + 0x5228)" * (cast_expression "(code **)(iVar15 + 0x5228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x5228)" ( (binary_expression "iVar15 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = *(uint **)(iVar15 + 0x522c);" (assignment_expression "unaff_s5 = *(uint **)(iVar15 + 0x522c)" identifier = (pointer_expression "*(uint **)(iVar15 + 0x522c)" * (cast_expression "(uint **)(iVar15 + 0x522c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x522c)" ( (binary_expression "iVar15 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (local_48 == (code *)0x0 && unaff_s5 == (uint *)0x0) {\n      local_48 = *(code **)&pTVar25->abi_pagesize;\n      unaff_s5 = *(uint **)((int)&pTVar25->abi_pagesize + 4);\n    }" if (parenthesized_expression "(local_48 == (code *)0x0 && unaff_s5 == (uint *)0x0)" ( (binary_expression "local_48 == (code *)0x0 && unaff_s5 == (uint *)0x0" (binary_expression "local_48 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "unaff_s5 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      local_48 = *(code **)&pTVar25->abi_pagesize;\n      unaff_s5 = *(uint **)((int)&pTVar25->abi_pagesize + 4);\n    }" { (expression_statement "local_48 = *(code **)&pTVar25->abi_pagesize;" (assignment_expression "local_48 = *(code **)&pTVar25->abi_pagesize" identifier = (pointer_expression "*(code **)&pTVar25->abi_pagesize" * (cast_expression "(code **)&pTVar25->abi_pagesize" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pTVar25->abi_pagesize" & (field_expression "pTVar25->abi_pagesize" identifier -> field_identifier))))) ;) (expression_statement "unaff_s5 = *(uint **)((int)&pTVar25->abi_pagesize + 4);" (assignment_expression "unaff_s5 = *(uint **)((int)&pTVar25->abi_pagesize + 4)" identifier = (pointer_expression "*(uint **)((int)&pTVar25->abi_pagesize + 4)" * (cast_expression "(uint **)((int)&pTVar25->abi_pagesize + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pTVar25->abi_pagesize + 4)" ( (binary_expression "(int)&pTVar25->abi_pagesize + 4" (cast_expression "(int)&pTVar25->abi_pagesize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar25->abi_pagesize" & (field_expression "pTVar25->abi_pagesize" identifier -> field_identifier))) + number_literal) ))))) ;) })) (expression_statement "pcVar24 = local_48;" (assignment_expression "pcVar24 = local_48" identifier = identifier) ;) (expression_statement "lVar30 = (*(code *)PTR___umoddi3_004c2428)(local_50,local_4c,local_48,unaff_s5);" (assignment_expression "lVar30 = (*(code *)PTR___umoddi3_004c2428)(local_50,local_4c,local_48,unaff_s5)" identifier = (call_expression "(*(code *)PTR___umoddi3_004c2428)(local_50,local_4c,local_48,unaff_s5)" (parenthesized_expression "(*(code *)PTR___umoddi3_004c2428)" ( (pointer_expression "*(code *)PTR___umoddi3_004c2428" * (cast_expression "(code *)PTR___umoddi3_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_50,local_4c,local_48,unaff_s5)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar30 != 0) {\n      return uVar27;\n    }" if (parenthesized_expression "(lVar30 != 0)" ( (binary_expression "lVar30 != 0" identifier != number_literal) )) (compound_statement "{\n      return uVar27;\n    }" { (return_statement "return uVar27;" return identifier ;) })) (expression_statement "lVar30 = (*(code *)PTR___umoddi3_004c2428)(pLVar21,unaff_s2,pcVar24,unaff_s5);" (assignment_expression "lVar30 = (*(code *)PTR___umoddi3_004c2428)(pLVar21,unaff_s2,pcVar24,unaff_s5)" identifier = (call_expression "(*(code *)PTR___umoddi3_004c2428)(pLVar21,unaff_s2,pcVar24,unaff_s5)" (parenthesized_expression "(*(code *)PTR___umoddi3_004c2428)" ( (pointer_expression "*(code *)PTR___umoddi3_004c2428" * (cast_expression "(code *)PTR___umoddi3_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pLVar21,unaff_s2,pcVar24,unaff_s5)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar30 == 0) {\n      return uVar27;\n    }" if (parenthesized_expression "(lVar30 == 0)" ( (binary_expression "lVar30 == 0" identifier == number_literal) )) (compound_statement "{\n      return uVar27;\n    }" { (return_statement "return uVar27;" return identifier ;) })) (expression_statement "fill_data._M_dataplus._M_p = (pointer)&fill_data.field_2;" (assignment_expression "fill_data._M_dataplus._M_p = (pointer)&fill_data.field_2" (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&fill_data.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "fill_data.field_2" identifier . field_identifier))) ;) (expression_statement "local_50 = (bool *)((int)unaff_s5 - (int)lVar30);" (assignment_expression "local_50 = (bool *)((int)unaff_s5 - (int)lVar30)" identifier = (cast_expression "(bool *)((int)unaff_s5 - (int)lVar30)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 - (int)lVar30)" ( (binary_expression "(int)unaff_s5 - (int)lVar30" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)lVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "fill_data._M_string_length = 0;" (assignment_expression "fill_data._M_string_length = 0" (field_expression "fill_data._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "fill_data.field_2._M_local_buf[0] = '\0';" (assignment_expression "fill_data.field_2._M_local_buf[0] = '\0'" (subscript_expression "fill_data.field_2._M_local_buf[0]" (field_expression "fill_data.field_2._M_local_buf" (field_expression "fill_data.field_2" identifier . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_4c = (Layout *)fill_data._M_dataplus._M_p;" (assignment_expression "local_4c = (Layout *)fill_data._M_dataplus._M_p" identifier = (cast_expression "(Layout *)fill_data._M_dataplus._M_p" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier))) ;) (if_statement "if (pTVar25->has_code_fill == false) {\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_resize_004c22c8)(&fill_data,local_50,0);\n    }\n    else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n      (*target->_vptr_Target[6])(local_90,target);\n      (*(code *)PTR_operator__004c3fbc)(&fill_data,local_90);\n      if (local_90[0] != auStack_88) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n    }" if (parenthesized_expression "(pTVar25->has_code_fill == false)" ( (binary_expression "pTVar25->has_code_fill == false" (field_expression "pTVar25->has_code_fill" identifier -> field_identifier) == false) )) (compound_statement "{\n                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_resize_004c22c8)(&fill_data,local_50,0);\n    }" { comment (expression_statement "(*(code *)PTR_resize_004c22c8)(&fill_data,local_50,0);" (call_expression "(*(code *)PTR_resize_004c22c8)(&fill_data,local_50,0)" (parenthesized_expression "(*(code *)PTR_resize_004c22c8)" ( (pointer_expression "*(code *)PTR_resize_004c22c8" * (cast_expression "(code *)PTR_resize_004c22c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&fill_data,local_50,0)" ( (pointer_expression "&fill_data" & identifier) , identifier , number_literal ))) ;) }) (else_clause "else {\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n      (*target->_vptr_Target[6])(local_90,target);\n      (*(code *)PTR_operator__004c3fbc)(&fill_data,local_90);\n      if (local_90[0] != auStack_88) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n    }" else (compound_statement "{\n                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */\n      (*target->_vptr_Target[6])(local_90,target);\n      (*(code *)PTR_operator__004c3fbc)(&fill_data,local_90);\n      if (local_90[0] != auStack_88) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n    }" { comment (expression_statement "(*target->_vptr_Target[6])(local_90,target);" (call_expression "(*target->_vptr_Target[6])(local_90,target)" (parenthesized_expression "(*target->_vptr_Target[6])" ( (pointer_expression "*target->_vptr_Target[6]" * (subscript_expression "target->_vptr_Target[6]" (field_expression "target->_vptr_Target" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(local_90,target)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_operator__004c3fbc)(&fill_data,local_90);" (call_expression "(*(code *)PTR_operator__004c3fbc)(&fill_data,local_90)" (parenthesized_expression "(*(code *)PTR_operator__004c3fbc)" ( (pointer_expression "*(code *)PTR_operator__004c3fbc" * (cast_expression "(code *)PTR_operator__004c3fbc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&fill_data,local_90)" ( (pointer_expression "&fill_data" & identifier) , identifier ))) ;) (if_statement "if (local_90[0] != auStack_88) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }" if (parenthesized_expression "(local_90[0] != auStack_88)" ( (binary_expression "local_90[0] != auStack_88" (subscript_expression "local_90[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) }))) (expression_statement "pOVar6 = (Output_data *)(*(code *)PTR_operator_new_004c13a8)(0x48);" (assignment_expression "pOVar6 = (Output_data *)(*(code *)PTR_operator_new_004c13a8)(0x48)" identifier = (cast_expression "(Output_data *)(*(code *)PTR_operator_new_004c13a8)(0x48)" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x48)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x48)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)&pOVar6->field_0x24 = 0;" (assignment_expression "*(undefined4 *)&pOVar6->field_0x24 = 0" (pointer_expression "*(undefined4 *)&pOVar6->field_0x24" * (cast_expression "(undefined4 *)&pOVar6->field_0x24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar6->field_0x24" & (field_expression "pOVar6->field_0x24" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "pOVar6->field_0x20 = pOVar6->field_0x20 & 7 | 0x50;" (assignment_expression "pOVar6->field_0x20 = pOVar6->field_0x20 & 7 | 0x50" (field_expression "pOVar6->field_0x20" identifier -> field_identifier) = (binary_expression "pOVar6->field_0x20 & 7 | 0x50" (binary_expression "pOVar6->field_0x20 & 7" (field_expression "pOVar6->field_0x20" identifier -> field_identifier) & number_literal) | number_literal)) ;) (expression_statement "*(size_type *)((int)&pOVar6->data_size_ + 4) = fill_data._M_string_length;" (assignment_expression "*(size_type *)((int)&pOVar6->data_size_ + 4) = fill_data._M_string_length" (pointer_expression "*(size_type *)((int)&pOVar6->data_size_ + 4)" * (cast_expression "(size_type *)((int)&pOVar6->data_size_ + 4)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar6->data_size_ + 4)" ( (binary_expression "(int)&pOVar6->data_size_ + 4" (cast_expression "(int)&pOVar6->data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar6->data_size_" & (field_expression "pOVar6->data_size_" identifier -> field_identifier))) + number_literal) )))) = (field_expression "fill_data._M_string_length" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)&pOVar6->address_ = 0;" (assignment_expression "*(undefined4 *)&pOVar6->address_ = 0" (pointer_expression "*(undefined4 *)&pOVar6->address_" * (cast_expression "(undefined4 *)&pOVar6->address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar6->address_" & (field_expression "pOVar6->address_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "pOVar6[1]._vptr_Output_data = (_func_int_varargs **)0x0;" (assignment_expression "pOVar6[1]._vptr_Output_data = (_func_int_varargs **)0x0" (field_expression "pOVar6[1]._vptr_Output_data" (subscript_expression "pOVar6[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "puVar3 = PTR_vtable_004c2344;" (assignment_expression "puVar3 = PTR_vtable_004c2344" identifier = identifier) ;) (expression_statement "puVar13 = PTR__M_construct<char*>_004c2098;" (assignment_expression "puVar13 = PTR__M_construct<char*>_004c2098" identifier = (binary_expression "PTR__M_construct<char*>_004c2098" (binary_expression "PTR__M_construct<char" identifier < identifier) (ERROR "*" *) > identifier)) ;) (expression_statement "*(undefined4 *)&pOVar6->data_size_ = 0;" (assignment_expression "*(undefined4 *)&pOVar6->data_size_ = 0" (pointer_expression "*(undefined4 *)&pOVar6->data_size_" * (cast_expression "(undefined4 *)&pOVar6->data_size_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar6->data_size_" & (field_expression "pOVar6->data_size_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar6->offset_ + 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)((int)&pOVar6->offset_ + 4) = 0xffffffff" (pointer_expression "*(undefined4 *)((int)&pOVar6->offset_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar6->offset_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar6->offset_ + 4)" ( (binary_expression "(int)&pOVar6->offset_ + 4" (cast_expression "(int)&pOVar6->offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar6->offset_" & (field_expression "pOVar6->offset_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&pOVar6->offset_ = 0xffffffff;" (assignment_expression "*(undefined4 *)&pOVar6->offset_ = 0xffffffff" (pointer_expression "*(undefined4 *)&pOVar6->offset_" * (cast_expression "(undefined4 *)&pOVar6->offset_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar6->offset_" & (field_expression "pOVar6->offset_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar6->address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar6->address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar6->address_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar6->address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar6->address_ + 4)" ( (binary_expression "(int)&pOVar6->address_ + 4" (cast_expression "(int)&pOVar6->address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar6->address_" & (field_expression "pOVar6->address_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&pOVar6[1].field_0x4 = 0;" (assignment_expression "*(undefined4 *)&pOVar6[1].field_0x4 = 0" (pointer_expression "*(undefined4 *)&pOVar6[1].field_0x4" * (cast_expression "(undefined4 *)&pOVar6[1].field_0x4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar6[1].field_0x4" & (field_expression "pOVar6[1].field_0x4" (subscript_expression "pOVar6[1]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "pOVar6->_vptr_Output_data = (_func_int_varargs **)(puVar3 + 8);" (assignment_expression "pOVar6->_vptr_Output_data = (_func_int_varargs **)(puVar3 + 8)" (field_expression "pOVar6->_vptr_Output_data" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)(puVar3 + 8)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) ;) comment (expression_statement "*(off_t **)&pOVar6[1].address_ = &pOVar6[1].data_size_;" (assignment_expression "*(off_t **)&pOVar6[1].address_ = &pOVar6[1].data_size_" (pointer_expression "*(off_t **)&pOVar6[1].address_" * (cast_expression "(off_t **)&pOVar6[1].address_" ( (type_descriptor "off_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar6[1].address_" & (field_expression "pOVar6[1].address_" (subscript_expression "pOVar6[1]" identifier [ number_literal ]) . field_identifier)))) = (pointer_expression "&pOVar6[1].data_size_" & (field_expression "pOVar6[1].data_size_" (subscript_expression "pOVar6[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "(*(code *)puVar13)(&pOVar6[1].address_,fill_data._M_dataplus._M_p,\n                       fill_data._M_dataplus._M_p + fill_data._M_string_length,0);" (call_expression "(*(code *)puVar13)(&pOVar6[1].address_,fill_data._M_dataplus._M_p,\n                       fill_data._M_dataplus._M_p + fill_data._M_string_length,0)" (parenthesized_expression "(*(code *)puVar13)" ( (pointer_expression "*(code *)puVar13" * (cast_expression "(code *)puVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&pOVar6[1].address_,fill_data._M_dataplus._M_p,\n                       fill_data._M_dataplus._M_p + fill_data._M_string_length,0)" ( (pointer_expression "&pOVar6[1].address_" & (field_expression "pOVar6[1].address_" (subscript_expression "pOVar6[1]" identifier [ number_literal ]) . field_identifier)) , (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier) , (binary_expression "fill_data._M_dataplus._M_p + fill_data._M_string_length" (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier) + (field_expression "fill_data._M_string_length" identifier . field_identifier)) , number_literal ))) ;) (expression_statement "uVar14 = (uint)this->vaddr_;" (assignment_expression "uVar14 = (uint)this->vaddr_" identifier = (cast_expression "(uint)this->vaddr_" ( (type_descriptor "uint" type_identifier) ) (field_expression "this->vaddr_" identifier -> field_identifier))) ;) (expression_statement "uVar10 = uVar14 + (int)this->memsz_;" (assignment_expression "uVar10 = uVar14 + (int)this->memsz_" identifier = (binary_expression "uVar14 + (int)this->memsz_" identifier + (cast_expression "(int)this->memsz_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->memsz_" identifier -> field_identifier)))) ;) (if_statement "if (*(int *)&pOVar6->field_0x20 < 0) {\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n      this_00 = (Target *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (this_00,0x142,PTR_s_in_a_linker_script_004c191c + -0x2d50);\n      goto LAB_0021c37c;\n    }" if (parenthesized_expression "(*(int *)&pOVar6->field_0x20 < 0)" ( (binary_expression "*(int *)&pOVar6->field_0x20 < 0" (pointer_expression "*(int *)&pOVar6->field_0x20" * (cast_expression "(int *)&pOVar6->field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar6->field_0x20" & (field_expression "pOVar6->field_0x20" identifier -> field_identifier)))) < number_literal) )) (compound_statement "{\n                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */\n      this_00 = (Target *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (this_00,0x142,PTR_s_in_a_linker_script_004c191c + -0x2d50);\n      goto LAB_0021c37c;\n    }" { comment (expression_statement "this_00 = (Target *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);" (assignment_expression "this_00 = (Target *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574)" identifier = (cast_expression "(Target *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574)" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (this_00,0x142,PTR_s_in_a_linker_script_004c191c + -0x2d50);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (this_00,0x142,PTR_s_in_a_linker_script_004c191c + -0x2d50)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this_00,0x142,PTR_s_in_a_linker_script_004c191c + -0x2d50)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d50" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0021c37c;" goto statement_identifier ;) })) (expression_statement "bVar1 = pOVar6->field_0x20;" (assignment_expression "bVar1 = pOVar6->field_0x20" identifier = (field_expression "pOVar6->field_0x20" identifier -> field_identifier)) ;) (expression_statement "*(uint *)&pOVar6->address_ =\n         (uint)(uVar10 < uVar14) + *(int *)&this->vaddr_ + *(int *)&this->memsz_;" (assignment_expression "*(uint *)&pOVar6->address_ =\n         (uint)(uVar10 < uVar14) + *(int *)&this->vaddr_ + *(int *)&this->memsz_" (pointer_expression "*(uint *)&pOVar6->address_" * (cast_expression "(uint *)&pOVar6->address_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar6->address_" & (field_expression "pOVar6->address_" identifier -> field_identifier)))) = (binary_expression "(uint)(uVar10 < uVar14) + *(int *)&this->vaddr_ + *(int *)&this->memsz_" (binary_expression "(uint)(uVar10 < uVar14) + *(int *)&this->vaddr_" (call_expression "(uint)(uVar10 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar14)" ( (binary_expression "uVar10 < uVar14" identifier < identifier) ))) + (pointer_expression "*(int *)&this->vaddr_" * (cast_expression "(int *)&this->vaddr_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->vaddr_" & (field_expression "this->vaddr_" identifier -> field_identifier))))) + (pointer_expression "*(int *)&this->memsz_" * (cast_expression "(int *)&this->memsz_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->memsz_" & (field_expression "this->memsz_" identifier -> field_identifier)))))) ;) (expression_statement "*(uint *)((int)&pOVar6->address_ + 4) = uVar10;" (assignment_expression "*(uint *)((int)&pOVar6->address_ + 4) = uVar10" (pointer_expression "*(uint *)((int)&pOVar6->address_ + 4)" * (cast_expression "(uint *)((int)&pOVar6->address_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar6->address_ + 4)" ( (binary_expression "(int)&pOVar6->address_ + 4" (cast_expression "(int)&pOVar6->address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar6->address_" & (field_expression "pOVar6->address_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pOVar6->field_0x20 = bVar1 & 0x7f | 0x80;" (assignment_expression "pOVar6->field_0x20 = bVar1 & 0x7f | 0x80" (field_expression "pOVar6->field_0x20" identifier -> field_identifier) = (binary_expression "bVar1 & 0x7f | 0x80" (binary_expression "bVar1 & 0x7f" identifier & number_literal) | number_literal)) ;) (expression_statement "unaff_s1 = this;" (assignment_expression "unaff_s1 = this" identifier = identifier) ;) (expression_statement "ppOVar5 = (pointer)poff;" (assignment_expression "ppOVar5 = (pointer)poff" identifier = (cast_expression "(pointer)poff" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (*(int *)&pOVar6->field_0x20 << 2 < 0) {\nLAB_0021c2ec:\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d60);\nLAB_0021c308:\n      pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d74);\n      lVar30 = CONCAT44(unaff_s5,local_44);\n      unaff_s0 = pLVar21;\n      this = unaff_s1;\n      poff = (off_t *)ppOVar5;\n      goto LAB_0021c324;\n    }" if (parenthesized_expression "(*(int *)&pOVar6->field_0x20 << 2 < 0)" ( (binary_expression "*(int *)&pOVar6->field_0x20 << 2 < 0" (binary_expression "*(int *)&pOVar6->field_0x20 << 2" (pointer_expression "*(int *)&pOVar6->field_0x20" * (cast_expression "(int *)&pOVar6->field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar6->field_0x20" & (field_expression "pOVar6->field_0x20" identifier -> field_identifier)))) << number_literal) < number_literal) )) (compound_statement "{\nLAB_0021c2ec:\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d60);\nLAB_0021c308:\n      pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d74);\n      lVar30 = CONCAT44(unaff_s5,local_44);\n      unaff_s0 = pLVar21;\n      this = unaff_s1;\n      poff = (off_t *)ppOVar5;\n      goto LAB_0021c324;\n    }" { (labeled_statement "LAB_0021c2ec:\n                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d60);" statement_identifier : comment (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d60);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d60)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d60)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d60" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0021c308:\n      pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;" statement_identifier : (expression_statement "pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30;" (assignment_expression "pcVar24 = (code *)PTR_do_gold_unreachable_004c1a30" identifier = (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d74);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d74)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                 PTR_s_in_a_linker_script_004c191c + -0x2d74)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d74" identifier + number_literal) ))) ;) (expression_statement "lVar30 = CONCAT44(unaff_s5,local_44);" (assignment_expression "lVar30 = CONCAT44(unaff_s5,local_44)" identifier = (call_expression "CONCAT44(unaff_s5,local_44)" identifier (argument_list "(unaff_s5,local_44)" ( identifier , identifier )))) ;) (expression_statement "unaff_s0 = pLVar21;" (assignment_expression "unaff_s0 = pLVar21" identifier = identifier) ;) (expression_statement "this = unaff_s1;" (assignment_expression "this = unaff_s1" identifier = identifier) ;) (expression_statement "poff = (off_t *)ppOVar5;" (assignment_expression "poff = (off_t *)ppOVar5" identifier = (cast_expression "(off_t *)ppOVar5" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0021c324;" goto statement_identifier ;) })) (expression_statement "*(Layout **)&pOVar6->offset_ = pLVar21;" (assignment_expression "*(Layout **)&pOVar6->offset_ = pLVar21" (pointer_expression "*(Layout **)&pOVar6->offset_" * (cast_expression "(Layout **)&pOVar6->offset_" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pOVar6->offset_" & (field_expression "pOVar6->offset_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(Output_data **)((int)&pOVar6->offset_ + 4) = unaff_s2;" (assignment_expression "*(Output_data **)((int)&pOVar6->offset_ + 4) = unaff_s2" (pointer_expression "*(Output_data **)((int)&pOVar6->offset_ + 4)" * (cast_expression "(Output_data **)((int)&pOVar6->offset_ + 4)" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pOVar6->offset_ + 4)" ( (binary_expression "(int)&pOVar6->offset_ + 4" (cast_expression "(int)&pOVar6->offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar6->offset_" & (field_expression "pOVar6->offset_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pOVar6->field_0x20 = bVar1 & 0x5f | 0xa0;" (assignment_expression "pOVar6->field_0x20 = bVar1 & 0x5f | 0xa0" (field_expression "pOVar6->field_0x20" identifier -> field_identifier) = (binary_expression "bVar1 & 0x5f | 0xa0" (binary_expression "bVar1 & 0x5f" identifier & number_literal) | number_literal)) ;) (expression_statement "__position._M_current =\n         (layout->relax_output_list_).\n         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n         _M_finish;" (field_expression "__position._M_current =\n         (layout->relax_output_list_).\n         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n         _M_finish" (field_expression "__position._M_current =\n         (layout->relax_output_list_).\n         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "__position._M_current =\n         (layout->relax_output_list_).\n         super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "__position._M_current =\n         (layout->relax_output_list_).\n         super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "__position._M_current =\n         (layout->relax_output_list_).\n         super__Vector_base<gold::Output_data*,_std" (assignment_expression "__position._M_current =\n         (layout->relax_output_list_).\n         super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(layout->relax_output_list_).\n         super__Vector_base<gold" (field_expression "(layout->relax_output_list_).\n         super__Vector_base" (parenthesized_expression "(layout->relax_output_list_)" ( (field_expression "layout->relax_output_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "local_58 = pOVar6;" (assignment_expression "local_58 = pOVar6" identifier = identifier) ;) (if_statement "if (__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n        _M_end_of_storage) goto LAB_0021c2b4;" if (parenthesized_expression "(__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n        _M_end_of_storage)" ( (field_expression "__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n        _M_end_of_storage" (field_expression "__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold::Output_data*,_std" (binary_expression "__position._M_current ==\n        (layout->relax_output_list_).\n        super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) == (binary_expression "(layout->relax_output_list_).\n        super__Vector_base<gold" (field_expression "(layout->relax_output_list_).\n        super__Vector_base" (parenthesized_expression "(layout->relax_output_list_)" ( (field_expression "layout->relax_output_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (goto_statement "goto LAB_0021c2b4;" goto statement_identifier ;)) (expression_statement "*__position._M_current = pOVar6;" (assignment_expression "*__position._M_current = pOVar6" (pointer_expression "*__position._M_current" * (field_expression "__position._M_current" identifier . field_identifier)) = identifier) ;) (expression_statement "(layout->relax_output_list_).\n    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish =\n         __position._M_current + 1;" (assignment_expression "(layout->relax_output_list_).\n    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish =\n         __position._M_current + 1" (field_expression "(layout->relax_output_list_).\n    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl._M_finish" (field_expression "(layout->relax_output_list_).\n    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(layout->relax_output_list_).\n    super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(layout->relax_output_list_).\n    super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(layout->relax_output_list_).\n    super__Vector_base<gold::Output_data*,_std" (binary_expression "(layout->relax_output_list_).\n    super__Vector_base<gold" (field_expression "(layout->relax_output_list_).\n    super__Vector_base" (parenthesized_expression "(layout->relax_output_list_)" ( (field_expression "layout->relax_output_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;) (goto_statement "goto LAB_0021be94;" goto statement_identifier ;) })) (labeled_statement "LAB_0021c37c:\n  Target::abi_pagesize(this_00);" statement_identifier : (labeled_statement "Target::abi_pagesize(this_00);" statement_identifier : (ERROR ":" :) (expression_statement "abi_pagesize(this_00);" (call_expression "abi_pagesize(this_00)" identifier (argument_list "(this_00)" ( identifier ))) ;))) (labeled_statement "LAB_0021c388:\n                    /* try { // try from 0021c39c to 0021c3db has its CatchHandler @ 0021c3dc */\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);" statement_identifier : comment (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n             PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n             PTR_s_in_a_linker_script_004c191c + -0x3260)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" identifier + number_literal) ))) ;)) (goto_statement "goto LAB_0021c3a4;" goto statement_identifier ;) (labeled_statement "LAB_0021c298:\n  uVar27 = CONCAT44(pppOVar22,unaff_s4);" statement_identifier : (expression_statement "uVar27 = CONCAT44(pppOVar22,unaff_s4);" (assignment_expression "uVar27 = CONCAT44(pppOVar22,unaff_s4)" identifier = (call_expression "CONCAT44(pppOVar22,unaff_s4)" identifier (argument_list "(pppOVar22,unaff_s4)" ( identifier , identifier )))) ;)) (expression_statement "__position._M_current = (Output_data **)0x115d;" (assignment_expression "__position._M_current = (Output_data **)0x115d" (field_expression "__position._M_current" identifier . field_identifier) = (cast_expression "(Output_data **)0x115d" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "poff = (off_t *)ppOVar5;" (assignment_expression "poff = (off_t *)ppOVar5" identifier = (cast_expression "(off_t *)ppOVar5" ( (type_descriptor "off_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0021c29c:\n  this = unaff_s1;" statement_identifier : (expression_statement "this = unaff_s1;" (assignment_expression "this = unaff_s1" identifier = identifier) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,__position._M_current,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,__position._M_current,\n             PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,__position._M_current,\n             PTR_s_in_a_linker_script_004c191c + -0x3260)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , (field_expression "__position._M_current" identifier . field_identifier) , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" identifier + number_literal) ))) ;) (labeled_statement "LAB_0021c2b4:\n                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */\n  std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n  _M_realloc_insert<gold::Output_data*_const&>(&layout->relax_output_list_,__position,&local_58);" statement_identifier : comment (ERROR "std::vector<gold::Output_data*,_std::allocator<gold::Output_data*>_>::\n  _M_realloc_insert<gold::" (comma_expression "std::vector<gold::Output_data*,_std" identifier (ERROR "::vector<gold::Output_data*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Output_data*>_>::\n  _M_realloc_insert<gold" (binary_expression "Output_data*>_>::\n  _M_realloc_insert" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) > (ERROR "::" : :) identifier) < identifier) : :) (expression_statement "Output_data*_const&>(&layout->relax_output_list_,__position,&local_58);" (binary_expression "Output_data*_const&>(&layout->relax_output_list_,__position,&local_58)" (binary_expression "Output_data*_const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "(&layout->relax_output_list_,__position,&local_58)" ( (comma_expression "&layout->relax_output_list_,__position,&local_58" (pointer_expression "&layout->relax_output_list_" & (field_expression "layout->relax_output_list_" identifier -> field_identifier)) , (comma_expression "__position,&local_58" identifier , (pointer_expression "&local_58" & identifier))) ))) ;)) (labeled_statement "LAB_0021be94:\n  pOVar17 = (Output_data *)((int)&unaff_s2->_vptr_Output_data + (int)local_50);" statement_identifier : (expression_statement "pOVar17 = (Output_data *)((int)&unaff_s2->_vptr_Output_data + (int)local_50);" (assignment_expression "pOVar17 = (Output_data *)((int)&unaff_s2->_vptr_Output_data + (int)local_50)" identifier = (cast_expression "(Output_data *)((int)&unaff_s2->_vptr_Output_data + (int)local_50)" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s2->_vptr_Output_data + (int)local_50)" ( (binary_expression "(int)&unaff_s2->_vptr_Output_data + (int)local_50" (cast_expression "(int)&unaff_s2->_vptr_Output_data" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s2->_vptr_Output_data" & (field_expression "unaff_s2->_vptr_Output_data" identifier -> field_identifier))) + (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "pOVar6 = (Output_data *)((int)&pLVar21->number_of_input_files_ + (uint)(pOVar17 < unaff_s2));" (assignment_expression "pOVar6 = (Output_data *)((int)&pLVar21->number_of_input_files_ + (uint)(pOVar17 < unaff_s2))" identifier = (cast_expression "(Output_data *)((int)&pLVar21->number_of_input_files_ + (uint)(pOVar17 < unaff_s2))" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pLVar21->number_of_input_files_ + (uint)(pOVar17 < unaff_s2))" ( (binary_expression "(int)&pLVar21->number_of_input_files_ + (uint)(pOVar17 < unaff_s2)" (cast_expression "(int)&pLVar21->number_of_input_files_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pLVar21->number_of_input_files_" & (field_expression "pLVar21->number_of_input_files_" identifier -> field_identifier))) + (call_expression "(uint)(pOVar17 < unaff_s2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar17 < unaff_s2)" ( (binary_expression "pOVar17 < unaff_s2" identifier < identifier) )))) )))) ;) (expression_statement "lVar30 = (*(code *)PTR___umoddi3_004c2428)(pOVar6,pOVar17,local_48,unaff_s5);" (assignment_expression "lVar30 = (*(code *)PTR___umoddi3_004c2428)(pOVar6,pOVar17,local_48,unaff_s5)" identifier = (call_expression "(*(code *)PTR___umoddi3_004c2428)(pOVar6,pOVar17,local_48,unaff_s5)" (parenthesized_expression "(*(code *)PTR___umoddi3_004c2428)" ( (pointer_expression "*(code *)PTR___umoddi3_004c2428" * (cast_expression "(code *)PTR___umoddi3_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pOVar6,pOVar17,local_48,unaff_s5)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar30 != 0) goto LAB_0021c3c0;" if (parenthesized_expression "(lVar30 != 0)" ( (binary_expression "lVar30 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0021c3c0;" goto statement_identifier ;)) (expression_statement "uVar27 = uVar27 + ZEXT48(local_50);" (assignment_expression "uVar27 = uVar27 + ZEXT48(local_50)" identifier = (binary_expression "uVar27 + ZEXT48(local_50)" identifier + (call_expression "ZEXT48(local_50)" identifier (argument_list "(local_50)" ( identifier ))))) ;) (expression_statement "lVar30 = (*(code *)PTR___umoddi3_004c2428)((int)(uVar27 >> 0x20),(int)uVar27,local_48,unaff_s5);" (assignment_expression "lVar30 = (*(code *)PTR___umoddi3_004c2428)((int)(uVar27 >> 0x20),(int)uVar27,local_48,unaff_s5)" identifier = (call_expression "(*(code *)PTR___umoddi3_004c2428)((int)(uVar27 >> 0x20),(int)uVar27,local_48,unaff_s5)" (parenthesized_expression "(*(code *)PTR___umoddi3_004c2428)" ( (pointer_expression "*(code *)PTR___umoddi3_004c2428" * (cast_expression "(code *)PTR___umoddi3_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)(uVar27 >> 0x20),(int)uVar27,local_48,unaff_s5)" ( (cast_expression "(int)(uVar27 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar27 >> 0x20)" ( (binary_expression "uVar27 >> 0x20" identifier >> number_literal) ))) , (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier )))) ;) (if_statement "if (lVar30 == 0) {\n    iVar15 = *(int *)&this->memsz_;\n    if ((iVar15 == *(int *)&this->filesz_) &&\n       (iVar9 = (int)this->memsz_, iVar9 == (int)this->filesz_)) {\n      pbVar7 = local_50 + iVar9;\n      *(bool **)((int)&this->filesz_ + 4) = pbVar7;\n      iVar15 = iVar15 + (uint)(pbVar7 < local_50);\n      *(bool **)((int)&this->memsz_ + 4) = pbVar7;\n      *(int *)&this->filesz_ = iVar15;\n      *(int *)&this->memsz_ = iVar15;\n      *(Output_data **)poff = pOVar6;\n      *(Output_data **)((int)poff + 4) = pOVar17;\n      if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n      return uVar27;\n    }\n    goto LAB_0021c388;\n  }" if (parenthesized_expression "(lVar30 == 0)" ( (binary_expression "lVar30 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar15 = *(int *)&this->memsz_;\n    if ((iVar15 == *(int *)&this->filesz_) &&\n       (iVar9 = (int)this->memsz_, iVar9 == (int)this->filesz_)) {\n      pbVar7 = local_50 + iVar9;\n      *(bool **)((int)&this->filesz_ + 4) = pbVar7;\n      iVar15 = iVar15 + (uint)(pbVar7 < local_50);\n      *(bool **)((int)&this->memsz_ + 4) = pbVar7;\n      *(int *)&this->filesz_ = iVar15;\n      *(int *)&this->memsz_ = iVar15;\n      *(Output_data **)poff = pOVar6;\n      *(Output_data **)((int)poff + 4) = pOVar17;\n      if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n      return uVar27;\n    }\n    goto LAB_0021c388;\n  }" { (expression_statement "iVar15 = *(int *)&this->memsz_;" (assignment_expression "iVar15 = *(int *)&this->memsz_" identifier = (pointer_expression "*(int *)&this->memsz_" * (cast_expression "(int *)&this->memsz_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->memsz_" & (field_expression "this->memsz_" identifier -> field_identifier))))) ;) (if_statement "if ((iVar15 == *(int *)&this->filesz_) &&\n       (iVar9 = (int)this->memsz_, iVar9 == (int)this->filesz_)) {\n      pbVar7 = local_50 + iVar9;\n      *(bool **)((int)&this->filesz_ + 4) = pbVar7;\n      iVar15 = iVar15 + (uint)(pbVar7 < local_50);\n      *(bool **)((int)&this->memsz_ + 4) = pbVar7;\n      *(int *)&this->filesz_ = iVar15;\n      *(int *)&this->memsz_ = iVar15;\n      *(Output_data **)poff = pOVar6;\n      *(Output_data **)((int)poff + 4) = pOVar17;\n      if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n      return uVar27;\n    }" if (parenthesized_expression "((iVar15 == *(int *)&this->filesz_) &&\n       (iVar9 = (int)this->memsz_, iVar9 == (int)this->filesz_))" ( (binary_expression "(iVar15 == *(int *)&this->filesz_) &&\n       (iVar9 = (int)this->memsz_, iVar9 == (int)this->filesz_)" (parenthesized_expression "(iVar15 == *(int *)&this->filesz_)" ( (binary_expression "iVar15 == *(int *)&this->filesz_" identifier == (pointer_expression "*(int *)&this->filesz_" * (cast_expression "(int *)&this->filesz_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->filesz_" & (field_expression "this->filesz_" identifier -> field_identifier))))) )) && (parenthesized_expression "(iVar9 = (int)this->memsz_, iVar9 == (int)this->filesz_)" ( (comma_expression "iVar9 = (int)this->memsz_, iVar9 == (int)this->filesz_" (assignment_expression "iVar9 = (int)this->memsz_" identifier = (cast_expression "(int)this->memsz_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->memsz_" identifier -> field_identifier))) , (binary_expression "iVar9 == (int)this->filesz_" identifier == (cast_expression "(int)this->filesz_" ( (type_descriptor "int" primitive_type) ) (field_expression "this->filesz_" identifier -> field_identifier)))) ))) )) (compound_statement "{\n      pbVar7 = local_50 + iVar9;\n      *(bool **)((int)&this->filesz_ + 4) = pbVar7;\n      iVar15 = iVar15 + (uint)(pbVar7 < local_50);\n      *(bool **)((int)&this->memsz_ + 4) = pbVar7;\n      *(int *)&this->filesz_ = iVar15;\n      *(int *)&this->memsz_ = iVar15;\n      *(Output_data **)poff = pOVar6;\n      *(Output_data **)((int)poff + 4) = pOVar17;\n      if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }\n      return uVar27;\n    }" { (expression_statement "pbVar7 = local_50 + iVar9;" (assignment_expression "pbVar7 = local_50 + iVar9" identifier = (binary_expression "local_50 + iVar9" identifier + identifier)) ;) (expression_statement "*(bool **)((int)&this->filesz_ + 4) = pbVar7;" (assignment_expression "*(bool **)((int)&this->filesz_ + 4) = pbVar7" (pointer_expression "*(bool **)((int)&this->filesz_ + 4)" * (cast_expression "(bool **)((int)&this->filesz_ + 4)" ( (type_descriptor "bool **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&this->filesz_ + 4)" ( (binary_expression "(int)&this->filesz_ + 4" (cast_expression "(int)&this->filesz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->filesz_" & (field_expression "this->filesz_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "iVar15 = iVar15 + (uint)(pbVar7 < local_50);" (assignment_expression "iVar15 = iVar15 + (uint)(pbVar7 < local_50)" identifier = (binary_expression "iVar15 + (uint)(pbVar7 < local_50)" identifier + (call_expression "(uint)(pbVar7 < local_50)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar7 < local_50)" ( (binary_expression "pbVar7 < local_50" identifier < identifier) ))))) ;) (expression_statement "*(bool **)((int)&this->memsz_ + 4) = pbVar7;" (assignment_expression "*(bool **)((int)&this->memsz_ + 4) = pbVar7" (pointer_expression "*(bool **)((int)&this->memsz_ + 4)" * (cast_expression "(bool **)((int)&this->memsz_ + 4)" ( (type_descriptor "bool **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&this->memsz_ + 4)" ( (binary_expression "(int)&this->memsz_ + 4" (cast_expression "(int)&this->memsz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&this->memsz_" & (field_expression "this->memsz_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)&this->filesz_ = iVar15;" (assignment_expression "*(int *)&this->filesz_ = iVar15" (pointer_expression "*(int *)&this->filesz_" * (cast_expression "(int *)&this->filesz_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->filesz_" & (field_expression "this->filesz_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)&this->memsz_ = iVar15;" (assignment_expression "*(int *)&this->memsz_ = iVar15" (pointer_expression "*(int *)&this->memsz_" * (cast_expression "(int *)&this->memsz_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->memsz_" & (field_expression "this->memsz_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(Output_data **)poff = pOVar6;" (assignment_expression "*(Output_data **)poff = pOVar6" (pointer_expression "*(Output_data **)poff" * (cast_expression "(Output_data **)poff" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(Output_data **)((int)poff + 4) = pOVar17;" (assignment_expression "*(Output_data **)((int)poff + 4) = pOVar17" (pointer_expression "*(Output_data **)((int)poff + 4)" * (cast_expression "(Output_data **)((int)poff + 4)" ( (type_descriptor "Output_data **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)poff + 4)" ( (binary_expression "(int)poff + 4" (cast_expression "(int)poff" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }" if (parenthesized_expression "((Layout *)fill_data._M_dataplus._M_p != local_4c)" ( (binary_expression "(Layout *)fill_data._M_dataplus._M_p != local_4c" (cast_expression "(Layout *)fill_data._M_dataplus._M_p" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier)) != identifier) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_004c12fc)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (return_statement "return uVar27;" return identifier ;) })) (goto_statement "goto LAB_0021c388;" goto statement_identifier ;) })) (labeled_statement "LAB_0021c3a4:\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n             PTR_s_in_a_linker_script_004c191c + -0x3260);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n             PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n             PTR_s_in_a_linker_script_004c191c + -0x3260)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0021c3c0:\n  puVar13 = PTR_s_in_a_linker_script_004c191c + -0x48b4;" statement_identifier : (expression_statement "puVar13 = PTR_s_in_a_linker_script_004c191c + -0x48b4;" (assignment_expression "puVar13 = PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier = (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal)) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar13,0x118c,PTR_s_in_a_linker_script_004c191c + -0x3260);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar13,0x118c,PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13,0x118c,PTR_s_in_a_linker_script_004c191c + -0x3260)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" identifier + number_literal) ))) ;) comment (if_statement "if ((Layout *)fill_data._M_dataplus._M_p != local_4c) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "((Layout *)fill_data._M_dataplus._M_p != local_4c)" ( (binary_expression "(Layout *)fill_data._M_dataplus._M_p != local_4c" (cast_expression "(Layout *)fill_data._M_dataplus._M_p" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier)) != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar27 = (*(code *)PTR__Unwind_Resume_004c12c8)(puVar13);" (assignment_expression "uVar27 = (*(code *)PTR__Unwind_Resume_004c12c8)(puVar13)" identifier = (call_expression "(*(code *)PTR__Unwind_Resume_004c12c8)(puVar13)" (parenthesized_expression "(*(code *)PTR__Unwind_Resume_004c12c8)" ( (pointer_expression "*(code *)PTR__Unwind_Resume_004c12c8" * (cast_expression "(code *)PTR__Unwind_Resume_004c12c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier )))) ;) (return_statement "return uVar27;" return identifier ;) })))
(translation_unit "undefined4\ngold::Output_segment::set_section_addresses\n          (Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,\n          bool *param_6,longlong *param_7,uint *param_8)\n\n{\n  char cVar1;\n  byte bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  undefined3 in_register_00000018;\n  Target *pTVar16;\n  int iVar17;\n  int iVar18;\n  undefined1 *puVar19;\n  int *piVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  undefined1 *puVar23;\n  uint uVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  ulonglong uVar28;\n  undefined4 in_stack_00000024;\n  undefined1 *local_90 [2];\n  undefined1 auStack_88 [16];\n  undefined1 *local_78;\n  int local_74;\n  undefined1 local_70 [16];\n  undefined1 *local_60;\n  uint local_5c;\n  undefined4 *local_58;\n  char local_54 [4];\n  uint local_50;\n  undefined1 *local_4c;\n  code *local_48;\n  int local_44;\n  undefined1 *local_40;\n  int *local_3c;\n  uint local_38;\n  undefined1 *local_34;\n  uint local_30;\n  \n  iVar8 = CONCAT31(in_register_00000018,param_3);\n  local_40 = param_4._4_4_;\n  local_48 = param_4._0_4_;\n  uVar11 = 0x10e4;\n  if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;\n  local_50 = *param_8;\n  local_54[0] = '\0';\n  local_3c = (int *)PTR_parameters_004c19b4;\n  local_4c = (undefined1 *)param_8[1];\n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }\n  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }\n  else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }\n  FUN_00212c40();\nLAB_0021c388:\n                    \n  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);\n  return uVar11;\n}\n\n" (function_definition "undefined4\ngold::Output_segment::set_section_addresses\n          (Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,\n          bool *param_6,longlong *param_7,uint *param_8)\n\n{\n  char cVar1;\n  byte bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  undefined3 in_register_00000018;\n  Target *pTVar16;\n  int iVar17;\n  int iVar18;\n  undefined1 *puVar19;\n  int *piVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  undefined1 *puVar23;\n  uint uVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  ulonglong uVar28;\n  undefined4 in_stack_00000024;\n  undefined1 *local_90 [2];\n  undefined1 auStack_88 [16];\n  undefined1 *local_78;\n  int local_74;\n  undefined1 local_70 [16];\n  undefined1 *local_60;\n  uint local_5c;\n  undefined4 *local_58;\n  char local_54 [4];\n  uint local_50;\n  undefined1 *local_4c;\n  code *local_48;\n  int local_44;\n  undefined1 *local_40;\n  int *local_3c;\n  uint local_38;\n  undefined1 *local_34;\n  uint local_30;\n  \n  iVar8 = CONCAT31(in_register_00000018,param_3);\n  local_40 = param_4._4_4_;\n  local_48 = param_4._0_4_;\n  uVar11 = 0x10e4;\n  if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;\n  local_50 = *param_8;\n  local_54[0] = '\0';\n  local_3c = (int *)PTR_parameters_004c19b4;\n  local_4c = (undefined1 *)param_8[1];\n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }\n  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }\n  else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }\n  FUN_00212c40();\nLAB_0021c388:\n                    \n  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);\n  return uVar11;\n}" type_identifier (ERROR "gold::Output_segment::" identifier : : identifier : :) (function_declarator "set_section_addresses\n          (Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,\n          bool *param_6,longlong *param_7,uint *param_8)" identifier (parameter_list "(Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,\n          bool *param_6,longlong *param_7,uint *param_8)" ( (parameter_declaration "Target *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Layout *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "bool param_3" primitive_type identifier) , (parameter_declaration "ulonglong param_4" type_identifier identifier) , (parameter_declaration "uint *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "bool *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "longlong *param_7" type_identifier (pointer_declarator "*param_7" * identifier)) , (parameter_declaration "uint *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  undefined3 in_register_00000018;\n  Target *pTVar16;\n  int iVar17;\n  int iVar18;\n  undefined1 *puVar19;\n  int *piVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  undefined1 *puVar23;\n  uint uVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  ulonglong uVar28;\n  undefined4 in_stack_00000024;\n  undefined1 *local_90 [2];\n  undefined1 auStack_88 [16];\n  undefined1 *local_78;\n  int local_74;\n  undefined1 local_70 [16];\n  undefined1 *local_60;\n  uint local_5c;\n  undefined4 *local_58;\n  char local_54 [4];\n  uint local_50;\n  undefined1 *local_4c;\n  code *local_48;\n  int local_44;\n  undefined1 *local_40;\n  int *local_3c;\n  uint local_38;\n  undefined1 *local_34;\n  uint local_30;\n  \n  iVar8 = CONCAT31(in_register_00000018,param_3);\n  local_40 = param_4._4_4_;\n  local_48 = param_4._0_4_;\n  uVar11 = 0x10e4;\n  if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;\n  local_50 = *param_8;\n  local_54[0] = '\0';\n  local_3c = (int *)PTR_parameters_004c19b4;\n  local_4c = (undefined1 *)param_8[1];\n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }\n  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }\n  else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }\n  FUN_00212c40();\nLAB_0021c388:\n                    \n  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);\n  return uVar11;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined3 in_register_00000018;" type_identifier identifier ;) (declaration "Target *pTVar16;" type_identifier (pointer_declarator "*pTVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "undefined1 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "longlong lVar25;" type_identifier identifier ;) (declaration "longlong lVar26;" type_identifier identifier ;) (declaration "undefined8 uVar27;" type_identifier identifier ;) (declaration "ulonglong uVar28;" type_identifier identifier ;) (declaration "undefined4 in_stack_00000024;" type_identifier identifier ;) (declaration "undefined1 *local_90 [2];" type_identifier (pointer_declarator "*local_90 [2]" * (array_declarator "local_90 [2]" identifier [ number_literal ])) ;) (declaration "undefined1 auStack_88 [16];" type_identifier (array_declarator "auStack_88 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "undefined1 local_70 [16];" type_identifier (array_declarator "local_70 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "undefined4 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "char local_54 [4];" primitive_type (array_declarator "local_54 [4]" identifier [ number_literal ]) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined1 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "code *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "undefined1 *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "int *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "undefined1 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint local_30;" type_identifier identifier ;) (expression_statement "iVar8 = CONCAT31(in_register_00000018,param_3);" (assignment_expression "iVar8 = CONCAT31(in_register_00000018,param_3)" identifier = (call_expression "CONCAT31(in_register_00000018,param_3)" identifier (argument_list "(in_register_00000018,param_3)" ( identifier , identifier )))) ;) (expression_statement "local_40 = param_4._4_4_;" (assignment_expression "local_40 = param_4._4_4_" identifier = (field_expression "param_4._4_4_" identifier . field_identifier)) ;) (expression_statement "local_48 = param_4._0_4_;" (assignment_expression "local_48 = param_4._0_4_" identifier = (field_expression "param_4._0_4_" identifier . field_identifier)) ;) (expression_statement "uVar11 = 0x10e4;" (assignment_expression "uVar11 = 0x10e4" identifier = number_literal) ;) (if_statement "if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;" if (parenthesized_expression "(*(int *)(param_1 + 0x198) != 1)" ( (binary_expression "*(int *)(param_1 + 0x198) != 1" (pointer_expression "*(int *)(param_1 + 0x198)" * (cast_expression "(int *)(param_1 + 0x198)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x198)" ( (binary_expression "param_1 + 0x198" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0021c29c;" goto statement_identifier ;)) (expression_statement "local_50 = *param_8;" (assignment_expression "local_50 = *param_8" identifier = (pointer_expression "*param_8" * identifier)) ;) (expression_statement "local_54[0] = '\0';" (assignment_expression "local_54[0] = '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_3c = (int *)PTR_parameters_004c19b4;" (assignment_expression "local_3c = (int *)PTR_parameters_004c19b4" identifier = (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_4c = (undefined1 *)param_8[1];" (assignment_expression "local_4c = (undefined1 *)param_8[1]" identifier = (cast_expression "(undefined1 *)param_8[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_8[1]" identifier [ number_literal ]))) ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29c4" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (if_statement "if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }\n  else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }" if (parenthesized_expression "((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0))" ( (binary_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)" (parenthesized_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9)" * (cast_expression "(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)" ( (comma_expression "iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0" (assignment_expression "iVar22 = is_first_section_relro((Output_segment *)param_1)" identifier = (call_expression "is_first_section_relro((Output_segment *)param_1)" identifier (argument_list "((Output_segment *)param_1)" ( (cast_expression "(Output_segment *)param_1" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }" { (expression_statement "puVar21 = (undefined1 *)0x0;" (assignment_expression "puVar21 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }" statement_identifier : (if_statement "if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }" if (parenthesized_expression "((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0))" ( (binary_expression "(param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)" (parenthesized_expression "(param_5 == (uint *)0x0)" ( (binary_expression "param_5 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(int *)(param_1 + 0x1a0) << 1 < 0)" ( (binary_expression "*(int *)(param_1 + 0x1a0) << 1 < 0" (binary_expression "*(int *)(param_1 + 0x1a0) << 1" (pointer_expression "*(int *)(param_1 + 0x1a0)" * (cast_expression "(int *)(param_1 + 0x1a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1a0)" ( (binary_expression "param_1 + 0x1a0" identifier + number_literal) )))) << number_literal) < number_literal) ))) )) (compound_statement "{\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }" { (labeled_statement "LAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" statement_identifier : (if_statement "if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" if (parenthesized_expression "(*(code **)(param_1 + 0x168) != local_48)" ( (binary_expression "*(code **)(param_1 + 0x168) != local_48" (pointer_expression "*(code **)(param_1 + 0x168)" * (cast_expression "(code **)(param_1 + 0x168)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" { (expression_statement "uVar11 = 0x1131;" (assignment_expression "uVar11 = 0x1131" identifier = number_literal) ;) (labeled_statement "LAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);" statement_identifier : (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" identifier + number_literal) )))) ;)) (return_statement "return uVar11;" return identifier ;) }))) (expression_statement "uVar11 = 0x1131;" (assignment_expression "uVar11 = 0x1131" identifier = number_literal) ;) (if_statement "if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;" if (parenthesized_expression "(*(undefined1 **)(param_1 + 0x16c) != local_40)" ( (binary_expression "*(undefined1 **)(param_1 + 0x16c) != local_40" (pointer_expression "*(undefined1 **)(param_1 + 0x16c)" * (cast_expression "(undefined1 **)(param_1 + 0x16c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) != identifier) )) (goto_statement "goto LAB_0021c29c;" goto statement_identifier ;)) (expression_statement "local_48 = *(code **)(param_1 + 0x160);" (assignment_expression "local_48 = *(code **)(param_1 + 0x160)" identifier = (pointer_expression "*(code **)(param_1 + 0x160)" * (cast_expression "(code **)(param_1 + 0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x160)" ( (binary_expression "param_1 + 0x160" identifier + number_literal) ))))) ;) (expression_statement "local_40 = *(undefined1 **)(param_1 + 0x164);" (assignment_expression "local_40 = *(undefined1 **)(param_1 + 0x164)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 0x164)" * (cast_expression "(undefined1 **)(param_1 + 0x164)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }" else (compound_statement "{\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }" { (expression_statement "*(code **)(param_1 + 0x160) = local_48;" (assignment_expression "*(code **)(param_1 + 0x160) = local_48" (pointer_expression "*(code **)(param_1 + 0x160)" * (cast_expression "(code **)(param_1 + 0x160)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x160)" ( (binary_expression "param_1 + 0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(param_1 + 0x164) = local_40;" (assignment_expression "*(undefined1 **)(param_1 + 0x164) = local_40" (pointer_expression "*(undefined1 **)(param_1 + 0x164)" * (cast_expression "(undefined1 **)(param_1 + 0x164)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x168) = local_48;" (assignment_expression "*(code **)(param_1 + 0x168) = local_48" (pointer_expression "*(code **)(param_1 + 0x168)" * (cast_expression "(code **)(param_1 + 0x168)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(param_1 + 0x16c) = local_40;" (assignment_expression "*(undefined1 **)(param_1 + 0x16c) = local_40" (pointer_expression "*(undefined1 **)(param_1 + 0x16c)" * (cast_expression "(undefined1 **)(param_1 + 0x16c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);" (assignment_expression "param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40)" (subscript_expression "param_1[0x1a0]" identifier [ number_literal ]) = (call_expression "(Target)((byte)param_1[0x1a0] & 0xbf | 0x40)" (parenthesized_expression "(Target)" ( identifier )) (argument_list "((byte)param_1[0x1a0] & 0xbf | 0x40)" ( (binary_expression "(byte)param_1[0x1a0] & 0xbf | 0x40" (binary_expression "(byte)param_1[0x1a0] & 0xbf" (cast_expression "(byte)param_1[0x1a0]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0x1a0]" identifier [ number_literal ])) & number_literal) | number_literal) )))) ;) })))) (expression_statement "lVar25 = CONCAT44(local_48,local_40);" (assignment_expression "lVar25 = CONCAT44(local_48,local_40)" identifier = (call_expression "CONCAT44(local_48,local_40)" identifier (argument_list "(local_48,local_40)" ( identifier , identifier )))) ;) (expression_statement "local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;" (assignment_expression "local_48 = (code *)PTR_set_section_list_addresses_004c3fb4" identifier = (cast_expression "(code *)PTR_set_section_list_addresses_004c3fb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_54[0] = '\0';" (assignment_expression "local_54[0] = '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(uint *)(param_1 + 0x188) = local_50;" (assignment_expression "*(uint *)(param_1 + 0x188) = local_50" (pointer_expression "*(uint *)(param_1 + 0x188)" * (cast_expression "(uint *)(param_1 + 0x188)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(param_1 + 0x18c) = local_4c;" (assignment_expression "*(undefined1 **)(param_1 + 0x18c) = local_4c" (pointer_expression "*(undefined1 **)(param_1 + 0x18c)" * (cast_expression "(undefined1 **)(param_1 + 0x18c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_60 = (undefined1 *)*param_8;" (assignment_expression "local_60 = (undefined1 *)*param_8" identifier = (cast_expression "(undefined1 *)*param_8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_8" * identifier))) ;) (expression_statement "local_5c = param_8[1];" (assignment_expression "local_5c = param_8[1]" identifier = (subscript_expression "param_8[1]" identifier [ number_literal ])) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "pTVar16 = param_1;" (assignment_expression "pTVar16 = param_1" identifier = identifier) ;) (expression_statement "local_40 = puVar21;" (assignment_expression "local_40 = puVar21" identifier = identifier) ;) (while_statement "while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }" { (expression_statement "lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);" (assignment_expression "lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54)" identifier = (call_expression "(*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54)" ( identifier , identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_60" & identifier) , identifier , identifier )))) ;) (expression_statement "uVar12 = local_5c;" (assignment_expression "uVar12 = local_5c" identifier = identifier) ;) (expression_statement "puVar21 = local_60;" (assignment_expression "puVar21 = local_60" identifier = identifier) ;) (expression_statement "uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }" if (parenthesized_expression "(((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c))" ( (binary_expression "((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)" (parenthesized_expression "((undefined1 *)*param_8 != local_60)" ( (binary_expression "(undefined1 *)*param_8 != local_60" (cast_expression "(undefined1 *)*param_8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_8" * identifier)) != identifier) )) || (parenthesized_expression "(param_8[1] != local_5c)" ( (binary_expression "param_8[1] != local_5c" (subscript_expression "param_8[1]" identifier [ number_literal ]) != identifier) ))) )) (compound_statement "{\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }" { (if_statement "if (iVar22 == 0x11) goto LAB_0021b84c;" if (parenthesized_expression "(iVar22 == 0x11)" ( (binary_expression "iVar22 == 0x11" identifier == number_literal) )) (goto_statement "goto LAB_0021b84c;" goto statement_identifier ;)) (if_statement "if (iVar22 < 0x1a) goto LAB_0021b834;" if (parenthesized_expression "(iVar22 < 0x1a)" ( (binary_expression "iVar22 < 0x1a" identifier < number_literal) )) (goto_statement "goto LAB_0021b834;" goto statement_identifier ;)) })) (expression_statement "*(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;" (assignment_expression "*(uint *)(param_1 + 0x194) = local_5c - (int)local_4c" (pointer_expression "*(uint *)(param_1 + 0x194)" * (cast_expression "(uint *)(param_1 + 0x194)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) = (binary_expression "local_5c - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);" (assignment_expression "*(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" (pointer_expression "*(undefined1 **)(param_1 + 400)" * (cast_expression "(undefined1 **)(param_1 + 400)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) = (binary_expression "local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" identifier + (parenthesized_expression "(-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" ( (binary_expression "-(uint)(local_5c < local_5c - (int)local_4c) - local_50" (unary_expression "-(uint)(local_5c < local_5c - (int)local_4c)" - (call_expression "(uint)(local_5c < local_5c - (int)local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < local_5c - (int)local_4c)" ( (binary_expression "local_5c < local_5c - (int)local_4c" identifier < (binary_expression "local_5c - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) )))) - identifier) )))) ;) (if_statement "if (iVar22 == 0x1c) break;" if (parenthesized_expression "(iVar22 == 0x1c)" ( (binary_expression "iVar22 == 0x1c" identifier == number_literal) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }" { (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "pTVar16 = param_1 + iVar22 * 0xc;" (assignment_expression "pTVar16 = param_1 + iVar22 * 0xc" identifier = (binary_expression "param_1 + iVar22 * 0xc" identifier + (binary_expression "iVar22 * 0xc" identifier * number_literal))) ;) (if_statement "if (iVar22 != 0x14) break;" if (parenthesized_expression "(iVar22 != 0x14)" ( (binary_expression "iVar22 != 0x14" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar24 = param_8[1];" (assignment_expression "uVar24 = param_8[1]" identifier = (subscript_expression "param_8[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = uVar24 + local_44;" (assignment_expression "uVar12 = uVar24 + local_44" identifier = (binary_expression "uVar24 + local_44" identifier + identifier)) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0xf0);" (assignment_expression "iVar18 = *(int *)(param_1 + 0xf0)" identifier = (pointer_expression "*(int *)(param_1 + 0xf0)" * (cast_expression "(int *)(param_1 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf0)" ( (binary_expression "param_1 + 0xf0" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(param_1 + 0xf4);" (assignment_expression "iVar17 = *(int *)(param_1 + 0xf4)" identifier = (pointer_expression "*(int *)(param_1 + 0xf4)" * (cast_expression "(int *)(param_1 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "param_8[1] = uVar12;" (assignment_expression "param_8[1] = uVar12" (subscript_expression "param_8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);" (assignment_expression "local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c)" identifier = (binary_expression "local_60 + (int)local_40 + (local_5c + local_44 < local_5c)" (binary_expression "local_60 + (int)local_40" identifier + (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier)) + (parenthesized_expression "(local_5c + local_44 < local_5c)" ( (binary_expression "local_5c + local_44 < local_5c" (binary_expression "local_5c + local_44" identifier + identifier) < identifier) )))) ;) (expression_statement "*param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);" (assignment_expression "*param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8)" (pointer_expression "*param_8" * identifier) = (call_expression "(uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_40 + (uint)(uVar12 < uVar24) + *param_8)" ( (binary_expression "local_40 + (uint)(uVar12 < uVar24) + *param_8" (binary_expression "local_40 + (uint)(uVar12 < uVar24)" identifier + (call_expression "(uint)(uVar12 < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < uVar24)" ( (binary_expression "uVar12 < uVar24" identifier < identifier) )))) + (pointer_expression "*param_8" * identifier)) )))) ;) (if_statement "if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }" if (parenthesized_expression "(iVar18 == iVar17)" ( (binary_expression "iVar18 == iVar17" identifier == identifier) )) (compound_statement "{\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }" { (expression_statement "*(int *)param_6 = *(int *)param_6 + local_44;" (assignment_expression "*(int *)param_6 = *(int *)param_6 + local_44" (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*(int *)param_6 + local_44" (pointer_expression "*(int *)param_6" * (cast_expression "(int *)param_6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier)) ;) })) (expression_statement "local_5c = local_5c + local_44;" (assignment_expression "local_5c = local_5c + local_44" identifier = (binary_expression "local_5c + local_44" identifier + identifier)) ;) (expression_statement "lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);" (assignment_expression "lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54)" identifier = (call_expression "(*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54)" ( identifier , identifier , identifier , identifier , (binary_expression "lVar25 + CONCAT44(local_40,local_44)" identifier + (call_expression "CONCAT44(local_40,local_44)" identifier (argument_list "(local_40,local_44)" ( identifier , identifier )))) , identifier , (pointer_expression "&local_60" & identifier) , identifier , identifier )))) ;) (if_statement "if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }" if (parenthesized_expression "((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1]))" ( (binary_expression "(local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])" (parenthesized_expression "(local_60 != (undefined1 *)*param_8)" ( (binary_expression "local_60 != (undefined1 *)*param_8" identifier != (cast_expression "(undefined1 *)*param_8" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_8" * identifier))) )) || (parenthesized_expression "(local_5c != param_8[1])" ( (binary_expression "local_5c != param_8[1]" identifier != (subscript_expression "param_8[1]" identifier [ number_literal ])) ))) )) (compound_statement "{\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }" { (labeled_statement "LAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }" statement_identifier : (if_statement "if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }" if (parenthesized_expression "(*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0')" ( (binary_expression "*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0'" (pointer_expression "*(char *)(*(int *)(iVar8 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(iVar8 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 4) + 0xac)" ( (binary_expression "*(int *)(iVar8 + 4) + 0xac" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }" { (expression_statement "uVar11 = 0x115d;" (assignment_expression "uVar11 = 0x115d" identifier = number_literal) ;) (goto_statement "goto LAB_0021c29c;" goto statement_identifier ;) }))) })) (labeled_statement "LAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;" statement_identifier : (expression_statement "*(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;" (assignment_expression "*(uint *)(param_1 + 0x194) = local_5c - (int)local_4c" (pointer_expression "*(uint *)(param_1 + 0x194)" * (cast_expression "(uint *)(param_1 + 0x194)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) = (binary_expression "local_5c - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "*(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);" (assignment_expression "*(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" (pointer_expression "*(undefined1 **)(param_1 + 400)" * (cast_expression "(undefined1 **)(param_1 + 400)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) = (binary_expression "local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" identifier + (parenthesized_expression "(-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" ( (binary_expression "-(uint)(local_5c < local_5c - (int)local_4c) - local_50" (unary_expression "-(uint)(local_5c < local_5c - (int)local_4c)" - (call_expression "(uint)(local_5c < local_5c - (int)local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < local_5c - (int)local_4c)" ( (binary_expression "local_5c < local_5c - (int)local_4c" identifier < (binary_expression "local_5c - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) )))) - identifier) )))) ;) })) })) (if_statement "if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }" if (parenthesized_expression "(local_54[0] == '\0')" ( (binary_expression "local_54[0] == '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }" { (expression_statement "uVar24 = *param_8;" (assignment_expression "uVar24 = *param_8" identifier = (pointer_expression "*param_8" * identifier)) ;) (expression_statement "uVar13 = param_8[1];" (assignment_expression "uVar13 = param_8[1]" identifier = (subscript_expression "param_8[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }" else (compound_statement "{\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }" { (expression_statement "lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));" (assignment_expression "lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170))" identifier = (call_expression "maximum_alignment(*(Output_segment **)(iVar8 + 0x170))" identifier (argument_list "(*(Output_segment **)(iVar8 + 0x170))" ( (pointer_expression "*(Output_segment **)(iVar8 + 0x170)" * (cast_expression "(Output_segment **)(iVar8 + 0x170)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x170)" ( (binary_expression "iVar8 + 0x170" identifier + number_literal) )))) )))) ;) (expression_statement "uVar24 = *param_8;" (assignment_expression "uVar24 = *param_8" identifier = (pointer_expression "*param_8" * identifier)) ;) (expression_statement "uVar13 = param_8[1];" (assignment_expression "uVar13 = param_8[1]" identifier = (subscript_expression "param_8[1]" identifier [ number_literal ])) ;) (if_statement "if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }" if (parenthesized_expression "(lVar26 != 0)" ( (binary_expression "lVar26 != 0" identifier != number_literal) )) (compound_statement "{\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }" { (expression_statement "lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);" (assignment_expression "lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1)" identifier = (binary_expression "lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1)" identifier + (call_expression "CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1)" identifier (argument_list "((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1)" ( (binary_expression "(uint)(uVar13 - 1 < uVar13) + (uVar24 - 1)" (call_expression "(uint)(uVar13 - 1 < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 - 1 < uVar13)" ( (binary_expression "uVar13 - 1 < uVar13" (binary_expression "uVar13 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar24 - 1)" ( (binary_expression "uVar24 - 1" identifier - number_literal) ))) , (binary_expression "uVar13 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar13 = (uint)lVar3 & -(int)lVar26;" (assignment_expression "uVar13 = (uint)lVar3 & -(int)lVar26" identifier = (binary_expression "(uint)lVar3 & -(int)lVar26" (cast_expression "(uint)lVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar26" - (cast_expression "(int)lVar26" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);" (assignment_expression "uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" identifier = (binary_expression "(uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (call_expression "(uint)((ulonglong)lVar3 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (binary_expression "-(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (unary_expression "-(uint)(-(int)lVar26 != 0)" - (call_expression "(uint)(-(int)lVar26 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)lVar26 != 0)" ( (binary_expression "-(int)lVar26 != 0" (unary_expression "-(int)lVar26" - (cast_expression "(int)lVar26" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (cast_expression "(int)((ulonglong)lVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar26 >> 0x20)" ( (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))))) ;) })) }))) (expression_statement "iVar22 = *(int *)(param_2 + 4);" (assignment_expression "iVar22 = *(int *)(param_2 + 4)" identifier = (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;" (assignment_expression "*(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c" (pointer_expression "*(uint *)(param_1 + 0x174)" * (cast_expression "(uint *)(param_1 + 0x174)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))) = (binary_expression "uVar13 - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "cVar1 = *(char *)(iVar22 + 0x30);" (assignment_expression "cVar1 = *(char *)(iVar22 + 0x30)" identifier = (pointer_expression "*(char *)(iVar22 + 0x30)" * (cast_expression "(char *)(iVar22 + 0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x30)" ( (binary_expression "iVar22 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);" (assignment_expression "*(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c)" (pointer_expression "*(uint *)(param_1 + 0x170)" * (cast_expression "(uint *)(param_1 + 0x170)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) )))) = (binary_expression "(uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c)" (parenthesized_expression "(uVar24 - local_50)" ( (binary_expression "uVar24 - local_50" identifier - identifier) )) - (call_expression "(uint)(uVar13 < uVar13 - (int)local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 < uVar13 - (int)local_4c)" ( (binary_expression "uVar13 < uVar13 - (int)local_4c" identifier < (binary_expression "uVar13 - (int)local_4c" identifier - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ))))) ;) (expression_statement "*param_8 = (uint)puVar21;" (assignment_expression "*param_8 = (uint)puVar21" (pointer_expression "*param_8" * identifier) = (cast_expression "(uint)puVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "param_8[1] = uVar12;" (assignment_expression "param_8[1] = uVar12" (subscript_expression "param_8[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (cVar1 == '\0') {\n      return uVar11;\n    }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      return uVar11;\n    }" { (return_statement "return uVar11;" return identifier ;) })) (if_statement "if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }" if (parenthesized_expression "((*(uint *)(param_1 + 0x19c) & 1) == 0)" ( (binary_expression "(*(uint *)(param_1 + 0x19c) & 1) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0x19c) & 1)" ( (binary_expression "*(uint *)(param_1 + 0x19c) & 1" (pointer_expression "*(uint *)(param_1 + 0x19c)" * (cast_expression "(uint *)(param_1 + 0x19c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x19c)" ( (binary_expression "param_1 + 0x19c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      return uVar11;\n    }" { (return_statement "return uVar11;" return identifier ;) })) (expression_statement "iVar17 = *(int *)(*local_3c + 8);" (assignment_expression "iVar17 = *(int *)(*local_3c + 8)" identifier = (pointer_expression "*(int *)(*local_3c + 8)" * (cast_expression "(int *)(*local_3c + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_3c + 8)" ( (binary_expression "*local_3c + 8" (pointer_expression "*local_3c" * identifier) + number_literal) ))))) ;) (if_statement "if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }" { (expression_statement "local_48 = *(code **)(iVar17 + 0x5228);" (assignment_expression "local_48 = *(code **)(iVar17 + 0x5228)" identifier = (pointer_expression "*(code **)(iVar17 + 0x5228)" * (cast_expression "(code **)(iVar17 + 0x5228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x5228)" ( (binary_expression "iVar17 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(iVar17 + 0x522c);" (assignment_expression "iVar17 = *(int *)(iVar17 + 0x522c)" identifier = (pointer_expression "*(int *)(iVar17 + 0x522c)" * (cast_expression "(int *)(iVar17 + 0x522c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x522c)" ( (binary_expression "iVar17 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }" if (parenthesized_expression "(local_48 == (code *)0x0 && iVar17 == 0)" ( (binary_expression "local_48 == (code *)0x0 && iVar17 == 0" (binary_expression "local_48 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "iVar17 == 0" identifier == number_literal)) )) (compound_statement "{\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }" { (expression_statement "local_48 = *(code **)(iVar22 + 0x20);" (assignment_expression "local_48 = *(code **)(iVar22 + 0x20)" identifier = (pointer_expression "*(code **)(iVar22 + 0x20)" * (cast_expression "(code **)(iVar22 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(iVar22 + 0x24);" (assignment_expression "iVar17 = *(int *)(iVar22 + 0x24)" identifier = (pointer_expression "*(int *)(iVar22 + 0x24)" * (cast_expression "(int *)(iVar22 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x24)" ( (binary_expression "iVar22 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar6 = local_48;" (assignment_expression "pcVar6 = local_48" identifier = identifier) ;) (expression_statement "lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);" (assignment_expression "lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_50,local_4c,local_48,iVar17)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar26 != 0) {\n        return uVar11;\n      }" if (parenthesized_expression "(lVar26 != 0)" ( (binary_expression "lVar26 != 0" identifier != number_literal) )) (compound_statement "{\n        return uVar11;\n      }" { (return_statement "return uVar11;" return identifier ;) })) (expression_statement "lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);" (assignment_expression "lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21,uVar12,pcVar6,iVar17)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar26 == 0) {\n        return uVar11;\n      }" if (parenthesized_expression "(lVar26 == 0)" ( (binary_expression "lVar26 == 0" identifier == number_literal) )) (compound_statement "{\n        return uVar11;\n      }" { (return_statement "return uVar11;" return identifier ;) })) (expression_statement "local_78 = local_70;" (assignment_expression "local_78 = local_70" identifier = identifier) ;) (expression_statement "local_50 = iVar17 - (int)lVar26;" (assignment_expression "local_50 = iVar17 - (int)lVar26" identifier = (binary_expression "iVar17 - (int)lVar26" identifier - (cast_expression "(int)lVar26" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "local_70[0] = 0;" (assignment_expression "local_70[0] = 0" (subscript_expression "local_70[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_4c = local_78;" (assignment_expression "local_4c = local_78" identifier = identifier) ;) (if_statement "if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar22 + 0xe) == '\0')" ( (binary_expression "*(char *)(iVar22 + 0xe) == '\0'" (pointer_expression "*(char *)(iVar22 + 0xe)" * (cast_expression "(char *)(iVar22 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xe)" ( (binary_expression "iVar22 + 0xe" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }" { (expression_statement "(*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);" (call_expression "(*(code *)PTR_resize_004c22c8)(&local_78,local_50,0)" (parenthesized_expression "(*(code *)PTR_resize_004c22c8)" ( (pointer_expression "*(code *)PTR_resize_004c22c8" * (cast_expression "(code *)PTR_resize_004c22c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,local_50,0)" ( (pointer_expression "&local_78" & identifier) , identifier , number_literal ))) ;) }) (else_clause "else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }" else (compound_statement "{\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }" { (expression_statement "(**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);" (call_expression "(**(code **)(*(int *)param_2 + 0x18))(local_90,param_2)" (parenthesized_expression "(**(code **)(*(int *)param_2 + 0x18))" ( (pointer_expression "**(code **)(*(int *)param_2 + 0x18)" * (pointer_expression "*(code **)(*(int *)param_2 + 0x18)" * (cast_expression "(code **)(*(int *)param_2 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_2 + 0x18)" ( (binary_expression "*(int *)param_2 + 0x18" (pointer_expression "*(int *)param_2" * (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(local_90,param_2)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_operator__004c3fbc)(&local_78,local_90);" (call_expression "(*(code *)PTR_operator__004c3fbc)(&local_78,local_90)" (parenthesized_expression "(*(code *)PTR_operator__004c3fbc)" ( (pointer_expression "*(code *)PTR_operator__004c3fbc" * (cast_expression "(code *)PTR_operator__004c3fbc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,local_90)" ( (pointer_expression "&local_78" & identifier) , identifier ))) ;) (if_statement "if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }" if (parenthesized_expression "(local_90[0] != auStack_88)" ( (binary_expression "local_90[0] != auStack_88" (subscript_expression "local_90[0]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) }))) (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x48)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x48)" ( number_literal ))))) ;) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;" (assignment_expression "*(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50" (pointer_expression "*(byte *)(puVar7 + 8)" * (cast_expression "(byte *)(puVar7 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar7 + 8) & 7 | 0x50" (binary_expression "*(byte *)(puVar7 + 8) & 7" (pointer_expression "*(byte *)(puVar7 + 8)" * (cast_expression "(byte *)(puVar7 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "puVar7[5] = local_74;" (assignment_expression "puVar7[5] = local_74" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[10] = 0;" (assignment_expression "puVar7[10] = 0" (subscript_expression "puVar7[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5 = PTR_vtable_004c2344;" (assignment_expression "puVar5 = PTR_vtable_004c2344" identifier = identifier) ;) (expression_statement "puVar4 = PTR__M_construct<char*>_004c2098;" (assignment_expression "puVar4 = PTR__M_construct<char*>_004c2098" identifier = (binary_expression "PTR__M_construct<char*>_004c2098" (binary_expression "PTR__M_construct<char" identifier < identifier) (ERROR "*" *) > identifier)) ;) (expression_statement "puVar7[4] = 0;" (assignment_expression "puVar7[4] = 0" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0xffffffff;" (assignment_expression "puVar7[7] = 0xffffffff" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[6] = 0xffffffff;" (assignment_expression "puVar7[6] = 0xffffffff" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[0xb] = 0;" (assignment_expression "puVar7[0xb] = 0" (subscript_expression "puVar7[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar7 = puVar5 + 8;" (assignment_expression "*puVar7 = puVar5 + 8" (pointer_expression "*puVar7" * identifier) = (binary_expression "puVar5 + 8" identifier + number_literal)) ;) (expression_statement "puVar7[0xc] = puVar7 + 0xe;" (assignment_expression "puVar7[0xc] = puVar7 + 0xe" (subscript_expression "puVar7[0xc]" identifier [ number_literal ]) = (binary_expression "puVar7 + 0xe" identifier + number_literal)) ;) (expression_statement "(*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);" (call_expression "(*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7 + 0xc,local_78,local_78 + local_74,0)" ( (binary_expression "puVar7 + 0xc" identifier + number_literal) , identifier , (binary_expression "local_78 + local_74" identifier + identifier) , number_literal ))) ;) (expression_statement "uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);" (assignment_expression "uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174)" identifier = (binary_expression "*(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174)" (pointer_expression "*(uint *)(param_1 + 0x164)" * (cast_expression "(uint *)(param_1 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 0x174)" * (cast_expression "(int *)(param_1 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))))) ;) (if_statement "if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }" if (parenthesized_expression "((int)puVar7[8] < 0)" ( (binary_expression "(int)puVar7[8] < 0" (cast_expression "(int)puVar7[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar7[8]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d50" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "bVar2 = *(byte *)(puVar7 + 8);" (assignment_expression "bVar2 = *(byte *)(puVar7 + 8)" identifier = (pointer_expression "*(byte *)(puVar7 + 8)" * (cast_expression "(byte *)(puVar7 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);" (assignment_expression "puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170)" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (binary_expression "(uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170)" (binary_expression "(uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160)" (call_expression "(uint)(uVar24 < *(uint *)(param_1 + 0x164))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 < *(uint *)(param_1 + 0x164))" ( (binary_expression "uVar24 < *(uint *)(param_1 + 0x164)" identifier < (pointer_expression "*(uint *)(param_1 + 0x164)" * (cast_expression "(uint *)(param_1 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(param_1 + 0x160)" * (cast_expression "(int *)(param_1 + 0x160)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x160)" ( (binary_expression "param_1 + 0x160" identifier + number_literal) ))))) + (pointer_expression "*(int *)(param_1 + 0x170)" * (cast_expression "(int *)(param_1 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) )))))) ;) (expression_statement "puVar7[3] = uVar24;" (assignment_expression "puVar7[3] = uVar24" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;" (assignment_expression "*(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80" (pointer_expression "*(byte *)(puVar7 + 8)" * (cast_expression "(byte *)(puVar7 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = (binary_expression "bVar2 & 0x7f | 0x80" (binary_expression "bVar2 & 0x7f" identifier & number_literal) | number_literal)) ;) (if_statement "if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }" if (parenthesized_expression "((int)(puVar7[8] << 2) < 0)" ( (binary_expression "(int)(puVar7[8] << 2) < 0" (cast_expression "(int)(puVar7[8] << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar7[8] << 2)" ( (binary_expression "puVar7[8] << 2" (subscript_expression "puVar7[8]" identifier [ number_literal ]) << number_literal) ))) < number_literal) )) (compound_statement "{\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d60" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "puVar7[6] = puVar21;" (assignment_expression "puVar7[6] = puVar21" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[7] = uVar12;" (assignment_expression "puVar7[7] = uVar12" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;" (assignment_expression "*(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0" (pointer_expression "*(byte *)(puVar7 + 8)" * (cast_expression "(byte *)(puVar7 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) = (binary_expression "bVar2 & 0x5f | 0xa0" (binary_expression "bVar2 & 0x5f" identifier & number_literal) | number_literal)) ;) (expression_statement "puVar14 = *(undefined4 **)(iVar8 + 0x164);" (assignment_expression "puVar14 = *(undefined4 **)(iVar8 + 0x164)" identifier = (pointer_expression "*(undefined4 **)(iVar8 + 0x164)" * (cast_expression "(undefined4 **)(iVar8 + 0x164)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x164)" ( (binary_expression "iVar8 + 0x164" identifier + number_literal) ))))) ;) (expression_statement "local_58 = puVar7;" (assignment_expression "local_58 = puVar7" identifier = identifier) ;) (if_statement "if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }" if (parenthesized_expression "(puVar14 == *(undefined4 **)(iVar8 + 0x168))" ( (binary_expression "puVar14 == *(undefined4 **)(iVar8 + 0x168)" identifier == (pointer_expression "*(undefined4 **)(iVar8 + 0x168)" * (cast_expression "(undefined4 **)(iVar8 + 0x168)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x168)" ( (binary_expression "iVar8 + 0x168" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }" { (ERROR "std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::" (comma_expression "std::vector<gold::Output_data*,std" identifier (ERROR "::vector<gold::Output_data*" : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Output_data*>>::\n        _M_realloc_insert<gold" (binary_expression "Output_data*>>::\n        _M_realloc_insert" identifier * (ERROR ">>::" >> : :) identifier) < identifier) : :) (expression_statement "Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);" (binary_expression "Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58)" (binary_expression "Output_data*const" identifier * identifier) (ERROR "&" &) > (parenthesized_expression "((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58)" ( (comma_expression "(vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58" (call_expression "(vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160)" (parenthesized_expression "(vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)" ( (ERROR "vector<gold::Output_data*,std::allocator<gold::" (binary_expression "vector<gold" identifier < identifier) : : (type_descriptor "Output_data*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_data*>> *" identifier * (ERROR ">>" >>) (pointer_expression "*" * identifier)) )) (argument_list "(iVar8 + 0x160)" ( (binary_expression "iVar8 + 0x160" identifier + number_literal) ))) , (comma_expression "puVar14,&local_58" identifier , (pointer_expression "&local_58" & identifier))) ))) ;) }) (else_clause "else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }" else (compound_statement "{\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }" { (expression_statement "*puVar14 = puVar7;" (assignment_expression "*puVar14 = puVar7" (pointer_expression "*puVar14" * identifier) = identifier) ;) (expression_statement "*(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;" (assignment_expression "*(undefined4 **)(iVar8 + 0x164) = puVar14 + 1" (pointer_expression "*(undefined4 **)(iVar8 + 0x164)" * (cast_expression "(undefined4 **)(iVar8 + 0x164)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x164)" ( (binary_expression "iVar8 + 0x164" identifier + number_literal) )))) = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) }))) (expression_statement "uVar24 = uVar12 + local_50;" (assignment_expression "uVar24 = uVar12 + local_50" identifier = (binary_expression "uVar12 + local_50" identifier + identifier)) ;) (expression_statement "lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);" (assignment_expression "lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17)" ( (binary_expression "puVar21 + (uVar24 < uVar12)" identifier + (parenthesized_expression "(uVar24 < uVar12)" ( (binary_expression "uVar24 < uVar12" identifier < identifier) ))) , identifier , identifier , identifier )))) ;) (if_statement "if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" if (parenthesized_expression "(lVar26 != 0)" ( (binary_expression "lVar26 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);" (assignment_expression "uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20)" identifier = (call_expression "(undefined4)(lVar25 + (ulonglong)local_50 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "(lVar25 + (ulonglong)local_50 >> 0x20)" ( (binary_expression "lVar25 + (ulonglong)local_50 >> 0x20" (binary_expression "lVar25 + (ulonglong)local_50" identifier + (cast_expression "(ulonglong)local_50" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) >> number_literal) )))) ;) (expression_statement "lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);" (assignment_expression "lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17)" ( identifier , (cast_expression "(int)(lVar25 + (ulonglong)local_50)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(lVar25 + (ulonglong)local_50)" ( (binary_expression "lVar25 + (ulonglong)local_50" identifier + (cast_expression "(ulonglong)local_50" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ))) , identifier , identifier )))) ;) (if_statement "if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" if (parenthesized_expression "(lVar25 != 0)" ( (binary_expression "lVar25 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (if_statement "if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }" if (parenthesized_expression "((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194)))" ( (binary_expression "(*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))" (parenthesized_expression "(*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400))" ( (binary_expression "*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)" (pointer_expression "*(int *)(param_1 + 0x170)" * (cast_expression "(int *)(param_1 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) )))) == (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) ))))) )) && (parenthesized_expression "(*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))" ( (binary_expression "*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194)" (pointer_expression "*(int *)(param_1 + 0x174)" * (cast_expression "(int *)(param_1 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))) == (pointer_expression "*(int *)(param_1 + 0x194)" * (cast_expression "(int *)(param_1 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) ))))) ))) )) (compound_statement "{\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }" { (expression_statement "uVar13 = local_50 + *(int *)(param_1 + 0x174);" (assignment_expression "uVar13 = local_50 + *(int *)(param_1 + 0x174)" identifier = (binary_expression "local_50 + *(int *)(param_1 + 0x174)" identifier + (pointer_expression "*(int *)(param_1 + 0x174)" * (cast_expression "(int *)(param_1 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(param_1 + 0x194) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x194) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x194)" * (cast_expression "(uint *)(param_1 + 0x194)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);" (assignment_expression "iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170)" identifier = (binary_expression "(uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170)" (call_expression "(uint)(uVar13 < local_50)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 < local_50)" ( (binary_expression "uVar13 < local_50" identifier < identifier) ))) + (pointer_expression "*(int *)(param_1 + 0x170)" * (cast_expression "(int *)(param_1 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(param_1 + 0x174) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x174) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x174)" * (cast_expression "(uint *)(param_1 + 0x174)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 400) = iVar8;" (assignment_expression "*(int *)(param_1 + 400) = iVar8" (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x170) = iVar8;" (assignment_expression "*(int *)(param_1 + 0x170) = iVar8" (pointer_expression "*(int *)(param_1 + 0x170)" * (cast_expression "(int *)(param_1 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) )))) = identifier) ;) (expression_statement "*param_8 = (uint)(puVar21 + (uVar24 < uVar12));" (assignment_expression "*param_8 = (uint)(puVar21 + (uVar24 < uVar12))" (pointer_expression "*param_8" * identifier) = (call_expression "(uint)(puVar21 + (uVar24 < uVar12))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar21 + (uVar24 < uVar12))" ( (binary_expression "puVar21 + (uVar24 < uVar12)" identifier + (parenthesized_expression "(uVar24 < uVar12)" ( (binary_expression "uVar24 < uVar12" identifier < identifier) ))) )))) ;) (expression_statement "param_8[1] = uVar24;" (assignment_expression "param_8[1] = uVar24" (subscript_expression "param_8[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_78 == local_4c) {\n          return uVar11;\n        }" if (parenthesized_expression "(local_78 == local_4c)" ( (binary_expression "local_78 == local_4c" identifier == identifier) )) (compound_statement "{\n          return uVar11;\n        }" { (return_statement "return uVar11;" return identifier ;) })) (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return uVar11;" return identifier ;) })) (goto_statement "goto LAB_0021c388;" goto statement_identifier ;) })) }) (else_clause "else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }" else (compound_statement "{\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }" { (if_statement "if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }" if (parenthesized_expression "((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0))" ( (binary_expression "(*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)" (parenthesized_expression "(*(int *)(param_1 + 0x1a0) << 1 < 0)" ( (binary_expression "*(int *)(param_1 + 0x1a0) << 1 < 0" (binary_expression "*(int *)(param_1 + 0x1a0) << 1" (pointer_expression "*(int *)(param_1 + 0x1a0)" * (cast_expression "(int *)(param_1 + 0x1a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1a0)" ( (binary_expression "param_1 + 0x1a0" identifier + number_literal) )))) << number_literal) < number_literal) )) && (parenthesized_expression "(puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)" ( (comma_expression "puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0" (assignment_expression "puVar21 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "param_5 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }" { (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0021ba3c;" goto statement_identifier ;) })) (expression_statement "local_38 = *param_8;" (assignment_expression "local_38 = *param_8" identifier = (pointer_expression "*param_8" * identifier)) ;) (expression_statement "pTVar16 = param_1 + 4;" (assignment_expression "pTVar16 = param_1 + 4" identifier = (binary_expression "param_1 + 4" identifier + number_literal)) ;) (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "local_34 = (undefined1 *)param_8[1];" (assignment_expression "local_34 = (undefined1 *)param_8[1]" identifier = (cast_expression "(undefined1 *)param_8[1]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_8[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);" statement_identifier : (do_statement "do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);" do (compound_statement "{\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    }" { (expression_statement "puVar7 = *(undefined4 **)(pTVar16 + -4);" (assignment_expression "puVar7 = *(undefined4 **)(pTVar16 + -4)" identifier = (pointer_expression "*(undefined4 **)(pTVar16 + -4)" * (cast_expression "(undefined4 **)(pTVar16 + -4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pTVar16 + -4)" ( (binary_expression "pTVar16 + -4" identifier + number_literal) ))))) ;) (if_statement "if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }" if (parenthesized_expression "(puVar7 != *(undefined4 **)pTVar16)" ( (binary_expression "puVar7 != *(undefined4 **)pTVar16" identifier != (pointer_expression "*(undefined4 **)pTVar16" * (cast_expression "(undefined4 **)pTVar16" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }" { (do_statement "do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);" do (compound_statement "{\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        }" { (while_statement "while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }" { (expression_statement "uVar13 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar13 = (uint)((ulonglong)lVar25 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);" (assignment_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7)" identifier = (call_expression "(**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x18))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 0x18)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 0x18)" * (cast_expression "(code **)(*(int *)*puVar7 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0x18)" ( (binary_expression "*(int *)*puVar7 + 0x18" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar7)" ( (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) )))) ;) (if_statement "if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }" { (if_statement "if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;" if (parenthesized_expression "(puVar7 != *(undefined4 **)pTVar16)" ( (binary_expression "puVar7 != *(undefined4 **)pTVar16" identifier != (pointer_expression "*(undefined4 **)pTVar16" * (cast_expression "(undefined4 **)pTVar16" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (goto_statement "goto LAB_0021c058;" goto statement_identifier ;)) (expression_statement "pTVar16 = pTVar16 + 0xc;" (assignment_expression "pTVar16 = pTVar16 + 0xc" identifier = (binary_expression "pTVar16 + 0xc" identifier + number_literal)) ;) (expression_statement "uVar13 = uVar13 | (uint)lVar25;" (assignment_expression "uVar13 = uVar13 | (uint)lVar25" identifier = (binary_expression "uVar13 | (uint)lVar25" identifier | (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;" if (parenthesized_expression "(param_1 + 0x100 != pTVar16)" ( (binary_expression "param_1 + 0x100 != pTVar16" (binary_expression "param_1 + 0x100" identifier + number_literal) != identifier) )) (goto_statement "goto LAB_0021bac4;" goto statement_identifier ;)) (goto_statement "goto LAB_0021c05c;" goto statement_identifier ;) })) (expression_statement "lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);" (assignment_expression "lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7)" identifier = (call_expression "(**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0xc))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 0xc)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0xc)" ( (binary_expression "*(int *)*puVar7 + 0xc" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar7)" ( (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) )))) ;) (expression_statement "uVar9 = (uint)((ulonglong)lVar26 >> 0x20);" (assignment_expression "uVar9 = (uint)((ulonglong)lVar26 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar26 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar26 >> 0x20)" ( (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }" if (parenthesized_expression "((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26))))" ( (binary_expression "(uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))" (parenthesized_expression "(uVar13 < uVar9)" ( (binary_expression "uVar13 < uVar9" identifier < identifier) )) || (parenthesized_expression "((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))" ( (parenthesized_expression "(uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26))" ( (binary_expression "uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)" (binary_expression "uVar9 == uVar13" identifier == identifier) && (parenthesized_expression "((uint)lVar25 < (uint)lVar26)" ( (binary_expression "(uint)lVar25 < (uint)lVar26" (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)lVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) ))) )) (compound_statement "{\n              lVar25 = lVar26;\n            }" { (expression_statement "lVar25 = lVar26;" (assignment_expression "lVar25 = lVar26" identifier = identifier) ;) })) (expression_statement "iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();" (assignment_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))()" identifier = (call_expression "(**(code **)(*(int *)*puVar7 + 0x20))()" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x20))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 0x20)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 0x20)" * (cast_expression "(code **)(*(int *)*puVar7 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0x20)" ( (binary_expression "*(int *)*puVar7 + 0x20" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }" { (if_statement "if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }" if (parenthesized_expression "(local_54[0] != '\0')" ( (binary_expression "local_54[0] != '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }" { (expression_statement "local_54[0] = '\0';" (assignment_expression "local_54[0] = '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar26 = lVar25;" (assignment_expression "lVar26 = lVar25" identifier = identifier) ;) })) }) (else_clause "else {\n              local_54[0] = '\x01';\n            }" else (compound_statement "{\n              local_54[0] = '\x01';\n            }" { (expression_statement "local_54[0] = '\x01';" (assignment_expression "local_54[0] = '\x01'" (subscript_expression "local_54[0]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (expression_statement "iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();" (assignment_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))()" identifier = (call_expression "(**(code **)(*(int *)*puVar7 + 0x20))()" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x20))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 0x20)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 0x20)" * (cast_expression "(code **)(*(int *)*puVar7 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0x20)" ( (binary_expression "*(int *)*puVar7 + 0x20" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;" if (parenthesized_expression "((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))" ( (binary_expression "(iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0)" ( (comma_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0" (assignment_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8)" identifier = (call_expression "(**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x1c))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 0x1c)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 0x1c)" * (cast_expression "(code **)(*(int *)*puVar7 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0x1c)" ( (binary_expression "*(int *)*puVar7 + 0x1c" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar7,8)" ( (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) , number_literal )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0021bb94:\n            puVar7 = puVar7 + 1;" statement_identifier : (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;)) (if_statement "if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;" if (parenthesized_expression "(*(undefined4 **)pTVar16 == puVar7)" ( (binary_expression "*(undefined4 **)pTVar16 == puVar7" (pointer_expression "*(undefined4 **)pTVar16" * (cast_expression "(undefined4 **)pTVar16" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) == identifier) )) (goto_statement "goto LAB_0021c04c;" goto statement_identifier ;)) })) (expression_statement "uVar13 = uVar12;" (assignment_expression "uVar13 = uVar12" identifier = identifier) ;) (if_statement "if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }" if (parenthesized_expression "(lVar26 != 0)" ( (binary_expression "lVar26 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }" { (expression_statement "lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);" (assignment_expression "lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1)" identifier = (binary_expression "lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1)" identifier + (call_expression "CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1)" identifier (argument_list "((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1)" ( (binary_expression "(uint)(uVar12 - 1 < uVar12) + (uVar24 - 1)" (call_expression "(uint)(uVar12 - 1 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 - 1 < uVar12)" ( (binary_expression "uVar12 - 1 < uVar12" (binary_expression "uVar12 - 1" identifier - number_literal) < identifier) ))) + (parenthesized_expression "(uVar24 - 1)" ( (binary_expression "uVar24 - 1" identifier - number_literal) ))) , (binary_expression "uVar12 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar13 = (uint)lVar3 & -(int)lVar26;" (assignment_expression "uVar13 = (uint)lVar3 & -(int)lVar26" identifier = (binary_expression "(uint)lVar3 & -(int)lVar26" (cast_expression "(uint)lVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar26" - (cast_expression "(int)lVar26" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);" (assignment_expression "uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" identifier = (binary_expression "(uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (call_expression "(uint)((ulonglong)lVar3 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (binary_expression "-(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (unary_expression "-(uint)(-(int)lVar26 != 0)" - (call_expression "(uint)(-(int)lVar26 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)lVar26 != 0)" ( (binary_expression "-(int)lVar26 != 0" (unary_expression "-(int)lVar26" - (cast_expression "(int)lVar26" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (cast_expression "(int)((ulonglong)lVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar26 >> 0x20)" ( (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))))) ;) })) (expression_statement "piVar20 = (int *)*puVar7;" (assignment_expression "piVar20 = (int *)*puVar7" identifier = (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }" if (parenthesized_expression "(piVar20[8] < 0)" ( (binary_expression "piVar20[8] < 0" (subscript_expression "piVar20[8]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }" { (if_statement "if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }" if (parenthesized_expression "(-1 < piVar20[8] << 1)" ( (binary_expression "-1 < piVar20[8] << 1" number_literal < (binary_expression "piVar20[8] << 1" (subscript_expression "piVar20[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }" { (labeled_statement "LAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);" statement_identifier : (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29fc" identifier + number_literal) )))) ;)) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "uVar12 = uVar13 + piVar20[5];" (assignment_expression "uVar12 = uVar13 + piVar20[5]" identifier = (binary_expression "uVar13 + piVar20[5]" identifier + (subscript_expression "piVar20[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];" (assignment_expression "uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4]" identifier = (binary_expression "(uint)(uVar12 < uVar13) + uVar24 + piVar20[4]" (binary_expression "(uint)(uVar12 < uVar13) + uVar24" (call_expression "(uint)(uVar12 < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < uVar13)" ( (binary_expression "uVar12 < uVar13" identifier < identifier) ))) + identifier) + (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0021bb94;" goto statement_identifier ;) })) (expression_statement "bVar2 = *(byte *)(piVar20 + 8);" (assignment_expression "bVar2 = *(byte *)(piVar20 + 8)" identifier = (pointer_expression "*(byte *)(piVar20 + 8)" * (cast_expression "(byte *)(piVar20 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20 + 8)" ( (binary_expression "piVar20 + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar20[2] = uVar24;" (assignment_expression "piVar20[2] = uVar24" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar20[3] = uVar13;" (assignment_expression "piVar20[3] = uVar13" (subscript_expression "piVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;" (assignment_expression "*(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80" (pointer_expression "*(byte *)(piVar20 + 8)" * (cast_expression "(byte *)(piVar20 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20 + 8)" ( (binary_expression "piVar20 + 8" identifier + number_literal) )))) = (binary_expression "bVar2 & 0x7f | 0x80" (binary_expression "bVar2 & 0x7f" identifier & number_literal) | number_literal)) ;) (if_statement "if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }" if (parenthesized_expression "(piVar20[8] << 2 < 0)" ( (binary_expression "piVar20[8] << 2 < 0" (binary_expression "piVar20[8] << 2" (subscript_expression "piVar20[8]" identifier [ number_literal ]) << number_literal) < number_literal) )) (compound_statement "{\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d60" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "iVar22 = *piVar20;" (assignment_expression "iVar22 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "piVar20[6] = uVar24;" (assignment_expression "piVar20[6] = uVar24" (subscript_expression "piVar20[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar20[7] = uVar13;" (assignment_expression "piVar20[7] = uVar13" (subscript_expression "piVar20[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;" (assignment_expression "*(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0" (pointer_expression "*(byte *)(piVar20 + 8)" * (cast_expression "(byte *)(piVar20 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20 + 8)" ( (binary_expression "piVar20 + 8" identifier + number_literal) )))) = (binary_expression "bVar2 & 0x5f | 0xa0" (binary_expression "bVar2 & 0x5f" identifier & number_literal) | number_literal)) ;) (if_statement "if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }" if (parenthesized_expression "(-1 < piVar20[8] << 1)" ( (binary_expression "-1 < piVar20[8] << 1" number_literal < (binary_expression "piVar20[8] << 1" (subscript_expression "piVar20[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }" { (expression_statement "(**(code **)(iVar22 + 0x38))(piVar20);" (call_expression "(**(code **)(iVar22 + 0x38))(piVar20)" (parenthesized_expression "(**(code **)(iVar22 + 0x38))" ( (pointer_expression "**(code **)(iVar22 + 0x38)" * (pointer_expression "*(code **)(iVar22 + 0x38)" * (cast_expression "(code **)(iVar22 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x38)" ( (binary_expression "iVar22 + 0x38" identifier + number_literal) ))))) )) (argument_list "(piVar20)" ( identifier ))) ;) (if_statement "if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }" if (parenthesized_expression "(-1 < piVar20[8] << 1)" ( (binary_expression "-1 < piVar20[8] << 1" number_literal < (binary_expression "piVar20[8] << 1" (subscript_expression "piVar20[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d74" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "piVar20 = (int *)*puVar7;" (assignment_expression "piVar20 = (int *)*puVar7" identifier = (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (-1 < piVar20[8] << 1) goto LAB_0021c280;" if (parenthesized_expression "(-1 < piVar20[8] << 1)" ( (binary_expression "-1 < piVar20[8] << 1" number_literal < (binary_expression "piVar20[8] << 1" (subscript_expression "piVar20[8]" identifier [ number_literal ]) << number_literal)) )) (goto_statement "goto LAB_0021c280;" goto statement_identifier ;)) (expression_statement "iVar22 = *piVar20;" (assignment_expression "iVar22 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) })) (expression_statement "bVar2 = *(byte *)(piVar20 + 8);" (assignment_expression "bVar2 = *(byte *)(piVar20 + 8)" identifier = (pointer_expression "*(byte *)(piVar20 + 8)" * (cast_expression "(byte *)(piVar20 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20 + 8)" ( (binary_expression "piVar20 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(piVar20 + 8) = bVar2 & 0x5f;" (assignment_expression "*(byte *)(piVar20 + 8) = bVar2 & 0x5f" (pointer_expression "*(byte *)(piVar20 + 8)" * (cast_expression "(byte *)(piVar20 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20 + 8)" ( (binary_expression "piVar20 + 8" identifier + number_literal) )))) = (binary_expression "bVar2 & 0x5f" identifier & number_literal)) ;) (expression_statement "uVar12 = uVar13 + piVar20[5];" (assignment_expression "uVar12 = uVar13 + piVar20[5]" identifier = (binary_expression "uVar13 + piVar20[5]" identifier + (subscript_expression "piVar20[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];" (assignment_expression "uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4]" identifier = (binary_expression "(uint)(uVar12 < uVar13) + uVar24 + piVar20[4]" (binary_expression "(uint)(uVar12 < uVar13) + uVar24" (call_expression "(uint)(uVar12 < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < uVar13)" ( (binary_expression "uVar12 < uVar13" identifier < identifier) ))) + identifier) + (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (if_statement "if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }" if (parenthesized_expression "(-1 < piVar20[8] << 3)" ( (binary_expression "-1 < piVar20[8] << 3" number_literal < (binary_expression "piVar20[8] << 3" (subscript_expression "piVar20[8]" identifier [ number_literal ]) << number_literal)) )) (compound_statement "{\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }" { (expression_statement "*(byte *)(piVar20 + 8) = bVar2 & 0x1f;" (assignment_expression "*(byte *)(piVar20 + 8) = bVar2 & 0x1f" (pointer_expression "*(byte *)(piVar20 + 8)" * (cast_expression "(byte *)(piVar20 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20 + 8)" ( (binary_expression "piVar20 + 8" identifier + number_literal) )))) = (binary_expression "bVar2 & 0x1f" identifier & number_literal)) ;) })) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(iVar22 + 0x3c))(piVar20);" (call_expression "(**(code **)(iVar22 + 0x3c))(piVar20)" (parenthesized_expression "(**(code **)(iVar22 + 0x3c))" ( (pointer_expression "**(code **)(iVar22 + 0x3c)" * (pointer_expression "*(code **)(iVar22 + 0x3c)" * (cast_expression "(code **)(iVar22 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x3c)" ( (binary_expression "iVar22 + 0x3c" identifier + number_literal) ))))) )) (argument_list "(piVar20)" ( identifier ))) ;) }) while (parenthesized_expression "(*(undefined4 **)pTVar16 != puVar7)" ( (binary_expression "*(undefined4 **)pTVar16 != puVar7" (pointer_expression "*(undefined4 **)pTVar16" * (cast_expression "(undefined4 **)pTVar16" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) != identifier) )) ;) })) (labeled_statement "LAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;" statement_identifier : (expression_statement "pTVar16 = pTVar16 + 0xc;" (assignment_expression "pTVar16 = pTVar16 + 0xc" identifier = (binary_expression "pTVar16 + 0xc" identifier + number_literal)) ;)) }) while (parenthesized_expression "(param_1 + 0x100 != pTVar16)" ( (binary_expression "param_1 + 0x100 != pTVar16" (binary_expression "param_1 + 0x100" identifier + number_literal) != identifier) )) ;)) (labeled_statement "LAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;" statement_identifier : (expression_statement "uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;" (assignment_expression "uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25" identifier = (binary_expression "(uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25" (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) | (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;)) (labeled_statement "LAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;" statement_identifier : (expression_statement "uVar12 = *(uint *)param_6 + uVar12;" (assignment_expression "uVar12 = *(uint *)param_6 + uVar12" identifier = (binary_expression "*(uint *)param_6 + uVar12" (pointer_expression "*(uint *)param_6" * (cast_expression "(uint *)param_6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + identifier)) ;)) (expression_statement "uVar24 = (uVar12 < *(uint *)param_6) + uVar24;" (assignment_expression "uVar24 = (uVar12 < *(uint *)param_6) + uVar24" identifier = (binary_expression "(uVar12 < *(uint *)param_6) + uVar24" (parenthesized_expression "(uVar12 < *(uint *)param_6)" ( (binary_expression "uVar12 < *(uint *)param_6" identifier < (pointer_expression "*(uint *)param_6" * (cast_expression "(uint *)param_6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) + identifier)) ;) (expression_statement "uVar9 = uVar24;" (assignment_expression "uVar9 = uVar24" identifier = identifier) ;) (expression_statement "uVar10 = uVar12;" (assignment_expression "uVar10 = uVar12" identifier = identifier) ;) (if_statement "if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }" { (expression_statement "lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);" (assignment_expression "lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12)" identifier = (binary_expression "lVar25 + -1 + CONCAT44(uVar24,uVar12)" (binary_expression "lVar25 + -1" identifier + number_literal) + (call_expression "CONCAT44(uVar24,uVar12)" identifier (argument_list "(uVar24,uVar12)" ( identifier , identifier ))))) ;) (expression_statement "uVar10 = (uint)lVar26 & -(int)lVar25;" (assignment_expression "uVar10 = (uint)lVar26 & -(int)lVar25" identifier = (binary_expression "(uint)lVar26 & -(int)lVar25" (cast_expression "(uint)lVar26" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar25" - (cast_expression "(int)lVar25" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20)" identifier = (binary_expression "(uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20)" (call_expression "(uint)((ulonglong)lVar26 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar26 >> 0x20)" ( (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (binary_expression "-(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20)" (unary_expression "-(uint)(-(int)lVar25 != 0)" - (call_expression "(uint)(-(int)lVar25 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(-(int)lVar25 != 0)" ( (binary_expression "-(int)lVar25 != 0" (unary_expression "-(int)lVar25" - (cast_expression "(int)lVar25" ( (type_descriptor "int" primitive_type) ) identifier)) != number_literal) )))) - (cast_expression "(int)((ulonglong)lVar25 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))))) ;) (expression_statement "lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);" (assignment_expression "lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12)" identifier = (call_expression "CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12)" identifier (argument_list "((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12)" ( (binary_expression "(uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12)" (parenthesized_expression "(uVar9 - uVar24)" ( (binary_expression "uVar9 - uVar24" identifier - identifier) )) - (call_expression "(uint)(uVar10 < uVar10 - uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar10 - uVar12)" ( (binary_expression "uVar10 < uVar10 - uVar12" identifier < (binary_expression "uVar10 - uVar12" identifier - identifier)) )))) , (binary_expression "uVar10 - uVar12" identifier - identifier) )))) ;) })) (expression_statement "puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);" (assignment_expression "puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20)" identifier = (cast_expression "(undefined1 *)((ulonglong)lVar25 >> 0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_44 = (int)lVar25;" (assignment_expression "local_44 = (int)lVar25" identifier = (cast_expression "(int)lVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar22 = *local_3c;" (assignment_expression "iVar22 = *local_3c" identifier = (pointer_expression "*local_3c" * identifier)) ;) (expression_statement "*(undefined1 *)param_7 = 1;" (assignment_expression "*(undefined1 *)param_7 = 1" (pointer_expression "*(undefined1 *)param_7" * (cast_expression "(undefined1 *)param_7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "iVar17 = *(int *)(iVar22 + 0xc);" (assignment_expression "iVar17 = *(int *)(iVar22 + 0xc)" identifier = (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }" { (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2998" identifier + number_literal) )))) ;) (return_statement "return uVar11;" return identifier ;) })) (expression_statement "iVar22 = *(int *)(iVar22 + 8);" (assignment_expression "iVar22 = *(int *)(iVar22 + 8)" identifier = (pointer_expression "*(int *)(iVar22 + 8)" * (cast_expression "(int *)(iVar22 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }" { (expression_statement "iVar18 = *(int *)(iVar22 + 0x5228);" (assignment_expression "iVar18 = *(int *)(iVar22 + 0x5228)" identifier = (pointer_expression "*(int *)(iVar22 + 0x5228)" * (cast_expression "(int *)(iVar22 + 0x5228)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x5228)" ( (binary_expression "iVar22 + 0x5228" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = *(undefined1 **)(iVar22 + 0x522c);" (assignment_expression "puVar23 = *(undefined1 **)(iVar22 + 0x522c)" identifier = (pointer_expression "*(undefined1 **)(iVar22 + 0x522c)" * (cast_expression "(undefined1 **)(iVar22 + 0x522c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x522c)" ( (binary_expression "iVar22 + 0x522c" identifier + number_literal) ))))) ;) (if_statement "if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }" if (parenthesized_expression "(iVar18 == 0 && puVar23 == (undefined1 *)0x0)" ( (binary_expression "iVar18 == 0 && puVar23 == (undefined1 *)0x0" (binary_expression "iVar18 == 0" identifier == number_literal) && (binary_expression "puVar23 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }" { (expression_statement "iVar22 = *(int *)(iVar17 + 4);" (assignment_expression "iVar22 = *(int *)(iVar17 + 4)" identifier = (pointer_expression "*(int *)(iVar17 + 4)" * (cast_expression "(int *)(iVar17 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(iVar22 + 0x20);" (assignment_expression "iVar18 = *(int *)(iVar22 + 0x20)" identifier = (pointer_expression "*(int *)(iVar22 + 0x20)" * (cast_expression "(int *)(iVar22 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x20)" ( (binary_expression "iVar22 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = *(undefined1 **)(iVar22 + 0x24);" (assignment_expression "puVar23 = *(undefined1 **)(iVar22 + 0x24)" identifier = (pointer_expression "*(undefined1 **)(iVar22 + 0x24)" * (cast_expression "(undefined1 **)(iVar22 + 0x24)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x24)" ( (binary_expression "iVar22 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);" (assignment_expression "uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9,uVar10,iVar18,puVar23)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar15 = local_34;" (assignment_expression "puVar15 = local_34" identifier = identifier) ;) (expression_statement "puVar19 = puVar23 + -(int)uVar27;" (assignment_expression "puVar19 = puVar23 + -(int)uVar27" identifier = (binary_expression "puVar23 + -(int)uVar27" identifier + (unary_expression "-(int)uVar27" - (cast_expression "(int)uVar27" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);" (assignment_expression "iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19)" identifier = (binary_expression "(iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19)" (parenthesized_expression "(iVar18 - (int)((ulonglong)uVar27 >> 0x20))" ( (binary_expression "iVar18 - (int)((ulonglong)uVar27 >> 0x20)" identifier - (cast_expression "(int)((ulonglong)uVar27 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" ( (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) - (call_expression "(uint)(puVar23 < puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 < puVar19)" ( (binary_expression "puVar23 < puVar19" identifier < identifier) ))))) ;) (expression_statement "local_30 = local_38;" (assignment_expression "local_30 = local_38" identifier = identifier) ;) (expression_statement "uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);" (assignment_expression "uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38,local_34,iVar18,puVar23)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar12 = local_30;" (assignment_expression "uVar12 = local_30" identifier = identifier) ;) (if_statement "if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }" if (parenthesized_expression "(CONCAT44(iVar22,puVar19) < uVar28)" ( (binary_expression "CONCAT44(iVar22,puVar19) < uVar28" (call_expression "CONCAT44(iVar22,puVar19)" identifier (argument_list "(iVar22,puVar19)" ( identifier , identifier ))) < identifier) )) (compound_statement "{\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }" { (expression_statement "puVar15 = puVar23 + (int)local_34;" (assignment_expression "puVar15 = puVar23 + (int)local_34" identifier = (binary_expression "puVar23 + (int)local_34" identifier + (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;" (assignment_expression "local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38" identifier = (binary_expression "(uint)(puVar15 < local_34) + iVar18 + local_38" (binary_expression "(uint)(puVar15 < local_34) + iVar18" (call_expression "(uint)(puVar15 < local_34)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar15 < local_34)" ( (binary_expression "puVar15 < local_34" identifier < identifier) ))) + identifier) + identifier)) ;) (expression_statement "uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);" (assignment_expression "uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23)" identifier = (call_expression "(*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" ( (pointer_expression "*(code *)PTR_FUN_004c2428" * (cast_expression "(code *)PTR_FUN_004c2428" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38,puVar15,iVar18,puVar23)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar12 = local_38;" (assignment_expression "uVar12 = local_38" identifier = identifier) ;) })) (expression_statement "puVar15 = puVar19 + (int)puVar15;" (assignment_expression "puVar15 = puVar19 + (int)puVar15" identifier = (binary_expression "puVar19 + (int)puVar15" identifier + (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar23 = puVar15 + -(int)uVar28;" (assignment_expression "puVar23 = puVar15 + -(int)uVar28" identifier = (binary_expression "puVar15 + -(int)uVar28" identifier + (unary_expression "-(int)uVar28" - (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "param_8[1] = (uint)puVar23;" (assignment_expression "param_8[1] = (uint)puVar23" (subscript_expression "param_8[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);" (assignment_expression "uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23)" identifier = (binary_expression "(((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23)" (parenthesized_expression "(((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20))" ( (binary_expression "((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)" (parenthesized_expression "((uint)(puVar15 < puVar19) + iVar22 + uVar12)" ( (binary_expression "(uint)(puVar15 < puVar19) + iVar22 + uVar12" (binary_expression "(uint)(puVar15 < puVar19) + iVar22" (call_expression "(uint)(puVar15 < puVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar15 < puVar19)" ( (binary_expression "puVar15 < puVar19" identifier < identifier) ))) + identifier) + identifier) )) - (cast_expression "(int)(uVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar28 >> 0x20)" ( (binary_expression "uVar28 >> 0x20" identifier >> number_literal) )))) )) - (call_expression "(uint)(puVar15 < puVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar15 < puVar23)" ( (binary_expression "puVar15 < puVar23" identifier < identifier) ))))) ;) (expression_statement "puVar15 = puVar23 + -(int)local_4c;" (assignment_expression "puVar15 = puVar23 + -(int)local_4c" identifier = (binary_expression "puVar23 + -(int)local_4c" identifier + (unary_expression "-(int)local_4c" - (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "*param_8 = uVar12;" (assignment_expression "*param_8 = uVar12" (pointer_expression "*param_8" * identifier) = identifier) ;) (expression_statement "local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));" (assignment_expression "local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15))" identifier = (binary_expression "local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15))" (binary_expression "local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40)" identifier + (call_expression "(uint)(local_40 + (int)puVar15 < local_40)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_40 + (int)puVar15 < local_40)" ( (binary_expression "local_40 + (int)puVar15 < local_40" (binary_expression "local_40 + (int)puVar15" identifier + (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) < identifier) )))) + (parenthesized_expression "((uVar12 - local_50) - (uint)(puVar23 < puVar15))" ( (binary_expression "(uVar12 - local_50) - (uint)(puVar23 < puVar15)" (parenthesized_expression "(uVar12 - local_50)" ( (binary_expression "uVar12 - local_50" identifier - identifier) )) - (call_expression "(uint)(puVar23 < puVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar23 < puVar15)" ( (binary_expression "puVar23 < puVar15" identifier < identifier) )))) )))) ;) (expression_statement "local_50 = uVar12;" (assignment_expression "local_50 = uVar12" identifier = identifier) ;) (expression_statement "local_4c = puVar23;" (assignment_expression "local_4c = puVar23" identifier = identifier) ;) (expression_statement "local_40 = local_40 + (int)puVar15;" (assignment_expression "local_40 = local_40 + (int)puVar15" identifier = (binary_expression "local_40 + (int)puVar15" identifier + (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_0021b72c;" goto statement_identifier ;) })) }))) (expression_statement "FUN_00212c40();" (call_expression "FUN_00212c40()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0021c388:\n                    \n  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);" statement_identifier : (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" identifier + number_literal) )))) ;)) (return_statement "return uVar11;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_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) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (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 *)) ) IDENT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) )))) ;)) (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (goto_statement goto statement_identifier ;)) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) | LIT) )))) ;) })))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != IDENT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) + (pointer_expression * IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , (binary_expression IDENT + (call_expression IDENT (argument_list ( IDENT , IDENT )))) , IDENT , (pointer_expression & IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) || (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (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) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) - IDENT) )))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < IDENT) ))) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) , (binary_expression IDENT - LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) != LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (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) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return 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 { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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 + 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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (binary_expression IDENT == LIT)) )) (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 + 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT < IDENT) (ERROR *) > IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + 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) )))) + (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) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return 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 (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (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 IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) << LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | 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 IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (ERROR (comma_expression IDENT (ERROR : : (binary_expression IDENT < IDENT) : : IDENT *) , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression (binary_expression IDENT * (ERROR >> : :) IDENT) < IDENT) : :) (expression_statement (binary_expression (binary_expression IDENT * IDENT) (ERROR &) > (parenthesized_expression ( (comma_expression (call_expression (parenthesized_expression ( (ERROR (binary_expression IDENT < IDENT) : : (type_descriptor TYPE (abstract_pointer_declarator *)) , IDENT : : (binary_expression IDENT < IDENT) : :) (binary_expression IDENT * (ERROR >>) (pointer_expression * IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) , (comma_expression IDENT , (pointer_expression & IDENT))) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return 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) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (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) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (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 + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - LIT) < IDENT) ))) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) , (binary_expression IDENT - LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) != LIT) )))) - (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 (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) << LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;)) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT) + (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) << LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) << LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) << LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) << LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT) + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (subscript_expression IDENT [ LIT ]) << LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT & LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) != LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT - IDENT)) )))) , (binary_expression 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) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return 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 != 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 = (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 IDENT == LIT) && (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT) + IDENT) )) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) < IDENT) )))) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;)) (return_statement return IDENT ;) })))
(function_definition "undefined4\ngold::Output_segment::set_section_addresses\n          (Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,\n          bool *param_6,longlong *param_7,uint *param_8)\n\n{\n  char cVar1;\n  byte bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  undefined3 in_register_00000018;\n  Target *pTVar16;\n  int iVar17;\n  int iVar18;\n  undefined1 *puVar19;\n  int *piVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  undefined1 *puVar23;\n  uint uVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  ulonglong uVar28;\n  undefined4 in_stack_00000024;\n  undefined1 *local_90 [2];\n  undefined1 auStack_88 [16];\n  undefined1 *local_78;\n  int local_74;\n  undefined1 local_70 [16];\n  undefined1 *local_60;\n  uint local_5c;\n  undefined4 *local_58;\n  char local_54 [4];\n  uint local_50;\n  undefined1 *local_4c;\n  code *local_48;\n  int local_44;\n  undefined1 *local_40;\n  int *local_3c;\n  uint local_38;\n  undefined1 *local_34;\n  uint local_30;\n  \n  iVar8 = CONCAT31(in_register_00000018,param_3);\n  local_40 = param_4._4_4_;\n  local_48 = param_4._0_4_;\n  uVar11 = 0x10e4;\n  if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;\n  local_50 = *param_8;\n  local_54[0] = '\0';\n  local_3c = (int *)PTR_parameters_004c19b4;\n  local_4c = (undefined1 *)param_8[1];\n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }\n  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }\n  else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }\n  FUN_00212c40();\nLAB_0021c388:\n                    \n  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);\n  return uVar11;\n}" (type_identifier "undefined4") (ERROR "gold::Output_segment::" (identifier "gold") (: ":") (: ":") (identifier "Output_segment") (: ":") (: ":")) (function_declarator "set_section_addresses\n          (Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,\n          bool *param_6,longlong *param_7,uint *param_8)" (identifier "set_section_addresses") (parameter_list "(Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,\n          bool *param_6,longlong *param_7,uint *param_8)" (( "(") (parameter_declaration "Target *param_1" (type_identifier "Target") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "Layout *param_2" (type_identifier "Layout") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "bool param_3" (primitive_type "bool") (identifier "param_3")) (, ",") (parameter_declaration "ulonglong param_4" (type_identifier "ulonglong") (identifier "param_4")) (, ",") (parameter_declaration "uint *param_5" (type_identifier "uint") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "bool *param_6" (primitive_type "bool") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "longlong *param_7" (type_identifier "longlong") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) (, ",") (parameter_declaration "uint *param_8" (type_identifier "uint") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))) () ")"))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  longlong lVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  code *pcVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined4 *puVar14;\n  undefined1 *puVar15;\n  undefined3 in_register_00000018;\n  Target *pTVar16;\n  int iVar17;\n  int iVar18;\n  undefined1 *puVar19;\n  int *piVar20;\n  undefined1 *puVar21;\n  int iVar22;\n  undefined1 *puVar23;\n  uint uVar24;\n  longlong lVar25;\n  longlong lVar26;\n  undefined8 uVar27;\n  ulonglong uVar28;\n  undefined4 in_stack_00000024;\n  undefined1 *local_90 [2];\n  undefined1 auStack_88 [16];\n  undefined1 *local_78;\n  int local_74;\n  undefined1 local_70 [16];\n  undefined1 *local_60;\n  uint local_5c;\n  undefined4 *local_58;\n  char local_54 [4];\n  uint local_50;\n  undefined1 *local_4c;\n  code *local_48;\n  int local_44;\n  undefined1 *local_40;\n  int *local_3c;\n  uint local_38;\n  undefined1 *local_34;\n  uint local_30;\n  \n  iVar8 = CONCAT31(in_register_00000018,param_3);\n  local_40 = param_4._4_4_;\n  local_48 = param_4._0_4_;\n  uVar11 = 0x10e4;\n  if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;\n  local_50 = *param_8;\n  local_54[0] = '\0';\n  local_3c = (int *)PTR_parameters_004c19b4;\n  local_4c = (undefined1 *)param_8[1];\n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }\n  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }\n  else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }\n  FUN_00212c40();\nLAB_0021c388:\n                    \n  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);\n  return uVar11;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "longlong lVar3;" (type_identifier "longlong") (identifier "lVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined3 in_register_00000018;" (type_identifier "undefined3") (identifier "in_register_00000018") (; ";")) (declaration "Target *pTVar16;" (type_identifier "Target") (pointer_declarator "*pTVar16" (* "*") (identifier "pTVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "undefined1 *puVar19;" (type_identifier "undefined1") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "undefined1 *puVar21;" (type_identifier "undefined1") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "undefined1 *puVar23;" (type_identifier "undefined1") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "longlong lVar25;" (type_identifier "longlong") (identifier "lVar25") (; ";")) (declaration "longlong lVar26;" (type_identifier "longlong") (identifier "lVar26") (; ";")) (declaration "undefined8 uVar27;" (type_identifier "undefined8") (identifier "uVar27") (; ";")) (declaration "ulonglong uVar28;" (type_identifier "ulonglong") (identifier "uVar28") (; ";")) (declaration "undefined4 in_stack_00000024;" (type_identifier "undefined4") (identifier "in_stack_00000024") (; ";")) (declaration "undefined1 *local_90 [2];" (type_identifier "undefined1") (pointer_declarator "*local_90 [2]" (* "*") (array_declarator "local_90 [2]" (identifier "local_90") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined1 auStack_88 [16];" (type_identifier "undefined1") (array_declarator "auStack_88 [16]" (identifier "auStack_88") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 *local_78;" (type_identifier "undefined1") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "undefined1 local_70 [16];" (type_identifier "undefined1") (array_declarator "local_70 [16]" (identifier "local_70") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 *local_60;" (type_identifier "undefined1") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "undefined4 *local_58;" (type_identifier "undefined4") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "char local_54 [4];" (primitive_type "char") (array_declarator "local_54 [4]" (identifier "local_54") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "undefined1 *local_4c;" (type_identifier "undefined1") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "code *local_48;" (type_identifier "code") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "undefined1 *local_40;" (type_identifier "undefined1") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "int *local_3c;" (primitive_type "int") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "undefined1 *local_34;" (type_identifier "undefined1") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (expression_statement "iVar8 = CONCAT31(in_register_00000018,param_3);" (assignment_expression "iVar8 = CONCAT31(in_register_00000018,param_3)" (identifier "iVar8") (= "=") (call_expression "CONCAT31(in_register_00000018,param_3)" (identifier "CONCAT31") (argument_list "(in_register_00000018,param_3)" (( "(") (identifier "in_register_00000018") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "local_40 = param_4._4_4_;" (assignment_expression "local_40 = param_4._4_4_" (identifier "local_40") (= "=") (field_expression "param_4._4_4_" (identifier "param_4") (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "local_48 = param_4._0_4_;" (assignment_expression "local_48 = param_4._0_4_" (identifier "local_48") (= "=") (field_expression "param_4._0_4_" (identifier "param_4") (. ".") (field_identifier "_0_4_"))) (; ";")) (expression_statement "uVar11 = 0x10e4;" (assignment_expression "uVar11 = 0x10e4" (identifier "uVar11") (= "=") (number_literal "0x10e4")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x198) != 1)" (( "(") (binary_expression "*(int *)(param_1 + 0x198) != 1" (pointer_expression "*(int *)(param_1 + 0x198)" (* "*") (cast_expression "(int *)(param_1 + 0x198)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x198)" (( "(") (binary_expression "param_1 + 0x198" (identifier "param_1") (+ "+") (number_literal "0x198")) () ")")))) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0021c29c;" (goto "goto") (statement_identifier "LAB_0021c29c") (; ";"))) (expression_statement "local_50 = *param_8;" (assignment_expression "local_50 = *param_8" (identifier "local_50") (= "=") (pointer_expression "*param_8" (* "*") (identifier "param_8"))) (; ";")) (expression_statement "local_54[0] = '\0';" (assignment_expression "local_54[0] = '\0'" (subscript_expression "local_54[0]" (identifier "local_54") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_3c = (int *)PTR_parameters_004c19b4;" (assignment_expression "local_3c = (int *)PTR_parameters_004c19b4" (identifier "local_3c") (= "=") (cast_expression "(int *)PTR_parameters_004c19b4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_004c19b4"))) (; ";")) (expression_statement "local_4c = (undefined1 *)param_8[1];" (assignment_expression "local_4c = (undefined1 *)param_8[1]" (identifier "local_4c") (= "=") (cast_expression "(undefined1 *)param_8[1]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" (( "(") (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" (* "*") (cast_expression "(int *)PTR_parameters_004c19b4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_004c19b4"))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);\n    return uVar11;\n  }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,\n                        PTR_s_in_a_linker_script_004c191c + -0x29c4)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "-0x9b8")) (, ",") (number_literal "0x5c") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29c4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x29c4")) () ")")))) (; ";")) (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (if_statement "if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }\n  else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }" (if "if") (parenthesized_expression "((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0))" (( "(") (binary_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||\n     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)" (parenthesized_expression "(*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9)" (* "*") (cast_expression "(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 8)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 8)" (( "(") (binary_expression "*(int *)PTR_parameters_004c19b4 + 8" (pointer_expression "*(int *)PTR_parameters_004c19b4" (* "*") (cast_expression "(int *)PTR_parameters_004c19b4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_004c19b4"))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x56c9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)" (( "(") (comma_expression "iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0" (assignment_expression "iVar22 = is_first_section_relro((Output_segment *)param_1)" (identifier "iVar22") (= "=") (call_expression "is_first_section_relro((Output_segment *)param_1)" (identifier "is_first_section_relro") (argument_list "((Output_segment *)param_1)" (( "(") (cast_expression "(Output_segment *)param_1" (( "(") (type_descriptor "Output_segment *" (type_identifier "Output_segment") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) () ")")))) (, ",") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    puVar21 = (undefined1 *)0x0;\n    local_44 = 0;\nLAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }\n    lVar25 = CONCAT44(local_48,local_40);\n    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;\n    local_54[0] = '\0';\n    *(uint *)(param_1 + 0x188) = local_50;\n    *(undefined1 **)(param_1 + 0x18c) = local_4c;\n    local_60 = (undefined1 *)*param_8;\n    local_5c = param_8[1];\n    iVar22 = 0;\n    pTVar16 = param_1;\n    local_40 = puVar21;\n    while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }\n    if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }\n    iVar22 = *(int *)(param_2 + 4);\n    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;\n    cVar1 = *(char *)(iVar22 + 0x30);\n    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);\n    *param_8 = (uint)puVar21;\n    param_8[1] = uVar12;\n    if (cVar1 == '\0') {\n      return uVar11;\n    }\n    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }\n    iVar17 = *(int *)(*local_3c + 8);\n    if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }\n  }" ({ "{") (expression_statement "puVar21 = (undefined1 *)0x0;" (assignment_expression "puVar21 = (undefined1 *)0x0" (identifier "puVar21") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0021b72c:\n    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }" (statement_identifier "LAB_0021b72c") (: ":") (if_statement "if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }\n    else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }" (if "if") (parenthesized_expression "((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0))" (( "(") (binary_expression "(param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)" (parenthesized_expression "(param_5 == (uint *)0x0)" (( "(") (binary_expression "param_5 == (uint *)0x0" (identifier "param_5") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x1a0) << 1 < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1a0) << 1 < 0" (binary_expression "*(int *)(param_1 + 0x1a0) << 1" (pointer_expression "*(int *)(param_1 + 0x1a0)" (* "*") (cast_expression "(int *)(param_1 + 0x1a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1a0)" (( "(") (binary_expression "param_1 + 0x1a0" (identifier "param_1") (+ "+") (number_literal "0x1a0")) () ")")))) (<< "<<") (number_literal "1")) (< "<") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = 0x1131;\n      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;\n      local_48 = *(code **)(param_1 + 0x160);\n      local_40 = *(undefined1 **)(param_1 + 0x164);\n    }" ({ "{") (labeled_statement "LAB_0021ba3c:\n      if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" (statement_identifier "LAB_0021ba3c") (: ":") (if_statement "if (*(code **)(param_1 + 0x168) != local_48) {\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" (if "if") (parenthesized_expression "(*(code **)(param_1 + 0x168) != local_48)" (( "(") (binary_expression "*(code **)(param_1 + 0x168) != local_48" (pointer_expression "*(code **)(param_1 + 0x168)" (* "*") (cast_expression "(code **)(param_1 + 0x168)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x168)" (( "(") (binary_expression "param_1 + 0x168" (identifier "param_1") (+ "+") (number_literal "0x168")) () ")")))) (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n        uVar11 = 0x1131;\nLAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" ({ "{") (expression_statement "uVar11 = 0x1131;" (assignment_expression "uVar11 = 0x1131" (identifier "uVar11") (= "=") (number_literal "0x1131")) (; ";")) (labeled_statement "LAB_0021c29c:\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);" (statement_identifier "LAB_0021c29c") (: ":") (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x48b4")) (, ",") (identifier "uVar11") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x3260")) () ")")))) (; ";"))) (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}")))) (expression_statement "uVar11 = 0x1131;" (assignment_expression "uVar11 = 0x1131" (identifier "uVar11") (= "=") (number_literal "0x1131")) (; ";")) (if_statement "if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;" (if "if") (parenthesized_expression "(*(undefined1 **)(param_1 + 0x16c) != local_40)" (( "(") (binary_expression "*(undefined1 **)(param_1 + 0x16c) != local_40" (pointer_expression "*(undefined1 **)(param_1 + 0x16c)" (* "*") (cast_expression "(undefined1 **)(param_1 + 0x16c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x16c)" (( "(") (binary_expression "param_1 + 0x16c" (identifier "param_1") (+ "+") (number_literal "0x16c")) () ")")))) (!= "!=") (identifier "local_40")) () ")")) (goto_statement "goto LAB_0021c29c;" (goto "goto") (statement_identifier "LAB_0021c29c") (; ";"))) (expression_statement "local_48 = *(code **)(param_1 + 0x160);" (assignment_expression "local_48 = *(code **)(param_1 + 0x160)" (identifier "local_48") (= "=") (pointer_expression "*(code **)(param_1 + 0x160)" (* "*") (cast_expression "(code **)(param_1 + 0x160)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x160)" (( "(") (binary_expression "param_1 + 0x160" (identifier "param_1") (+ "+") (number_literal "0x160")) () ")"))))) (; ";")) (expression_statement "local_40 = *(undefined1 **)(param_1 + 0x164);" (assignment_expression "local_40 = *(undefined1 **)(param_1 + 0x164)" (identifier "local_40") (= "=") (pointer_expression "*(undefined1 **)(param_1 + 0x164)" (* "*") (cast_expression "(undefined1 **)(param_1 + 0x164)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x164)" (( "(") (binary_expression "param_1 + 0x164" (identifier "param_1") (+ "+") (number_literal "0x164")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }" (else "else") (compound_statement "{\n      *(code **)(param_1 + 0x160) = local_48;\n      *(undefined1 **)(param_1 + 0x164) = local_40;\n      *(code **)(param_1 + 0x168) = local_48;\n      *(undefined1 **)(param_1 + 0x16c) = local_40;\n      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);\n    }" ({ "{") (expression_statement "*(code **)(param_1 + 0x160) = local_48;" (assignment_expression "*(code **)(param_1 + 0x160) = local_48" (pointer_expression "*(code **)(param_1 + 0x160)" (* "*") (cast_expression "(code **)(param_1 + 0x160)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x160)" (( "(") (binary_expression "param_1 + 0x160" (identifier "param_1") (+ "+") (number_literal "0x160")) () ")")))) (= "=") (identifier "local_48")) (; ";")) (expression_statement "*(undefined1 **)(param_1 + 0x164) = local_40;" (assignment_expression "*(undefined1 **)(param_1 + 0x164) = local_40" (pointer_expression "*(undefined1 **)(param_1 + 0x164)" (* "*") (cast_expression "(undefined1 **)(param_1 + 0x164)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x164)" (( "(") (binary_expression "param_1 + 0x164" (identifier "param_1") (+ "+") (number_literal "0x164")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(code **)(param_1 + 0x168) = local_48;" (assignment_expression "*(code **)(param_1 + 0x168) = local_48" (pointer_expression "*(code **)(param_1 + 0x168)" (* "*") (cast_expression "(code **)(param_1 + 0x168)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x168)" (( "(") (binary_expression "param_1 + 0x168" (identifier "param_1") (+ "+") (number_literal "0x168")) () ")")))) (= "=") (identifier "local_48")) (; ";")) (expression_statement "*(undefined1 **)(param_1 + 0x16c) = local_40;" (assignment_expression "*(undefined1 **)(param_1 + 0x16c) = local_40" (pointer_expression "*(undefined1 **)(param_1 + 0x16c)" (* "*") (cast_expression "(undefined1 **)(param_1 + 0x16c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x16c)" (( "(") (binary_expression "param_1 + 0x16c" (identifier "param_1") (+ "+") (number_literal "0x16c")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (expression_statement "param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);" (assignment_expression "param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40)" (subscript_expression "param_1[0x1a0]" (identifier "param_1") ([ "[") (number_literal "0x1a0") (] "]")) (= "=") (call_expression "(Target)((byte)param_1[0x1a0] & 0xbf | 0x40)" (parenthesized_expression "(Target)" (( "(") (identifier "Target") () ")")) (argument_list "((byte)param_1[0x1a0] & 0xbf | 0x40)" (( "(") (binary_expression "(byte)param_1[0x1a0] & 0xbf | 0x40" (binary_expression "(byte)param_1[0x1a0] & 0xbf" (cast_expression "(byte)param_1[0x1a0]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0x1a0]" (identifier "param_1") ([ "[") (number_literal "0x1a0") (] "]"))) (& "&") (number_literal "0xbf")) (| "|") (number_literal "0x40")) () ")")))) (; ";")) (} "}"))))) (expression_statement "lVar25 = CONCAT44(local_48,local_40);" (assignment_expression "lVar25 = CONCAT44(local_48,local_40)" (identifier "lVar25") (= "=") (call_expression "CONCAT44(local_48,local_40)" (identifier "CONCAT44") (argument_list "(local_48,local_40)" (( "(") (identifier "local_48") (, ",") (identifier "local_40") () ")")))) (; ";")) (expression_statement "local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;" (assignment_expression "local_48 = (code *)PTR_set_section_list_addresses_004c3fb4" (identifier "local_48") (= "=") (cast_expression "(code *)PTR_set_section_list_addresses_004c3fb4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_set_section_list_addresses_004c3fb4"))) (; ";")) (expression_statement "local_54[0] = '\0';" (assignment_expression "local_54[0] = '\0'" (subscript_expression "local_54[0]" (identifier "local_54") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x188) = local_50;" (assignment_expression "*(uint *)(param_1 + 0x188) = local_50" (pointer_expression "*(uint *)(param_1 + 0x188)" (* "*") (cast_expression "(uint *)(param_1 + 0x188)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x188)" (( "(") (binary_expression "param_1 + 0x188" (identifier "param_1") (+ "+") (number_literal "0x188")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "*(undefined1 **)(param_1 + 0x18c) = local_4c;" (assignment_expression "*(undefined1 **)(param_1 + 0x18c) = local_4c" (pointer_expression "*(undefined1 **)(param_1 + 0x18c)" (* "*") (cast_expression "(undefined1 **)(param_1 + 0x18c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x18c)" (( "(") (binary_expression "param_1 + 0x18c" (identifier "param_1") (+ "+") (number_literal "0x18c")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "local_60 = (undefined1 *)*param_8;" (assignment_expression "local_60 = (undefined1 *)*param_8" (identifier "local_60") (= "=") (cast_expression "(undefined1 *)*param_8" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_8" (* "*") (identifier "param_8")))) (; ";")) (expression_statement "local_5c = param_8[1];" (assignment_expression "local_5c = param_8[1]" (identifier "local_5c") (= "=") (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "pTVar16 = param_1;" (assignment_expression "pTVar16 = param_1" (identifier "pTVar16") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_40 = puVar21;" (assignment_expression "local_40 = puVar21" (identifier "local_40") (= "=") (identifier "puVar21")) (; ";")) (while_statement "while( true ) {\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);\n      uVar12 = local_5c;\n      puVar21 = local_60;\n      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);\n      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }\n      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n      *(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      if (iVar22 == 0x1c) break;\n      while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }\n    }" ({ "{") (expression_statement "lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54);" (assignment_expression "lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54)" (identifier "lVar25") (= "=") (call_expression "(*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54)" (parenthesized_expression "(*local_48)" (( "(") (pointer_expression "*local_48" (* "*") (identifier "local_48")) () ")")) (argument_list "(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,\n                           local_54)" (( "(") (identifier "param_1") (, ",") (identifier "iVar8") (, ",") (identifier "param_5") (, ",") (identifier "pTVar16") (, ",") (identifier "lVar25") (, ",") (identifier "param_8") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (identifier "in_stack_00000024") (, ",") (identifier "local_54") () ")")))) (; ";")) (expression_statement "uVar12 = local_5c;" (assignment_expression "uVar12 = local_5c" (identifier "uVar12") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar21 = local_60;" (assignment_expression "puVar21 = local_60" (identifier "puVar21") (= "=") (identifier "local_60")) (; ";")) (expression_statement "uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20)" (identifier "uVar11") (= "=") (call_expression "(undefined4)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)lVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar25")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }" (if "if") (parenthesized_expression "(((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c))" (( "(") (binary_expression "((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)" (parenthesized_expression "((undefined1 *)*param_8 != local_60)" (( "(") (binary_expression "(undefined1 *)*param_8 != local_60" (cast_expression "(undefined1 *)*param_8" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_8" (* "*") (identifier "param_8"))) (!= "!=") (identifier "local_60")) () ")")) (|| "||") (parenthesized_expression "(param_8[1] != local_5c)" (( "(") (binary_expression "param_8[1] != local_5c" (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]")) (!= "!=") (identifier "local_5c")) () ")"))) () ")")) (compound_statement "{\n        if (iVar22 == 0x11) goto LAB_0021b84c;\n        if (iVar22 < 0x1a) goto LAB_0021b834;\n      }" ({ "{") (if_statement "if (iVar22 == 0x11) goto LAB_0021b84c;" (if "if") (parenthesized_expression "(iVar22 == 0x11)" (( "(") (binary_expression "iVar22 == 0x11" (identifier "iVar22") (== "==") (number_literal "0x11")) () ")")) (goto_statement "goto LAB_0021b84c;" (goto "goto") (statement_identifier "LAB_0021b84c") (; ";"))) (if_statement "if (iVar22 < 0x1a) goto LAB_0021b834;" (if "if") (parenthesized_expression "(iVar22 < 0x1a)" (( "(") (binary_expression "iVar22 < 0x1a" (identifier "iVar22") (< "<") (number_literal "0x1a")) () ")")) (goto_statement "goto LAB_0021b834;" (goto "goto") (statement_identifier "LAB_0021b834") (; ";"))) (} "}"))) (expression_statement "*(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;" (assignment_expression "*(uint *)(param_1 + 0x194) = local_5c - (int)local_4c" (pointer_expression "*(uint *)(param_1 + 0x194)" (* "*") (cast_expression "(uint *)(param_1 + 0x194)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x194)" (( "(") (binary_expression "param_1 + 0x194" (identifier "param_1") (+ "+") (number_literal "0x194")) () ")")))) (= "=") (binary_expression "local_5c - (int)local_4c" (identifier "local_5c") (- "-") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")))) (; ";")) (expression_statement "*(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);" (assignment_expression "*(undefined1 **)(param_1 + 400) =\n           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" (pointer_expression "*(undefined1 **)(param_1 + 400)" (* "*") (cast_expression "(undefined1 **)(param_1 + 400)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 400)" (( "(") (binary_expression "param_1 + 400" (identifier "param_1") (+ "+") (number_literal "400")) () ")")))) (= "=") (binary_expression "local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" (identifier "local_60") (+ "+") (parenthesized_expression "(-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" (( "(") (binary_expression "-(uint)(local_5c < local_5c - (int)local_4c) - local_50" (unary_expression "-(uint)(local_5c < local_5c - (int)local_4c)" (- "-") (call_expression "(uint)(local_5c < local_5c - (int)local_4c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_5c < local_5c - (int)local_4c)" (( "(") (binary_expression "local_5c < local_5c - (int)local_4c" (identifier "local_5c") (< "<") (binary_expression "local_5c - (int)local_4c" (identifier "local_5c") (- "-") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")))) () ")")))) (- "-") (identifier "local_50")) () ")")))) (; ";")) (if_statement "if (iVar22 == 0x1c) break;" (if "if") (parenthesized_expression "(iVar22 == 0x1c)" (( "(") (binary_expression "iVar22 == 0x1c" (identifier "iVar22") (== "==") (number_literal "0x1c")) () ")")) (break_statement "break;" (break "break") (; ";"))) (while_statement "while( true ) {\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        iVar22 = iVar22 + 1;\n        pTVar16 = param_1 + iVar22 * 0xc;\n        if (iVar22 != 0x14) break;\n        uVar24 = param_8[1];\n        uVar12 = uVar24 + local_44;\n        iVar18 = *(int *)(param_1 + 0xf0);\n        iVar17 = *(int *)(param_1 + 0xf4);\n        param_8[1] = uVar12;\n        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);\n        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);\n        if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }\n        local_5c = local_5c + local_44;\n        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);\n        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }\nLAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;\n        *(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);\n      }" ({ "{") (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar22 + 1" (identifier "iVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pTVar16 = param_1 + iVar22 * 0xc;" (assignment_expression "pTVar16 = param_1 + iVar22 * 0xc" (identifier "pTVar16") (= "=") (binary_expression "param_1 + iVar22 * 0xc" (identifier "param_1") (+ "+") (binary_expression "iVar22 * 0xc" (identifier "iVar22") (* "*") (number_literal "0xc")))) (; ";")) (if_statement "if (iVar22 != 0x14) break;" (if "if") (parenthesized_expression "(iVar22 != 0x14)" (( "(") (binary_expression "iVar22 != 0x14" (identifier "iVar22") (!= "!=") (number_literal "0x14")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar24 = param_8[1];" (assignment_expression "uVar24 = param_8[1]" (identifier "uVar24") (= "=") (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar12 = uVar24 + local_44;" (assignment_expression "uVar12 = uVar24 + local_44" (identifier "uVar12") (= "=") (binary_expression "uVar24 + local_44" (identifier "uVar24") (+ "+") (identifier "local_44"))) (; ";")) (expression_statement "iVar18 = *(int *)(param_1 + 0xf0);" (assignment_expression "iVar18 = *(int *)(param_1 + 0xf0)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 0xf0)" (* "*") (cast_expression "(int *)(param_1 + 0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf0)" (( "(") (binary_expression "param_1 + 0xf0" (identifier "param_1") (+ "+") (number_literal "0xf0")) () ")"))))) (; ";")) (expression_statement "iVar17 = *(int *)(param_1 + 0xf4);" (assignment_expression "iVar17 = *(int *)(param_1 + 0xf4)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(param_1 + 0xf4)" (* "*") (cast_expression "(int *)(param_1 + 0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf4)" (( "(") (binary_expression "param_1 + 0xf4" (identifier "param_1") (+ "+") (number_literal "0xf4")) () ")"))))) (; ";")) (expression_statement "param_8[1] = uVar12;" (assignment_expression "param_8[1] = uVar12" (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);" (assignment_expression "local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c)" (identifier "local_60") (= "=") (binary_expression "local_60 + (int)local_40 + (local_5c + local_44 < local_5c)" (binary_expression "local_60 + (int)local_40" (identifier "local_60") (+ "+") (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40"))) (+ "+") (parenthesized_expression "(local_5c + local_44 < local_5c)" (( "(") (binary_expression "local_5c + local_44 < local_5c" (binary_expression "local_5c + local_44" (identifier "local_5c") (+ "+") (identifier "local_44")) (< "<") (identifier "local_5c")) () ")")))) (; ";")) (expression_statement "*param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);" (assignment_expression "*param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8)" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (call_expression "(uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_40 + (uint)(uVar12 < uVar24) + *param_8)" (( "(") (binary_expression "local_40 + (uint)(uVar12 < uVar24) + *param_8" (binary_expression "local_40 + (uint)(uVar12 < uVar24)" (identifier "local_40") (+ "+") (call_expression "(uint)(uVar12 < uVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar12 < uVar24)" (( "(") (binary_expression "uVar12 < uVar24" (identifier "uVar12") (< "<") (identifier "uVar24")) () ")")))) (+ "+") (pointer_expression "*param_8" (* "*") (identifier "param_8"))) () ")")))) (; ";")) (if_statement "if (iVar18 == iVar17) {\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }" (if "if") (parenthesized_expression "(iVar18 == iVar17)" (( "(") (binary_expression "iVar18 == iVar17" (identifier "iVar18") (== "==") (identifier "iVar17")) () ")")) (compound_statement "{\n          *(int *)param_6 = *(int *)param_6 + local_44;\n        }" ({ "{") (expression_statement "*(int *)param_6 = *(int *)param_6 + local_44;" (assignment_expression "*(int *)param_6 = *(int *)param_6 + local_44" (pointer_expression "*(int *)param_6" (* "*") (cast_expression "(int *)param_6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_6"))) (= "=") (binary_expression "*(int *)param_6 + local_44" (pointer_expression "*(int *)param_6" (* "*") (cast_expression "(int *)param_6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_6"))) (+ "+") (identifier "local_44"))) (; ";")) (} "}"))) (expression_statement "local_5c = local_5c + local_44;" (assignment_expression "local_5c = local_5c + local_44" (identifier "local_5c") (= "=") (binary_expression "local_5c + local_44" (identifier "local_5c") (+ "+") (identifier "local_44"))) (; ";")) (expression_statement "lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54);" (assignment_expression "lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54)" (identifier "lVar25") (= "=") (call_expression "(*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54)" (parenthesized_expression "(*local_48)" (( "(") (pointer_expression "*local_48" (* "*") (identifier "local_48")) () ")")) (argument_list "(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),\n                             param_8,&local_60,in_stack_00000024,local_54)" (( "(") (identifier "param_1") (, ",") (identifier "iVar8") (, ",") (identifier "param_5") (, ",") (identifier "pTVar16") (, ",") (binary_expression "lVar25 + CONCAT44(local_40,local_44)" (identifier "lVar25") (+ "+") (call_expression "CONCAT44(local_40,local_44)" (identifier "CONCAT44") (argument_list "(local_40,local_44)" (( "(") (identifier "local_40") (, ",") (identifier "local_44") () ")")))) (, ",") (identifier "param_8") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (identifier "in_stack_00000024") (, ",") (identifier "local_54") () ")")))) (; ";")) (if_statement "if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }" (if "if") (parenthesized_expression "((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1]))" (( "(") (binary_expression "(local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])" (parenthesized_expression "(local_60 != (undefined1 *)*param_8)" (( "(") (binary_expression "local_60 != (undefined1 *)*param_8" (identifier "local_60") (!= "!=") (cast_expression "(undefined1 *)*param_8" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_8" (* "*") (identifier "param_8")))) () ")")) (|| "||") (parenthesized_expression "(local_5c != param_8[1])" (( "(") (binary_expression "local_5c != param_8[1]" (identifier "local_5c") (!= "!=") (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]"))) () ")"))) () ")")) (compound_statement "{\nLAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }\n        }" ({ "{") (labeled_statement "LAB_0021b834:\n          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }" (statement_identifier "LAB_0021b834") (: ":") (if_statement "if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0'" (pointer_expression "*(char *)(*(int *)(iVar8 + 4) + 0xac)" (* "*") (cast_expression "(char *)(*(int *)(iVar8 + 4) + 0xac)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 4) + 0xac)" (( "(") (binary_expression "*(int *)(iVar8 + 4) + 0xac" (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            uVar11 = 0x115d;\n            goto LAB_0021c29c;\n          }" ({ "{") (expression_statement "uVar11 = 0x115d;" (assignment_expression "uVar11 = 0x115d" (identifier "uVar11") (= "=") (number_literal "0x115d")) (; ";")) (goto_statement "goto LAB_0021c29c;" (goto "goto") (statement_identifier "LAB_0021c29c") (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0021b84c:\n        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;" (statement_identifier "LAB_0021b84c") (: ":") (expression_statement "*(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;" (assignment_expression "*(uint *)(param_1 + 0x194) = local_5c - (int)local_4c" (pointer_expression "*(uint *)(param_1 + 0x194)" (* "*") (cast_expression "(uint *)(param_1 + 0x194)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x194)" (( "(") (binary_expression "param_1 + 0x194" (identifier "param_1") (+ "+") (number_literal "0x194")) () ")")))) (= "=") (binary_expression "local_5c - (int)local_4c" (identifier "local_5c") (- "-") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")))) (; ";"))) (expression_statement "*(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);" (assignment_expression "*(undefined1 **)(param_1 + 400) =\n             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" (pointer_expression "*(undefined1 **)(param_1 + 400)" (* "*") (cast_expression "(undefined1 **)(param_1 + 400)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 400)" (( "(") (binary_expression "param_1 + 400" (identifier "param_1") (+ "+") (number_literal "400")) () ")")))) (= "=") (binary_expression "local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" (identifier "local_60") (+ "+") (parenthesized_expression "(-(uint)(local_5c < local_5c - (int)local_4c) - local_50)" (( "(") (binary_expression "-(uint)(local_5c < local_5c - (int)local_4c) - local_50" (unary_expression "-(uint)(local_5c < local_5c - (int)local_4c)" (- "-") (call_expression "(uint)(local_5c < local_5c - (int)local_4c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_5c < local_5c - (int)local_4c)" (( "(") (binary_expression "local_5c < local_5c - (int)local_4c" (identifier "local_5c") (< "<") (binary_expression "local_5c - (int)local_4c" (identifier "local_5c") (- "-") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")))) () ")")))) (- "-") (identifier "local_50")) () ")")))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_54[0] == '\0') {\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }\n    else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }" (if "if") (parenthesized_expression "(local_54[0] == '\0')" (( "(") (binary_expression "local_54[0] == '\0'" (subscript_expression "local_54[0]" (identifier "local_54") ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n    }" ({ "{") (expression_statement "uVar24 = *param_8;" (assignment_expression "uVar24 = *param_8" (identifier "uVar24") (= "=") (pointer_expression "*param_8" (* "*") (identifier "param_8"))) (; ";")) (expression_statement "uVar13 = param_8[1];" (assignment_expression "uVar13 = param_8[1]" (identifier "uVar13") (= "=") (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }" (else "else") (compound_statement "{\n      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));\n      uVar24 = *param_8;\n      uVar13 = param_8[1];\n      if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }\n    }" ({ "{") (expression_statement "lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));" (assignment_expression "lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170))" (identifier "lVar26") (= "=") (call_expression "maximum_alignment(*(Output_segment **)(iVar8 + 0x170))" (identifier "maximum_alignment") (argument_list "(*(Output_segment **)(iVar8 + 0x170))" (( "(") (pointer_expression "*(Output_segment **)(iVar8 + 0x170)" (* "*") (cast_expression "(Output_segment **)(iVar8 + 0x170)" (( "(") (type_descriptor "Output_segment **" (type_identifier "Output_segment") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x170)" (( "(") (binary_expression "iVar8 + 0x170" (identifier "iVar8") (+ "+") (number_literal "0x170")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar24 = *param_8;" (assignment_expression "uVar24 = *param_8" (identifier "uVar24") (= "=") (pointer_expression "*param_8" (* "*") (identifier "param_8"))) (; ";")) (expression_statement "uVar13 = param_8[1];" (assignment_expression "uVar13 = param_8[1]" (identifier "uVar13") (= "=") (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (lVar26 != 0) {\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }" (if "if") (parenthesized_expression "(lVar26 != 0)" (( "(") (binary_expression "lVar26 != 0" (identifier "lVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);\n        uVar13 = (uint)lVar3 & -(int)lVar26;\n        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n      }" ({ "{") (expression_statement "lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);" (assignment_expression "lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1)" (identifier "lVar3") (= "=") (binary_expression "lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1)" (identifier "lVar26") (+ "+") (call_expression "CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1)" (identifier "CONCAT44") (argument_list "((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1)" (( "(") (binary_expression "(uint)(uVar13 - 1 < uVar13) + (uVar24 - 1)" (call_expression "(uint)(uVar13 - 1 < uVar13)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar13 - 1 < uVar13)" (( "(") (binary_expression "uVar13 - 1 < uVar13" (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1")) (< "<") (identifier "uVar13")) () ")"))) (+ "+") (parenthesized_expression "(uVar24 - 1)" (( "(") (binary_expression "uVar24 - 1" (identifier "uVar24") (- "-") (number_literal "1")) () ")"))) (, ",") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar13 = (uint)lVar3 & -(int)lVar26;" (assignment_expression "uVar13 = (uint)lVar3 & -(int)lVar26" (identifier "uVar13") (= "=") (binary_expression "(uint)lVar3 & -(int)lVar26" (cast_expression "(uint)lVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar3")) (& "&") (unary_expression "-(int)lVar26" (- "-") (cast_expression "(int)lVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar26"))))) (; ";")) (expression_statement "uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);" (assignment_expression "uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (identifier "uVar24") (= "=") (binary_expression "(uint)((ulonglong)lVar3 >> 0x20) &\n                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (call_expression "(uint)((ulonglong)lVar3 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar3 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (binary_expression "-(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (unary_expression "-(uint)(-(int)lVar26 != 0)" (- "-") (call_expression "(uint)(-(int)lVar26 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(-(int)lVar26 != 0)" (( "(") (binary_expression "-(int)lVar26 != 0" (unary_expression "-(int)lVar26" (- "-") (cast_expression "(int)lVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar26"))) (!= "!=") (number_literal "0")) () ")")))) (- "-") (cast_expression "(int)((ulonglong)lVar26 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar26")) (>> ">>") (number_literal "0x20")) () ")")))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar22 = *(int *)(param_2 + 4);" (assignment_expression "iVar22 = *(int *)(param_2 + 4)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(param_2 + 4)" (* "*") (cast_expression "(int *)(param_2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;" (assignment_expression "*(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c" (pointer_expression "*(uint *)(param_1 + 0x174)" (* "*") (cast_expression "(uint *)(param_1 + 0x174)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x174)" (( "(") (binary_expression "param_1 + 0x174" (identifier "param_1") (+ "+") (number_literal "0x174")) () ")")))) (= "=") (binary_expression "uVar13 - (int)local_4c" (identifier "uVar13") (- "-") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")))) (; ";")) (expression_statement "cVar1 = *(char *)(iVar22 + 0x30);" (assignment_expression "cVar1 = *(char *)(iVar22 + 0x30)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(iVar22 + 0x30)" (* "*") (cast_expression "(char *)(iVar22 + 0x30)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x30)" (( "(") (binary_expression "iVar22 + 0x30" (identifier "iVar22") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);" (assignment_expression "*(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c)" (pointer_expression "*(uint *)(param_1 + 0x170)" (* "*") (cast_expression "(uint *)(param_1 + 0x170)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x170)" (( "(") (binary_expression "param_1 + 0x170" (identifier "param_1") (+ "+") (number_literal "0x170")) () ")")))) (= "=") (binary_expression "(uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c)" (parenthesized_expression "(uVar24 - local_50)" (( "(") (binary_expression "uVar24 - local_50" (identifier "uVar24") (- "-") (identifier "local_50")) () ")")) (- "-") (call_expression "(uint)(uVar13 < uVar13 - (int)local_4c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar13 < uVar13 - (int)local_4c)" (( "(") (binary_expression "uVar13 < uVar13 - (int)local_4c" (identifier "uVar13") (< "<") (binary_expression "uVar13 - (int)local_4c" (identifier "uVar13") (- "-") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")))) () ")"))))) (; ";")) (expression_statement "*param_8 = (uint)puVar21;" (assignment_expression "*param_8 = (uint)puVar21" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (cast_expression "(uint)puVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar21"))) (; ";")) (expression_statement "param_8[1] = uVar12;" (assignment_expression "param_8[1] = uVar12" (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (if_statement "if (cVar1 == '\0') {\n      return uVar11;\n    }" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      return uVar11;\n    }" ({ "{") (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (if_statement "if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {\n      return uVar11;\n    }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x19c) & 1) == 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0x19c) & 1) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0x19c) & 1)" (( "(") (binary_expression "*(uint *)(param_1 + 0x19c) & 1" (pointer_expression "*(uint *)(param_1 + 0x19c)" (* "*") (cast_expression "(uint *)(param_1 + 0x19c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x19c)" (( "(") (binary_expression "param_1 + 0x19c" (identifier "param_1") (+ "+") (number_literal "0x19c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return uVar11;\n    }" ({ "{") (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (expression_statement "iVar17 = *(int *)(*local_3c + 8);" (assignment_expression "iVar17 = *(int *)(*local_3c + 8)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(*local_3c + 8)" (* "*") (cast_expression "(int *)(*local_3c + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_3c + 8)" (( "(") (binary_expression "*local_3c + 8" (pointer_expression "*local_3c" (* "*") (identifier "local_3c")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar17 != 0) {\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }" (if "if") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_48 = *(code **)(iVar17 + 0x5228);\n      iVar17 = *(int *)(iVar17 + 0x522c);\n      if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }\n      pcVar6 = local_48;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);\n      if (lVar26 != 0) {\n        return uVar11;\n      }\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);\n      if (lVar26 == 0) {\n        return uVar11;\n      }\n      local_78 = local_70;\n      local_50 = iVar17 - (int)lVar26;\n      local_74 = 0;\n      local_70[0] = 0;\n      local_4c = local_78;\n      if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }\n      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);\n      puVar7[9] = 0;\n      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;\n      puVar7[5] = local_74;\n      puVar7[2] = 0;\n      puVar7[10] = 0;\n      puVar5 = PTR_vtable_004c2344;\n      puVar4 = PTR__M_construct<char*>_004c2098;\n      puVar7[4] = 0;\n      puVar7[7] = 0xffffffff;\n      puVar7[6] = 0xffffffff;\n      puVar7[3] = 0;\n      puVar7[0xb] = 0;\n      *puVar7 = puVar5 + 8;\n                    \n      puVar7[0xc] = puVar7 + 0xe;\n      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);\n      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);\n      if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }\n      bVar2 = *(byte *)(puVar7 + 8);\n      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);\n      puVar7[3] = uVar24;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;\n      if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }\n      puVar7[6] = puVar21;\n      puVar7[7] = uVar12;\n      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;\n      puVar14 = *(undefined4 **)(iVar8 + 0x164);\n      local_58 = puVar7;\n      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }\n      uVar24 = uVar12 + local_50;\n      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);\n      if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);\n      lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);\n      if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }\n      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }\n      goto LAB_0021c388;\n    }" ({ "{") (expression_statement "local_48 = *(code **)(iVar17 + 0x5228);" (assignment_expression "local_48 = *(code **)(iVar17 + 0x5228)" (identifier "local_48") (= "=") (pointer_expression "*(code **)(iVar17 + 0x5228)" (* "*") (cast_expression "(code **)(iVar17 + 0x5228)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 0x5228)" (( "(") (binary_expression "iVar17 + 0x5228" (identifier "iVar17") (+ "+") (number_literal "0x5228")) () ")"))))) (; ";")) (expression_statement "iVar17 = *(int *)(iVar17 + 0x522c);" (assignment_expression "iVar17 = *(int *)(iVar17 + 0x522c)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar17 + 0x522c)" (* "*") (cast_expression "(int *)(iVar17 + 0x522c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x522c)" (( "(") (binary_expression "iVar17 + 0x522c" (identifier "iVar17") (+ "+") (number_literal "0x522c")) () ")"))))) (; ";")) (if_statement "if (local_48 == (code *)0x0 && iVar17 == 0) {\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }" (if "if") (parenthesized_expression "(local_48 == (code *)0x0 && iVar17 == 0)" (( "(") (binary_expression "local_48 == (code *)0x0 && iVar17 == 0" (binary_expression "local_48 == (code *)0x0" (identifier "local_48") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        local_48 = *(code **)(iVar22 + 0x20);\n        iVar17 = *(int *)(iVar22 + 0x24);\n      }" ({ "{") (expression_statement "local_48 = *(code **)(iVar22 + 0x20);" (assignment_expression "local_48 = *(code **)(iVar22 + 0x20)" (identifier "local_48") (= "=") (pointer_expression "*(code **)(iVar22 + 0x20)" (* "*") (cast_expression "(code **)(iVar22 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar22 + 0x20)" (( "(") (binary_expression "iVar22 + 0x20" (identifier "iVar22") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar17 = *(int *)(iVar22 + 0x24);" (assignment_expression "iVar17 = *(int *)(iVar22 + 0x24)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar22 + 0x24)" (* "*") (cast_expression "(int *)(iVar22 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x24)" (( "(") (binary_expression "iVar22 + 0x24" (identifier "iVar22") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar6 = local_48;" (assignment_expression "pcVar6 = local_48" (identifier "pcVar6") (= "=") (identifier "local_48")) (; ";")) (expression_statement "lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);" (assignment_expression "lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17)" (identifier "lVar26") (= "=") (call_expression "(*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" (( "(") (pointer_expression "*(code *)PTR_FUN_004c2428" (* "*") (cast_expression "(code *)PTR_FUN_004c2428" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_004c2428"))) () ")")) (argument_list "(local_50,local_4c,local_48,iVar17)" (( "(") (identifier "local_50") (, ",") (identifier "local_4c") (, ",") (identifier "local_48") (, ",") (identifier "iVar17") () ")")))) (; ";")) (if_statement "if (lVar26 != 0) {\n        return uVar11;\n      }" (if "if") (parenthesized_expression "(lVar26 != 0)" (( "(") (binary_expression "lVar26 != 0" (identifier "lVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return uVar11;\n      }" ({ "{") (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (expression_statement "lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);" (assignment_expression "lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17)" (identifier "lVar26") (= "=") (call_expression "(*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" (( "(") (pointer_expression "*(code *)PTR_FUN_004c2428" (* "*") (cast_expression "(code *)PTR_FUN_004c2428" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_004c2428"))) () ")")) (argument_list "(puVar21,uVar12,pcVar6,iVar17)" (( "(") (identifier "puVar21") (, ",") (identifier "uVar12") (, ",") (identifier "pcVar6") (, ",") (identifier "iVar17") () ")")))) (; ";")) (if_statement "if (lVar26 == 0) {\n        return uVar11;\n      }" (if "if") (parenthesized_expression "(lVar26 == 0)" (( "(") (binary_expression "lVar26 == 0" (identifier "lVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return uVar11;\n      }" ({ "{") (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (expression_statement "local_78 = local_70;" (assignment_expression "local_78 = local_70" (identifier "local_78") (= "=") (identifier "local_70")) (; ";")) (expression_statement "local_50 = iVar17 - (int)lVar26;" (assignment_expression "local_50 = iVar17 - (int)lVar26" (identifier "local_50") (= "=") (binary_expression "iVar17 - (int)lVar26" (identifier "iVar17") (- "-") (cast_expression "(int)lVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar26")))) (; ";")) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" (identifier "local_74") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70[0] = 0;" (assignment_expression "local_70[0] = 0" (subscript_expression "local_70[0]" (identifier "local_70") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = local_78;" (assignment_expression "local_4c = local_78" (identifier "local_4c") (= "=") (identifier "local_78")) (; ";")) (if_statement "if (*(char *)(iVar22 + 0xe) == '\0') {\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }\n      else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar22 + 0xe) == '\0')" (( "(") (binary_expression "*(char *)(iVar22 + 0xe) == '\0'" (pointer_expression "*(char *)(iVar22 + 0xe)" (* "*") (cast_expression "(char *)(iVar22 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xe)" (( "(") (binary_expression "iVar22 + 0xe" (identifier "iVar22") (+ "+") (number_literal "0xe")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);\n      }" ({ "{") (expression_statement "(*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);" (call_expression "(*(code *)PTR_resize_004c22c8)(&local_78,local_50,0)" (parenthesized_expression "(*(code *)PTR_resize_004c22c8)" (( "(") (pointer_expression "*(code *)PTR_resize_004c22c8" (* "*") (cast_expression "(code *)PTR_resize_004c22c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_resize_004c22c8"))) () ")")) (argument_list "(&local_78,local_50,0)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (identifier "local_50") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }" (else "else") (compound_statement "{\n                    \n        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);\n        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);\n        if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }\n      }" ({ "{") (expression_statement "(**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);" (call_expression "(**(code **)(*(int *)param_2 + 0x18))(local_90,param_2)" (parenthesized_expression "(**(code **)(*(int *)param_2 + 0x18))" (( "(") (pointer_expression "**(code **)(*(int *)param_2 + 0x18)" (* "*") (pointer_expression "*(code **)(*(int *)param_2 + 0x18)" (* "*") (cast_expression "(code **)(*(int *)param_2 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)param_2 + 0x18)" (( "(") (binary_expression "*(int *)param_2 + 0x18" (pointer_expression "*(int *)param_2" (* "*") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(local_90,param_2)" (( "(") (identifier "local_90") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_operator__004c3fbc)(&local_78,local_90);" (call_expression "(*(code *)PTR_operator__004c3fbc)(&local_78,local_90)" (parenthesized_expression "(*(code *)PTR_operator__004c3fbc)" (( "(") (pointer_expression "*(code *)PTR_operator__004c3fbc" (* "*") (cast_expression "(code *)PTR_operator__004c3fbc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator__004c3fbc"))) () ")")) (argument_list "(&local_78,local_90)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (identifier "local_90") () ")"))) (; ";")) (if_statement "if (local_90[0] != auStack_88) {\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }" (if "if") (parenthesized_expression "(local_90[0] != auStack_88)" (( "(") (binary_expression "local_90[0] != auStack_88" (subscript_expression "local_90[0]" (identifier "local_90") ([ "[") (number_literal "0") (] "]")) (!= "!=") (identifier "auStack_88")) () ")")) (compound_statement "{\n          (*(code *)PTR_operator_delete_004c12fc)();\n        }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004c12fc" (* "*") (cast_expression "(code *)PTR_operator_delete_004c12fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004c12fc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);" (assignment_expression "puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x48)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x48)" (( "(") (number_literal "0x48") () ")"))))) (; ";")) (expression_statement "puVar7[9] = 0;" (assignment_expression "puVar7[9] = 0" (subscript_expression "puVar7[9]" (identifier "puVar7") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;" (assignment_expression "*(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50" (pointer_expression "*(byte *)(puVar7 + 8)" (* "*") (cast_expression "(byte *)(puVar7 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar7 + 8) & 7 | 0x50" (binary_expression "*(byte *)(puVar7 + 8) & 7" (pointer_expression "*(byte *)(puVar7 + 8)" (* "*") (cast_expression "(byte *)(puVar7 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "7")) (| "|") (number_literal "0x50"))) (; ";")) (expression_statement "puVar7[5] = local_74;" (assignment_expression "puVar7[5] = local_74" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "puVar7[2] = 0;" (assignment_expression "puVar7[2] = 0" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[10] = 0;" (assignment_expression "puVar7[10] = 0" (subscript_expression "puVar7[10]" (identifier "puVar7") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = PTR_vtable_004c2344;" (assignment_expression "puVar5 = PTR_vtable_004c2344" (identifier "puVar5") (= "=") (identifier "PTR_vtable_004c2344")) (; ";")) (expression_statement "puVar4 = PTR__M_construct<char*>_004c2098;" (assignment_expression "puVar4 = PTR__M_construct<char*>_004c2098" (identifier "puVar4") (= "=") (binary_expression "PTR__M_construct<char*>_004c2098" (binary_expression "PTR__M_construct<char" (identifier "PTR__M_construct") (< "<") (identifier "char")) (ERROR "*" (* "*")) (> ">") (identifier "_004c2098"))) (; ";")) (expression_statement "puVar7[4] = 0;" (assignment_expression "puVar7[4] = 0" (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[7] = 0xffffffff;" (assignment_expression "puVar7[7] = 0xffffffff" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar7[6] = 0xffffffff;" (assignment_expression "puVar7[6] = 0xffffffff" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[0xb] = 0;" (assignment_expression "puVar7[0xb] = 0" (subscript_expression "puVar7[0xb]" (identifier "puVar7") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar7 = puVar5 + 8;" (assignment_expression "*puVar7 = puVar5 + 8" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (binary_expression "puVar5 + 8" (identifier "puVar5") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "puVar7[0xc] = puVar7 + 0xe;" (assignment_expression "puVar7[0xc] = puVar7 + 0xe" (subscript_expression "puVar7[0xc]" (identifier "puVar7") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "puVar7 + 0xe" (identifier "puVar7") (+ "+") (number_literal "0xe"))) (; ";")) (expression_statement "(*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);" (call_expression "(*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0)" (parenthesized_expression "(*(code *)puVar4)" (( "(") (pointer_expression "*(code *)puVar4" (* "*") (cast_expression "(code *)puVar4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")")) (argument_list "(puVar7 + 0xc,local_78,local_78 + local_74,0)" (( "(") (binary_expression "puVar7 + 0xc" (identifier "puVar7") (+ "+") (number_literal "0xc")) (, ",") (identifier "local_78") (, ",") (binary_expression "local_78 + local_74" (identifier "local_78") (+ "+") (identifier "local_74")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);" (assignment_expression "uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174)" (identifier "uVar24") (= "=") (binary_expression "*(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174)" (pointer_expression "*(uint *)(param_1 + 0x164)" (* "*") (cast_expression "(uint *)(param_1 + 0x164)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x164)" (( "(") (binary_expression "param_1 + 0x164" (identifier "param_1") (+ "+") (number_literal "0x164")) () ")")))) (+ "+") (pointer_expression "*(int *)(param_1 + 0x174)" (* "*") (cast_expression "(int *)(param_1 + 0x174)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x174)" (( "(") (binary_expression "param_1 + 0x174" (identifier "param_1") (+ "+") (number_literal "0x174")) () ")")))))) (; ";")) (if_statement "if ((int)puVar7[8] < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }" (if "if") (parenthesized_expression "((int)puVar7[8] < 0)" (( "(") (binary_expression "(int)puVar7[8] < 0" (cast_expression "(int)puVar7[8]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);\n        return uVar11;\n      }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d50)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0x142") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d50" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2d50")) () ")")))) (; ";")) (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (expression_statement "bVar2 = *(byte *)(puVar7 + 8);" (assignment_expression "bVar2 = *(byte *)(puVar7 + 8)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(puVar7 + 8)" (* "*") (cast_expression "(byte *)(puVar7 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);" (assignment_expression "puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170)" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "(uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170)" (binary_expression "(uint)(uVar24 < *(uint *)(param_1 + 0x164)) +\n                  *(int *)(param_1 + 0x160)" (call_expression "(uint)(uVar24 < *(uint *)(param_1 + 0x164))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar24 < *(uint *)(param_1 + 0x164))" (( "(") (binary_expression "uVar24 < *(uint *)(param_1 + 0x164)" (identifier "uVar24") (< "<") (pointer_expression "*(uint *)(param_1 + 0x164)" (* "*") (cast_expression "(uint *)(param_1 + 0x164)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x164)" (( "(") (binary_expression "param_1 + 0x164" (identifier "param_1") (+ "+") (number_literal "0x164")) () ")"))))) () ")"))) (+ "+") (pointer_expression "*(int *)(param_1 + 0x160)" (* "*") (cast_expression "(int *)(param_1 + 0x160)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x160)" (( "(") (binary_expression "param_1 + 0x160" (identifier "param_1") (+ "+") (number_literal "0x160")) () ")"))))) (+ "+") (pointer_expression "*(int *)(param_1 + 0x170)" (* "*") (cast_expression "(int *)(param_1 + 0x170)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x170)" (( "(") (binary_expression "param_1 + 0x170" (identifier "param_1") (+ "+") (number_literal "0x170")) () ")")))))) (; ";")) (expression_statement "puVar7[3] = uVar24;" (assignment_expression "puVar7[3] = uVar24" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar24")) (; ";")) (expression_statement "*(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;" (assignment_expression "*(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80" (pointer_expression "*(byte *)(puVar7 + 8)" (* "*") (cast_expression "(byte *)(puVar7 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "bVar2 & 0x7f | 0x80" (binary_expression "bVar2 & 0x7f" (identifier "bVar2") (& "&") (number_literal "0x7f")) (| "|") (number_literal "0x80"))) (; ";")) (if_statement "if ((int)(puVar7[8] << 2) < 0) {\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }" (if "if") (parenthesized_expression "((int)(puVar7[8] << 2) < 0)" (( "(") (binary_expression "(int)(puVar7[8] << 2) < 0" (cast_expression "(int)(puVar7[8] << 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar7[8] << 2)" (( "(") (binary_expression "puVar7[8] << 2" (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]")) (<< "<<") (number_literal "2")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);\n        return uVar11;\n      }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                            PTR_s_in_a_linker_script_004c191c + -0x2d60)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0x14b") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d60" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2d60")) () ")")))) (; ";")) (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (expression_statement "puVar7[6] = puVar21;" (assignment_expression "puVar7[6] = puVar21" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "puVar21")) (; ";")) (expression_statement "puVar7[7] = uVar12;" (assignment_expression "puVar7[7] = uVar12" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;" (assignment_expression "*(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0" (pointer_expression "*(byte *)(puVar7 + 8)" (* "*") (cast_expression "(byte *)(puVar7 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "bVar2 & 0x5f | 0xa0" (binary_expression "bVar2 & 0x5f" (identifier "bVar2") (& "&") (number_literal "0x5f")) (| "|") (number_literal "0xa0"))) (; ";")) (expression_statement "puVar14 = *(undefined4 **)(iVar8 + 0x164);" (assignment_expression "puVar14 = *(undefined4 **)(iVar8 + 0x164)" (identifier "puVar14") (= "=") (pointer_expression "*(undefined4 **)(iVar8 + 0x164)" (* "*") (cast_expression "(undefined4 **)(iVar8 + 0x164)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x164)" (( "(") (binary_expression "iVar8 + 0x164" (identifier "iVar8") (+ "+") (number_literal "0x164")) () ")"))))) (; ";")) (expression_statement "local_58 = puVar7;" (assignment_expression "local_58 = puVar7" (identifier "local_58") (= "=") (identifier "puVar7")) (; ";")) (if_statement "if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }\n      else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }" (if "if") (parenthesized_expression "(puVar14 == *(undefined4 **)(iVar8 + 0x168))" (( "(") (binary_expression "puVar14 == *(undefined4 **)(iVar8 + 0x168)" (identifier "puVar14") (== "==") (pointer_expression "*(undefined4 **)(iVar8 + 0x168)" (* "*") (cast_expression "(undefined4 **)(iVar8 + 0x168)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x168)" (( "(") (binary_expression "iVar8 + 0x168" (identifier "iVar8") (+ "+") (number_literal "0x168")) () ")"))))) () ")")) (compound_statement "{\n                    \n        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);\n      }" ({ "{") (ERROR "std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::\n        _M_realloc_insert<gold::" (comma_expression "std::vector<gold::Output_data*,std" (identifier "std") (ERROR "::vector<gold::Output_data*" (: ":") (: ":") (binary_expression "vector<gold" (identifier "vector") (< "<") (identifier "gold")) (: ":") (: ":") (identifier "Output_data") (* "*")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Output_data*>>::\n        _M_realloc_insert<gold" (binary_expression "Output_data*>>::\n        _M_realloc_insert" (identifier "Output_data") (* "*") (ERROR ">>::" (>> ">>") (: ":") (: ":")) (identifier "_M_realloc_insert")) (< "<") (identifier "gold")) (: ":") (: ":")) (expression_statement "Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58);" (binary_expression "Output_data*const&>\n                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58)" (binary_expression "Output_data*const" (identifier "Output_data") (* "*") (identifier "const")) (ERROR "&" (& "&")) (> ">") (parenthesized_expression "((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58)" (( "(") (comma_expression "(vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),\n                   puVar14,&local_58" (call_expression "(vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160)" (parenthesized_expression "(vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)" (( "(") (ERROR "vector<gold::Output_data*,std::allocator<gold::" (binary_expression "vector<gold" (identifier "vector") (< "<") (identifier "gold")) (: ":") (: ":") (type_descriptor "Output_data*" (type_identifier "Output_data") (abstract_pointer_declarator "*" (* "*"))) (, ",") (identifier "std") (: ":") (: ":") (binary_expression "allocator<gold" (identifier "allocator") (< "<") (identifier "gold")) (: ":") (: ":")) (binary_expression "Output_data*>> *" (identifier "Output_data") (* "*") (ERROR ">>" (>> ">>")) (pointer_expression "*" (* "*") (identifier ""))) () ")")) (argument_list "(iVar8 + 0x160)" (( "(") (binary_expression "iVar8 + 0x160" (identifier "iVar8") (+ "+") (number_literal "0x160")) () ")"))) (, ",") (comma_expression "puVar14,&local_58" (identifier "puVar14") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }" (else "else") (compound_statement "{\n        *puVar14 = puVar7;\n        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;\n      }" ({ "{") (expression_statement "*puVar14 = puVar7;" (assignment_expression "*puVar14 = puVar7" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "*(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;" (assignment_expression "*(undefined4 **)(iVar8 + 0x164) = puVar14 + 1" (pointer_expression "*(undefined4 **)(iVar8 + 0x164)" (* "*") (cast_expression "(undefined4 **)(iVar8 + 0x164)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x164)" (( "(") (binary_expression "iVar8 + 0x164" (identifier "iVar8") (+ "+") (number_literal "0x164")) () ")")))) (= "=") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "uVar24 = uVar12 + local_50;" (assignment_expression "uVar24 = uVar12 + local_50" (identifier "uVar24") (= "=") (binary_expression "uVar12 + local_50" (identifier "uVar12") (+ "+") (identifier "local_50"))) (; ";")) (expression_statement "lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);" (assignment_expression "lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17)" (identifier "lVar26") (= "=") (call_expression "(*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" (( "(") (pointer_expression "*(code *)PTR_FUN_004c2428" (* "*") (cast_expression "(code *)PTR_FUN_004c2428" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_004c2428"))) () ")")) (argument_list "(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17)" (( "(") (binary_expression "puVar21 + (uVar24 < uVar12)" (identifier "puVar21") (+ "+") (parenthesized_expression "(uVar24 < uVar12)" (( "(") (binary_expression "uVar24 < uVar12" (identifier "uVar24") (< "<") (identifier "uVar12")) () ")"))) (, ",") (identifier "uVar24") (, ",") (identifier "local_48") (, ",") (identifier "iVar17") () ")")))) (; ";")) (if_statement "if (lVar26 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" (if "if") (parenthesized_expression "(lVar26 != 0)" (( "(") (binary_expression "lVar26 != 0" (identifier "lVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x48b4")) (, ",") (number_literal "0x118c") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x3260")) () ")")))) (; ";")) (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (expression_statement "uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);" (assignment_expression "uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20)" (identifier "uVar11") (= "=") (call_expression "(undefined4)(lVar25 + (ulonglong)local_50 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "(lVar25 + (ulonglong)local_50 >> 0x20)" (( "(") (binary_expression "lVar25 + (ulonglong)local_50 >> 0x20" (binary_expression "lVar25 + (ulonglong)local_50" (identifier "lVar25") (+ "+") (cast_expression "(ulonglong)local_50" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_50"))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);" (assignment_expression "lVar25 = (*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17)" (identifier "lVar25") (= "=") (call_expression "(*(code *)PTR_FUN_004c2428)\n                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" (( "(") (pointer_expression "*(code *)PTR_FUN_004c2428" (* "*") (cast_expression "(code *)PTR_FUN_004c2428" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_004c2428"))) () ")")) (argument_list "(uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17)" (( "(") (identifier "uVar11") (, ",") (cast_expression "(int)(lVar25 + (ulonglong)local_50)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(lVar25 + (ulonglong)local_50)" (( "(") (binary_expression "lVar25 + (ulonglong)local_50" (identifier "lVar25") (+ "+") (cast_expression "(ulonglong)local_50" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_50"))) () ")"))) (, ",") (identifier "local_48") (, ",") (identifier "iVar17") () ")")))) (; ";")) (if_statement "if (lVar25 != 0) {\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" (if "if") (parenthesized_expression "(lVar25 != 0)" (( "(") (binary_expression "lVar25 != 0" (identifier "lVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);\n        return uVar11;\n      }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,\n                            PTR_s_in_a_linker_script_004c191c + -0x3260)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x48b4")) (, ",") (number_literal "0x118e") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x3260")) () ")")))) (; ";")) (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (if_statement "if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194)))" (( "(") (binary_expression "(*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&\n         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))" (parenthesized_expression "(*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400))" (( "(") (binary_expression "*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)" (pointer_expression "*(int *)(param_1 + 0x170)" (* "*") (cast_expression "(int *)(param_1 + 0x170)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x170)" (( "(") (binary_expression "param_1 + 0x170" (identifier "param_1") (+ "+") (number_literal "0x170")) () ")")))) (== "==") (pointer_expression "*(int *)(param_1 + 400)" (* "*") (cast_expression "(int *)(param_1 + 400)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 400)" (( "(") (binary_expression "param_1 + 400" (identifier "param_1") (+ "+") (number_literal "400")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))" (( "(") (binary_expression "*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194)" (pointer_expression "*(int *)(param_1 + 0x174)" (* "*") (cast_expression "(int *)(param_1 + 0x174)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x174)" (( "(") (binary_expression "param_1 + 0x174" (identifier "param_1") (+ "+") (number_literal "0x174")) () ")")))) (== "==") (pointer_expression "*(int *)(param_1 + 0x194)" (* "*") (cast_expression "(int *)(param_1 + 0x194)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x194)" (( "(") (binary_expression "param_1 + 0x194" (identifier "param_1") (+ "+") (number_literal "0x194")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n        uVar13 = local_50 + *(int *)(param_1 + 0x174);\n        *(uint *)(param_1 + 0x194) = uVar13;\n        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);\n        *(uint *)(param_1 + 0x174) = uVar13;\n        *(int *)(param_1 + 400) = iVar8;\n        *(int *)(param_1 + 0x170) = iVar8;\n        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));\n        param_8[1] = uVar24;\n        if (local_78 == local_4c) {\n          return uVar11;\n        }\n        (*(code *)PTR_operator_delete_004c12fc)();\n        return uVar11;\n      }" ({ "{") (expression_statement "uVar13 = local_50 + *(int *)(param_1 + 0x174);" (assignment_expression "uVar13 = local_50 + *(int *)(param_1 + 0x174)" (identifier "uVar13") (= "=") (binary_expression "local_50 + *(int *)(param_1 + 0x174)" (identifier "local_50") (+ "+") (pointer_expression "*(int *)(param_1 + 0x174)" (* "*") (cast_expression "(int *)(param_1 + 0x174)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x174)" (( "(") (binary_expression "param_1 + 0x174" (identifier "param_1") (+ "+") (number_literal "0x174")) () ")")))))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x194) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x194) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x194)" (* "*") (cast_expression "(uint *)(param_1 + 0x194)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x194)" (( "(") (binary_expression "param_1 + 0x194" (identifier "param_1") (+ "+") (number_literal "0x194")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);" (assignment_expression "iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170)" (identifier "iVar8") (= "=") (binary_expression "(uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170)" (call_expression "(uint)(uVar13 < local_50)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar13 < local_50)" (( "(") (binary_expression "uVar13 < local_50" (identifier "uVar13") (< "<") (identifier "local_50")) () ")"))) (+ "+") (pointer_expression "*(int *)(param_1 + 0x170)" (* "*") (cast_expression "(int *)(param_1 + 0x170)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x170)" (( "(") (binary_expression "param_1 + 0x170" (identifier "param_1") (+ "+") (number_literal "0x170")) () ")")))))) (; ";")) (expression_statement "*(uint *)(param_1 + 0x174) = uVar13;" (assignment_expression "*(uint *)(param_1 + 0x174) = uVar13" (pointer_expression "*(uint *)(param_1 + 0x174)" (* "*") (cast_expression "(uint *)(param_1 + 0x174)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x174)" (( "(") (binary_expression "param_1 + 0x174" (identifier "param_1") (+ "+") (number_literal "0x174")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(int *)(param_1 + 400) = iVar8;" (assignment_expression "*(int *)(param_1 + 400) = iVar8" (pointer_expression "*(int *)(param_1 + 400)" (* "*") (cast_expression "(int *)(param_1 + 400)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 400)" (( "(") (binary_expression "param_1 + 400" (identifier "param_1") (+ "+") (number_literal "400")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(int *)(param_1 + 0x170) = iVar8;" (assignment_expression "*(int *)(param_1 + 0x170) = iVar8" (pointer_expression "*(int *)(param_1 + 0x170)" (* "*") (cast_expression "(int *)(param_1 + 0x170)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x170)" (( "(") (binary_expression "param_1 + 0x170" (identifier "param_1") (+ "+") (number_literal "0x170")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*param_8 = (uint)(puVar21 + (uVar24 < uVar12));" (assignment_expression "*param_8 = (uint)(puVar21 + (uVar24 < uVar12))" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (call_expression "(uint)(puVar21 + (uVar24 < uVar12))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar21 + (uVar24 < uVar12))" (( "(") (binary_expression "puVar21 + (uVar24 < uVar12)" (identifier "puVar21") (+ "+") (parenthesized_expression "(uVar24 < uVar12)" (( "(") (binary_expression "uVar24 < uVar12" (identifier "uVar24") (< "<") (identifier "uVar12")) () ")"))) () ")")))) (; ";")) (expression_statement "param_8[1] = uVar24;" (assignment_expression "param_8[1] = uVar24" (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar24")) (; ";")) (if_statement "if (local_78 == local_4c) {\n          return uVar11;\n        }" (if "if") (parenthesized_expression "(local_78 == local_4c)" (( "(") (binary_expression "local_78 == local_4c" (identifier "local_78") (== "==") (identifier "local_4c")) () ")")) (compound_statement "{\n          return uVar11;\n        }" ({ "{") (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004c12fc" (* "*") (cast_expression "(code *)PTR_operator_delete_004c12fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004c12fc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (goto_statement "goto LAB_0021c388;" (goto "goto") (statement_identifier "LAB_0021c388") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }" (else "else") (compound_statement "{\n    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }\n    local_38 = *param_8;\n    pTVar16 = param_1 + 4;\n    lVar25 = 0;\n    uVar24 = 0;\n    local_34 = (undefined1 *)param_8[1];\n    uVar12 = 0;\nLAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);\nLAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;\nLAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;\n    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;\n    uVar9 = uVar24;\n    uVar10 = uVar12;\n    if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }\n    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);\n    local_44 = (int)lVar25;\n    iVar22 = *local_3c;\n    *(undefined1 *)param_7 = 1;\n    iVar17 = *(int *)(iVar22 + 0xc);\n    if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }\n    iVar22 = *(int *)(iVar22 + 8);\n    if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }\n  }" ({ "{") (if_statement "if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0))" (( "(") (binary_expression "(*(int *)(param_1 + 0x1a0) << 1 < 0) &&\n       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)" (parenthesized_expression "(*(int *)(param_1 + 0x1a0) << 1 < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1a0) << 1 < 0" (binary_expression "*(int *)(param_1 + 0x1a0) << 1" (pointer_expression "*(int *)(param_1 + 0x1a0)" (* "*") (cast_expression "(int *)(param_1 + 0x1a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1a0)" (( "(") (binary_expression "param_1 + 0x1a0" (identifier "param_1") (+ "+") (number_literal "0x1a0")) () ")")))) (<< "<<") (number_literal "1")) (< "<") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)" (( "(") (comma_expression "puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0" (assignment_expression "puVar21 = (undefined1 *)0x0" (identifier "puVar21") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (, ",") (binary_expression "param_5 == (uint *)0x0" (identifier "param_5") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n      local_44 = 0;\n      goto LAB_0021ba3c;\n    }" ({ "{") (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0021ba3c;" (goto "goto") (statement_identifier "LAB_0021ba3c") (; ";")) (} "}"))) (expression_statement "local_38 = *param_8;" (assignment_expression "local_38 = *param_8" (identifier "local_38") (= "=") (pointer_expression "*param_8" (* "*") (identifier "param_8"))) (; ";")) (expression_statement "pTVar16 = param_1 + 4;" (assignment_expression "pTVar16 = param_1 + 4" (identifier "pTVar16") (= "=") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "lVar25 = 0;" (assignment_expression "lVar25 = 0" (identifier "lVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = (undefined1 *)param_8[1];" (assignment_expression "local_34 = (undefined1 *)param_8[1]" (identifier "local_34") (= "=") (cast_expression "(undefined1 *)param_8[1]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0021bac4:\n    do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);" (statement_identifier "LAB_0021bac4") (: ":") (do_statement "do {\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    } while (param_1 + 0x100 != pTVar16);" (do "do") (compound_statement "{\n      puVar7 = *(undefined4 **)(pTVar16 + -4);\n      if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }\nLAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;\n    }" ({ "{") (expression_statement "puVar7 = *(undefined4 **)(pTVar16 + -4);" (assignment_expression "puVar7 = *(undefined4 **)(pTVar16 + -4)" (identifier "puVar7") (= "=") (pointer_expression "*(undefined4 **)(pTVar16 + -4)" (* "*") (cast_expression "(undefined4 **)(pTVar16 + -4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pTVar16 + -4)" (( "(") (binary_expression "pTVar16 + -4" (identifier "pTVar16") (+ "+") (number_literal "-4")) () ")"))))) (; ";")) (if_statement "if (puVar7 != *(undefined4 **)pTVar16) {\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }" (if "if") (parenthesized_expression "(puVar7 != *(undefined4 **)pTVar16)" (( "(") (binary_expression "puVar7 != *(undefined4 **)pTVar16" (identifier "puVar7") (!= "!=") (pointer_expression "*(undefined4 **)pTVar16" (* "*") (cast_expression "(undefined4 **)pTVar16" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pTVar16")))) () ")")) (compound_statement "{\n        do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);\n      }" ({ "{") (do_statement "do {\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        } while (*(undefined4 **)pTVar16 != puVar7);" (do "do") (compound_statement "{\n          while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }\n          uVar13 = uVar12;\n          if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }\n          piVar20 = (int *)*puVar7;\n          if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          piVar20[2] = uVar24;\n          piVar20[3] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;\n          if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }\n          iVar22 = *piVar20;\n          piVar20[6] = uVar24;\n          piVar20[7] = uVar13;\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;\n          if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }\n          bVar2 = *(byte *)(piVar20 + 8);\n          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;\n          uVar12 = uVar13 + piVar20[5];\n          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n          if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }\n          puVar7 = puVar7 + 1;\n          (**(code **)(iVar22 + 0x3c))(piVar20);\n        }" ({ "{") (while_statement "while( true ) {\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n            if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }\n            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);\n            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);\n            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }\n            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();\n            if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;\nLAB_0021bb94:\n            puVar7 = puVar7 + 1;\n            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;\n          }" ({ "{") (expression_statement "uVar13 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar13 = (uint)((ulonglong)lVar25 >> 0x20)" (identifier "uVar13") (= "=") (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar25")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);" (assignment_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7)" (identifier "iVar22") (= "=") (call_expression "(**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x18))" (( "(") (pointer_expression "**(code **)(*(int *)*puVar7 + 0x18)" (* "*") (pointer_expression "*(code **)(*(int *)*puVar7 + 0x18)" (* "*") (cast_expression "(code **)(*(int *)*puVar7 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar7 + 0x18)" (( "(") (binary_expression "*(int *)*puVar7 + 0x18" (pointer_expression "*(int *)*puVar7" (* "*") (cast_expression "(int *)*puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "((int *)*puVar7)" (( "(") (cast_expression "(int *)*puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) () ")")))) (; ";")) (if_statement "if (iVar22 == 0) {\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }" (if "if") (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;\n              pTVar16 = pTVar16 + 0xc;\n              uVar13 = uVar13 | (uint)lVar25;\n              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;\n              goto LAB_0021c05c;\n            }" ({ "{") (if_statement "if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;" (if "if") (parenthesized_expression "(puVar7 != *(undefined4 **)pTVar16)" (( "(") (binary_expression "puVar7 != *(undefined4 **)pTVar16" (identifier "puVar7") (!= "!=") (pointer_expression "*(undefined4 **)pTVar16" (* "*") (cast_expression "(undefined4 **)pTVar16" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pTVar16")))) () ")")) (goto_statement "goto LAB_0021c058;" (goto "goto") (statement_identifier "LAB_0021c058") (; ";"))) (expression_statement "pTVar16 = pTVar16 + 0xc;" (assignment_expression "pTVar16 = pTVar16 + 0xc" (identifier "pTVar16") (= "=") (binary_expression "pTVar16 + 0xc" (identifier "pTVar16") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "uVar13 = uVar13 | (uint)lVar25;" (assignment_expression "uVar13 = uVar13 | (uint)lVar25" (identifier "uVar13") (= "=") (binary_expression "uVar13 | (uint)lVar25" (identifier "uVar13") (| "|") (cast_expression "(uint)lVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar25")))) (; ";")) (if_statement "if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;" (if "if") (parenthesized_expression "(param_1 + 0x100 != pTVar16)" (( "(") (binary_expression "param_1 + 0x100 != pTVar16" (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) (!= "!=") (identifier "pTVar16")) () ")")) (goto_statement "goto LAB_0021bac4;" (goto "goto") (statement_identifier "LAB_0021bac4") (; ";"))) (goto_statement "goto LAB_0021c05c;" (goto "goto") (statement_identifier "LAB_0021c05c") (; ";")) (} "}"))) (expression_statement "lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);" (assignment_expression "lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7)" (identifier "lVar26") (= "=") (call_expression "(**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0xc))" (( "(") (pointer_expression "**(code **)(*(int *)*puVar7 + 0xc)" (* "*") (pointer_expression "*(code **)(*(int *)*puVar7 + 0xc)" (* "*") (cast_expression "(code **)(*(int *)*puVar7 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar7 + 0xc)" (( "(") (binary_expression "*(int *)*puVar7 + 0xc" (pointer_expression "*(int *)*puVar7" (* "*") (cast_expression "(int *)*puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "((int *)*puVar7)" (( "(") (cast_expression "(int *)*puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) () ")")))) (; ";")) (expression_statement "uVar9 = (uint)((ulonglong)lVar26 >> 0x20);" (assignment_expression "uVar9 = (uint)((ulonglong)lVar26 >> 0x20)" (identifier "uVar9") (= "=") (call_expression "(uint)((ulonglong)lVar26 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar26")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {\n              lVar25 = lVar26;\n            }" (if "if") (parenthesized_expression "((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26))))" (( "(") (binary_expression "(uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))" (parenthesized_expression "(uVar13 < uVar9)" (( "(") (binary_expression "uVar13 < uVar9" (identifier "uVar13") (< "<") (identifier "uVar9")) () ")")) (|| "||") (parenthesized_expression "((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))" (( "(") (parenthesized_expression "(uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26))" (( "(") (binary_expression "uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)" (binary_expression "uVar9 == uVar13" (identifier "uVar9") (== "==") (identifier "uVar13")) (&& "&&") (parenthesized_expression "((uint)lVar25 < (uint)lVar26)" (( "(") (binary_expression "(uint)lVar25 < (uint)lVar26" (cast_expression "(uint)lVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar25")) (< "<") (cast_expression "(uint)lVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar26"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              lVar25 = lVar26;\n            }" ({ "{") (expression_statement "lVar25 = lVar26;" (assignment_expression "lVar25 = lVar26" (identifier "lVar25") (= "=") (identifier "lVar26")) (; ";")) (} "}"))) (expression_statement "iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();" (assignment_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))()" (identifier "iVar22") (= "=") (call_expression "(**(code **)(*(int *)*puVar7 + 0x20))()" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x20))" (( "(") (pointer_expression "**(code **)(*(int *)*puVar7 + 0x20)" (* "*") (pointer_expression "*(code **)(*(int *)*puVar7 + 0x20)" (* "*") (cast_expression "(code **)(*(int *)*puVar7 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar7 + 0x20)" (( "(") (binary_expression "*(int *)*puVar7 + 0x20" (pointer_expression "*(int *)*puVar7" (* "*") (cast_expression "(int *)*puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar22 == 0) {\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }\n            else {\n              local_54[0] = '\x01';\n            }" (if "if") (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }\n            }" ({ "{") (if_statement "if (local_54[0] != '\0') {\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }" (if "if") (parenthesized_expression "(local_54[0] != '\0')" (( "(") (binary_expression "local_54[0] != '\0'" (subscript_expression "local_54[0]" (identifier "local_54") ([ "[") (number_literal "0") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                local_54[0] = '\0';\n                lVar26 = lVar25;\n              }" ({ "{") (expression_statement "local_54[0] = '\0';" (assignment_expression "local_54[0] = '\0'" (subscript_expression "local_54[0]" (identifier "local_54") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "lVar26 = lVar25;" (assignment_expression "lVar26 = lVar25" (identifier "lVar26") (= "=") (identifier "lVar25")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              local_54[0] = '\x01';\n            }" (else "else") (compound_statement "{\n              local_54[0] = '\x01';\n            }" ({ "{") (expression_statement "local_54[0] = '\x01';" (assignment_expression "local_54[0] = '\x01'" (subscript_expression "local_54[0]" (identifier "local_54") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}")))) (expression_statement "iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();" (assignment_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))()" (identifier "iVar22") (= "=") (call_expression "(**(code **)(*(int *)*puVar7 + 0x20))()" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x20))" (( "(") (pointer_expression "**(code **)(*(int *)*puVar7 + 0x20)" (* "*") (pointer_expression "*(code **)(*(int *)*puVar7 + 0x20)" (* "*") (cast_expression "(code **)(*(int *)*puVar7 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar7 + 0x20)" (( "(") (binary_expression "*(int *)*puVar7 + 0x20" (pointer_expression "*(int *)*puVar7" (* "*") (cast_expression "(int *)*puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))\n            break;" (if "if") (parenthesized_expression "((iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))" (( "(") (binary_expression "(iVar22 == 0) ||\n               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0)" (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0)" (( "(") (comma_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0" (assignment_expression "iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8)" (identifier "iVar22") (= "=") (call_expression "(**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x1c))" (( "(") (pointer_expression "**(code **)(*(int *)*puVar7 + 0x1c)" (* "*") (pointer_expression "*(code **)(*(int *)*puVar7 + 0x1c)" (* "*") (cast_expression "(code **)(*(int *)*puVar7 + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar7 + 0x1c)" (( "(") (binary_expression "*(int *)*puVar7 + 0x1c" (pointer_expression "*(int *)*puVar7" (* "*") (cast_expression "(int *)*puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (argument_list "((int *)*puVar7,8)" (( "(") (cast_expression "(int *)*puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (, ",") (number_literal "8") () ")")))) (, ",") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0021bb94:\n            puVar7 = puVar7 + 1;" (statement_identifier "LAB_0021bb94") (: ":") (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;" (if "if") (parenthesized_expression "(*(undefined4 **)pTVar16 == puVar7)" (( "(") (binary_expression "*(undefined4 **)pTVar16 == puVar7" (pointer_expression "*(undefined4 **)pTVar16" (* "*") (cast_expression "(undefined4 **)pTVar16" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pTVar16"))) (== "==") (identifier "puVar7")) () ")")) (goto_statement "goto LAB_0021c04c;" (goto "goto") (statement_identifier "LAB_0021c04c") (; ";"))) (} "}"))) (expression_statement "uVar13 = uVar12;" (assignment_expression "uVar13 = uVar12" (identifier "uVar13") (= "=") (identifier "uVar12")) (; ";")) (if_statement "if (lVar26 != 0) {\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }" (if "if") (parenthesized_expression "(lVar26 != 0)" (( "(") (binary_expression "lVar26 != 0" (identifier "lVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);\n            uVar13 = (uint)lVar3 & -(int)lVar26;\n            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);\n          }" ({ "{") (expression_statement "lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);" (assignment_expression "lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1)" (identifier "lVar3") (= "=") (binary_expression "lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1)" (identifier "lVar26") (+ "+") (call_expression "CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1)" (identifier "CONCAT44") (argument_list "((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1)" (( "(") (binary_expression "(uint)(uVar12 - 1 < uVar12) + (uVar24 - 1)" (call_expression "(uint)(uVar12 - 1 < uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar12 - 1 < uVar12)" (( "(") (binary_expression "uVar12 - 1 < uVar12" (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1")) (< "<") (identifier "uVar12")) () ")"))) (+ "+") (parenthesized_expression "(uVar24 - 1)" (( "(") (binary_expression "uVar24 - 1" (identifier "uVar24") (- "-") (number_literal "1")) () ")"))) (, ",") (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar13 = (uint)lVar3 & -(int)lVar26;" (assignment_expression "uVar13 = (uint)lVar3 & -(int)lVar26" (identifier "uVar13") (= "=") (binary_expression "(uint)lVar3 & -(int)lVar26" (cast_expression "(uint)lVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar3")) (& "&") (unary_expression "-(int)lVar26" (- "-") (cast_expression "(int)lVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar26"))))) (; ";")) (expression_statement "uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);" (assignment_expression "uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (identifier "uVar24") (= "=") (binary_expression "(uint)((ulonglong)lVar3 >> 0x20) &\n                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (call_expression "(uint)((ulonglong)lVar3 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar3 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (binary_expression "-(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20)" (unary_expression "-(uint)(-(int)lVar26 != 0)" (- "-") (call_expression "(uint)(-(int)lVar26 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(-(int)lVar26 != 0)" (( "(") (binary_expression "-(int)lVar26 != 0" (unary_expression "-(int)lVar26" (- "-") (cast_expression "(int)lVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar26"))) (!= "!=") (number_literal "0")) () ")")))) (- "-") (cast_expression "(int)((ulonglong)lVar26 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar26")) (>> ">>") (number_literal "0x20")) () ")")))))) (; ";")) (} "}"))) (expression_statement "piVar20 = (int *)*puVar7;" (assignment_expression "piVar20 = (int *)*puVar7" (identifier "piVar20") (= "=") (cast_expression "(int *)*puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (if_statement "if (piVar20[8] < 0) {\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }" (if "if") (parenthesized_expression "(piVar20[8] < 0)" (( "(") (binary_expression "piVar20[8] < 0" (subscript_expression "piVar20[8]" (identifier "piVar20") ([ "[") (number_literal "8") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }\n            uVar12 = uVar13 + piVar20[5];\n            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];\n            goto LAB_0021bb94;\n          }" ({ "{") (if_statement "if (-1 < piVar20[8] << 1) {\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }" (if "if") (parenthesized_expression "(-1 < piVar20[8] << 1)" (( "(") (binary_expression "-1 < piVar20[8] << 1" (number_literal "-1") (< "<") (binary_expression "piVar20[8] << 1" (subscript_expression "piVar20[8]" (identifier "piVar20") ([ "[") (number_literal "8") (] "]")) (<< "<<") (number_literal "1"))) () ")")) (compound_statement "{\nLAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);\n              return uVar11;\n            }" ({ "{") (labeled_statement "LAB_0021c280:\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);" (statement_identifier "LAB_0021c280") (: ":") (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,\n                                  PTR_s_in_a_linker_script_004c191c + -0x29fc)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0xcf") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x29fc" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x29fc")) () ")")))) (; ";"))) (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (expression_statement "uVar12 = uVar13 + piVar20[5];" (assignment_expression "uVar12 = uVar13 + piVar20[5]" (identifier "uVar12") (= "=") (binary_expression "uVar13 + piVar20[5]" (identifier "uVar13") (+ "+") (subscript_expression "piVar20[5]" (identifier "piVar20") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];" (assignment_expression "uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4]" (identifier "uVar24") (= "=") (binary_expression "(uint)(uVar12 < uVar13) + uVar24 + piVar20[4]" (binary_expression "(uint)(uVar12 < uVar13) + uVar24" (call_expression "(uint)(uVar12 < uVar13)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar12 < uVar13)" (( "(") (binary_expression "uVar12 < uVar13" (identifier "uVar12") (< "<") (identifier "uVar13")) () ")"))) (+ "+") (identifier "uVar24")) (+ "+") (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")))) (; ";")) (goto_statement "goto LAB_0021bb94;" (goto "goto") (statement_identifier "LAB_0021bb94") (; ";")) (} "}"))) (expression_statement "bVar2 = *(byte *)(piVar20 + 8);" (assignment_expression "bVar2 = *(byte *)(piVar20 + 8)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(piVar20 + 8)" (* "*") (cast_expression "(byte *)(piVar20 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar20 + 8)" (( "(") (binary_expression "piVar20 + 8" (identifier "piVar20") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "piVar20[2] = uVar24;" (assignment_expression "piVar20[2] = uVar24" (subscript_expression "piVar20[2]" (identifier "piVar20") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar24")) (; ";")) (expression_statement "piVar20[3] = uVar13;" (assignment_expression "piVar20[3] = uVar13" (subscript_expression "piVar20[3]" (identifier "piVar20") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;" (assignment_expression "*(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80" (pointer_expression "*(byte *)(piVar20 + 8)" (* "*") (cast_expression "(byte *)(piVar20 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar20 + 8)" (( "(") (binary_expression "piVar20 + 8" (identifier "piVar20") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "bVar2 & 0x7f | 0x80" (binary_expression "bVar2 & 0x7f" (identifier "bVar2") (& "&") (number_literal "0x7f")) (| "|") (number_literal "0x80"))) (; ";")) (if_statement "if (piVar20[8] << 2 < 0) {\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }" (if "if") (parenthesized_expression "(piVar20[8] << 2 < 0)" (( "(") (binary_expression "piVar20[8] << 2 < 0" (binary_expression "piVar20[8] << 2" (subscript_expression "piVar20[8]" (identifier "piVar20") ([ "[") (number_literal "8") (] "]")) (<< "<<") (number_literal "2")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);\n            return uVar11;\n          }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,\n                                PTR_s_in_a_linker_script_004c191c + -0x2d60)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0x14b") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d60" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2d60")) () ")")))) (; ";")) (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (expression_statement "iVar22 = *piVar20;" (assignment_expression "iVar22 = *piVar20" (identifier "iVar22") (= "=") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) (; ";")) (expression_statement "piVar20[6] = uVar24;" (assignment_expression "piVar20[6] = uVar24" (subscript_expression "piVar20[6]" (identifier "piVar20") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar24")) (; ";")) (expression_statement "piVar20[7] = uVar13;" (assignment_expression "piVar20[7] = uVar13" (subscript_expression "piVar20[7]" (identifier "piVar20") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;" (assignment_expression "*(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0" (pointer_expression "*(byte *)(piVar20 + 8)" (* "*") (cast_expression "(byte *)(piVar20 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar20 + 8)" (( "(") (binary_expression "piVar20 + 8" (identifier "piVar20") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "bVar2 & 0x5f | 0xa0" (binary_expression "bVar2 & 0x5f" (identifier "bVar2") (& "&") (number_literal "0x5f")) (| "|") (number_literal "0xa0"))) (; ";")) (if_statement "if (-1 < piVar20[8] << 1) {\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }" (if "if") (parenthesized_expression "(-1 < piVar20[8] << 1)" (( "(") (binary_expression "-1 < piVar20[8] << 1" (number_literal "-1") (< "<") (binary_expression "piVar20[8] << 1" (subscript_expression "piVar20[8]" (identifier "piVar20") ([ "[") (number_literal "8") (] "]")) (<< "<<") (number_literal "1"))) () ")")) (compound_statement "{\n            (**(code **)(iVar22 + 0x38))(piVar20);\n            if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }\n            piVar20 = (int *)*puVar7;\n            if (-1 < piVar20[8] << 1) goto LAB_0021c280;\n            iVar22 = *piVar20;\n          }" ({ "{") (expression_statement "(**(code **)(iVar22 + 0x38))(piVar20);" (call_expression "(**(code **)(iVar22 + 0x38))(piVar20)" (parenthesized_expression "(**(code **)(iVar22 + 0x38))" (( "(") (pointer_expression "**(code **)(iVar22 + 0x38)" (* "*") (pointer_expression "*(code **)(iVar22 + 0x38)" (* "*") (cast_expression "(code **)(iVar22 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar22 + 0x38)" (( "(") (binary_expression "iVar22 + 0x38" (identifier "iVar22") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(piVar20)" (( "(") (identifier "piVar20") () ")"))) (; ";")) (if_statement "if (-1 < piVar20[8] << 1) {\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }" (if "if") (parenthesized_expression "(-1 < piVar20[8] << 1)" (( "(") (binary_expression "-1 < piVar20[8] << 1" (number_literal "-1") (< "<") (binary_expression "piVar20[8] << 1" (subscript_expression "piVar20[8]" (identifier "piVar20") ([ "[") (number_literal "8") (] "]")) (<< "<<") (number_literal "1"))) () ")")) (compound_statement "{\n              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);\n              return uVar11;\n            }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,\n                                  PTR_s_in_a_linker_script_004c191c + -0x2d74)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0x163") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2d74" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2d74")) () ")")))) (; ";")) (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (expression_statement "piVar20 = (int *)*puVar7;" (assignment_expression "piVar20 = (int *)*puVar7" (identifier "piVar20") (= "=") (cast_expression "(int *)*puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (if_statement "if (-1 < piVar20[8] << 1) goto LAB_0021c280;" (if "if") (parenthesized_expression "(-1 < piVar20[8] << 1)" (( "(") (binary_expression "-1 < piVar20[8] << 1" (number_literal "-1") (< "<") (binary_expression "piVar20[8] << 1" (subscript_expression "piVar20[8]" (identifier "piVar20") ([ "[") (number_literal "8") (] "]")) (<< "<<") (number_literal "1"))) () ")")) (goto_statement "goto LAB_0021c280;" (goto "goto") (statement_identifier "LAB_0021c280") (; ";"))) (expression_statement "iVar22 = *piVar20;" (assignment_expression "iVar22 = *piVar20" (identifier "iVar22") (= "=") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) (; ";")) (} "}"))) (expression_statement "bVar2 = *(byte *)(piVar20 + 8);" (assignment_expression "bVar2 = *(byte *)(piVar20 + 8)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(piVar20 + 8)" (* "*") (cast_expression "(byte *)(piVar20 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar20 + 8)" (( "(") (binary_expression "piVar20 + 8" (identifier "piVar20") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(byte *)(piVar20 + 8) = bVar2 & 0x5f;" (assignment_expression "*(byte *)(piVar20 + 8) = bVar2 & 0x5f" (pointer_expression "*(byte *)(piVar20 + 8)" (* "*") (cast_expression "(byte *)(piVar20 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar20 + 8)" (( "(") (binary_expression "piVar20 + 8" (identifier "piVar20") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "bVar2 & 0x5f" (identifier "bVar2") (& "&") (number_literal "0x5f"))) (; ";")) (expression_statement "uVar12 = uVar13 + piVar20[5];" (assignment_expression "uVar12 = uVar13 + piVar20[5]" (identifier "uVar12") (= "=") (binary_expression "uVar13 + piVar20[5]" (identifier "uVar13") (+ "+") (subscript_expression "piVar20[5]" (identifier "piVar20") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];" (assignment_expression "uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4]" (identifier "uVar24") (= "=") (binary_expression "(uint)(uVar12 < uVar13) + uVar24 + piVar20[4]" (binary_expression "(uint)(uVar12 < uVar13) + uVar24" (call_expression "(uint)(uVar12 < uVar13)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar12 < uVar13)" (( "(") (binary_expression "uVar12 < uVar13" (identifier "uVar12") (< "<") (identifier "uVar13")) () ")"))) (+ "+") (identifier "uVar24")) (+ "+") (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (-1 < piVar20[8] << 3) {\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }" (if "if") (parenthesized_expression "(-1 < piVar20[8] << 3)" (( "(") (binary_expression "-1 < piVar20[8] << 3" (number_literal "-1") (< "<") (binary_expression "piVar20[8] << 3" (subscript_expression "piVar20[8]" (identifier "piVar20") ([ "[") (number_literal "8") (] "]")) (<< "<<") (number_literal "3"))) () ")")) (compound_statement "{\n            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;\n          }" ({ "{") (expression_statement "*(byte *)(piVar20 + 8) = bVar2 & 0x1f;" (assignment_expression "*(byte *)(piVar20 + 8) = bVar2 & 0x1f" (pointer_expression "*(byte *)(piVar20 + 8)" (* "*") (cast_expression "(byte *)(piVar20 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar20 + 8)" (( "(") (binary_expression "piVar20 + 8" (identifier "piVar20") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "bVar2 & 0x1f" (identifier "bVar2") (& "&") (number_literal "0x1f"))) (; ";")) (} "}"))) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(iVar22 + 0x3c))(piVar20);" (call_expression "(**(code **)(iVar22 + 0x3c))(piVar20)" (parenthesized_expression "(**(code **)(iVar22 + 0x3c))" (( "(") (pointer_expression "**(code **)(iVar22 + 0x3c)" (* "*") (pointer_expression "*(code **)(iVar22 + 0x3c)" (* "*") (cast_expression "(code **)(iVar22 + 0x3c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar22 + 0x3c)" (( "(") (binary_expression "iVar22 + 0x3c" (identifier "iVar22") (+ "+") (number_literal "0x3c")) () ")"))))) () ")")) (argument_list "(piVar20)" (( "(") (identifier "piVar20") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(undefined4 **)pTVar16 != puVar7)" (( "(") (binary_expression "*(undefined4 **)pTVar16 != puVar7" (pointer_expression "*(undefined4 **)pTVar16" (* "*") (cast_expression "(undefined4 **)pTVar16" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pTVar16"))) (!= "!=") (identifier "puVar7")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0021c04c:\n      pTVar16 = pTVar16 + 0xc;" (statement_identifier "LAB_0021c04c") (: ":") (expression_statement "pTVar16 = pTVar16 + 0xc;" (assignment_expression "pTVar16 = pTVar16 + 0xc" (identifier "pTVar16") (= "=") (binary_expression "pTVar16 + 0xc" (identifier "pTVar16") (+ "+") (number_literal "0xc"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(param_1 + 0x100 != pTVar16)" (( "(") (binary_expression "param_1 + 0x100 != pTVar16" (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) (!= "!=") (identifier "pTVar16")) () ")")) (; ";"))) (labeled_statement "LAB_0021c058:\n    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;" (statement_identifier "LAB_0021c058") (: ":") (expression_statement "uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;" (assignment_expression "uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25" (identifier "uVar13") (= "=") (binary_expression "(uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25" (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar25")) (>> ">>") (number_literal "0x20")) () ")"))) (| "|") (cast_expression "(uint)lVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar25")))) (; ";"))) (labeled_statement "LAB_0021c05c:\n    uVar12 = *(uint *)param_6 + uVar12;" (statement_identifier "LAB_0021c05c") (: ":") (expression_statement "uVar12 = *(uint *)param_6 + uVar12;" (assignment_expression "uVar12 = *(uint *)param_6 + uVar12" (identifier "uVar12") (= "=") (binary_expression "*(uint *)param_6 + uVar12" (pointer_expression "*(uint *)param_6" (* "*") (cast_expression "(uint *)param_6" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_6"))) (+ "+") (identifier "uVar12"))) (; ";"))) (expression_statement "uVar24 = (uVar12 < *(uint *)param_6) + uVar24;" (assignment_expression "uVar24 = (uVar12 < *(uint *)param_6) + uVar24" (identifier "uVar24") (= "=") (binary_expression "(uVar12 < *(uint *)param_6) + uVar24" (parenthesized_expression "(uVar12 < *(uint *)param_6)" (( "(") (binary_expression "uVar12 < *(uint *)param_6" (identifier "uVar12") (< "<") (pointer_expression "*(uint *)param_6" (* "*") (cast_expression "(uint *)param_6" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_6")))) () ")")) (+ "+") (identifier "uVar24"))) (; ";")) (expression_statement "uVar9 = uVar24;" (assignment_expression "uVar9 = uVar24" (identifier "uVar9") (= "=") (identifier "uVar24")) (; ";")) (expression_statement "uVar10 = uVar12;" (assignment_expression "uVar10 = uVar12" (identifier "uVar10") (= "=") (identifier "uVar12")) (; ";")) (if_statement "if (uVar13 != 0) {\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }" (if "if") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);\n      uVar10 = (uint)lVar26 & -(int)lVar25;\n      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);\n      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);\n    }" ({ "{") (expression_statement "lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);" (assignment_expression "lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12)" (identifier "lVar26") (= "=") (binary_expression "lVar25 + -1 + CONCAT44(uVar24,uVar12)" (binary_expression "lVar25 + -1" (identifier "lVar25") (+ "+") (number_literal "-1")) (+ "+") (call_expression "CONCAT44(uVar24,uVar12)" (identifier "CONCAT44") (argument_list "(uVar24,uVar12)" (( "(") (identifier "uVar24") (, ",") (identifier "uVar12") () ")"))))) (; ";")) (expression_statement "uVar10 = (uint)lVar26 & -(int)lVar25;" (assignment_expression "uVar10 = (uint)lVar26 & -(int)lVar25" (identifier "uVar10") (= "=") (binary_expression "(uint)lVar26 & -(int)lVar25" (cast_expression "(uint)lVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar26")) (& "&") (unary_expression "-(int)lVar25" (- "-") (cast_expression "(int)lVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar25"))))) (; ";")) (expression_statement "uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20)" (identifier "uVar9") (= "=") (binary_expression "(uint)((ulonglong)lVar26 >> 0x20) &\n              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20)" (call_expression "(uint)((ulonglong)lVar26 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar26 >> 0x20" (cast_expression "(ulonglong)lVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar26")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (binary_expression "-(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20)" (unary_expression "-(uint)(-(int)lVar25 != 0)" (- "-") (call_expression "(uint)(-(int)lVar25 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(-(int)lVar25 != 0)" (( "(") (binary_expression "-(int)lVar25 != 0" (unary_expression "-(int)lVar25" (- "-") (cast_expression "(int)lVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar25"))) (!= "!=") (number_literal "0")) () ")")))) (- "-") (cast_expression "(int)((ulonglong)lVar25 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar25")) (>> ">>") (number_literal "0x20")) () ")")))))) (; ";")) (expression_statement "lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);" (assignment_expression "lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12)" (identifier "lVar25") (= "=") (call_expression "CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12)" (identifier "CONCAT44") (argument_list "((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12)" (( "(") (binary_expression "(uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12)" (parenthesized_expression "(uVar9 - uVar24)" (( "(") (binary_expression "uVar9 - uVar24" (identifier "uVar9") (- "-") (identifier "uVar24")) () ")")) (- "-") (call_expression "(uint)(uVar10 < uVar10 - uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar10 < uVar10 - uVar12)" (( "(") (binary_expression "uVar10 < uVar10 - uVar12" (identifier "uVar10") (< "<") (binary_expression "uVar10 - uVar12" (identifier "uVar10") (- "-") (identifier "uVar12"))) () ")")))) (, ",") (binary_expression "uVar10 - uVar12" (identifier "uVar10") (- "-") (identifier "uVar12")) () ")")))) (; ";")) (} "}"))) (expression_statement "puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);" (assignment_expression "puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20)" (identifier "puVar21") (= "=") (cast_expression "(undefined1 *)((ulonglong)lVar25 >> 0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)lVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar25")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_44 = (int)lVar25;" (assignment_expression "local_44 = (int)lVar25" (identifier "local_44") (= "=") (cast_expression "(int)lVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar25"))) (; ";")) (expression_statement "iVar22 = *local_3c;" (assignment_expression "iVar22 = *local_3c" (identifier "iVar22") (= "=") (pointer_expression "*local_3c" (* "*") (identifier "local_3c"))) (; ";")) (expression_statement "*(undefined1 *)param_7 = 1;" (assignment_expression "*(undefined1 *)param_7 = 1" (pointer_expression "*(undefined1 *)param_7" (* "*") (cast_expression "(undefined1 *)param_7" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_7"))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar17 = *(int *)(iVar22 + 0xc);" (assignment_expression "iVar17 = *(int *)(iVar22 + 0xc)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar22 + 0xc)" (* "*") (cast_expression "(int *)(iVar22 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0xc)" (( "(") (binary_expression "iVar22 + 0xc" (identifier "iVar22") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar17 == 0) {\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);\n      return uVar11;\n    }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                          PTR_s_in_a_linker_script_004c191c + -0x2998)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "-0x9b8")) (, ",") (number_literal "0x69") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2998" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2998")) () ")")))) (; ";")) (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}"))) (expression_statement "iVar22 = *(int *)(iVar22 + 8);" (assignment_expression "iVar22 = *(int *)(iVar22 + 8)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(iVar22 + 8)" (* "*") (cast_expression "(int *)(iVar22 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 8)" (( "(") (binary_expression "iVar22 + 8" (identifier "iVar22") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar22 != 0) {\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }" (if "if") (parenthesized_expression "(iVar22 != 0)" (( "(") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar18 = *(int *)(iVar22 + 0x5228);\n      puVar23 = *(undefined1 **)(iVar22 + 0x522c);\n      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }\n      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);\n      puVar15 = local_34;\n      puVar19 = puVar23 + -(int)uVar27;\n      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);\n      local_30 = local_38;\n      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);\n      uVar12 = local_30;\n      if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }\n      puVar15 = puVar19 + (int)puVar15;\n      puVar23 = puVar15 + -(int)uVar28;\n      param_8[1] = (uint)puVar23;\n      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);\n      puVar15 = puVar23 + -(int)local_4c;\n      *param_8 = uVar12;\n      local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));\n      local_50 = uVar12;\n      local_4c = puVar23;\n      local_40 = local_40 + (int)puVar15;\n      goto LAB_0021b72c;\n    }" ({ "{") (expression_statement "iVar18 = *(int *)(iVar22 + 0x5228);" (assignment_expression "iVar18 = *(int *)(iVar22 + 0x5228)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(iVar22 + 0x5228)" (* "*") (cast_expression "(int *)(iVar22 + 0x5228)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x5228)" (( "(") (binary_expression "iVar22 + 0x5228" (identifier "iVar22") (+ "+") (number_literal "0x5228")) () ")"))))) (; ";")) (expression_statement "puVar23 = *(undefined1 **)(iVar22 + 0x522c);" (assignment_expression "puVar23 = *(undefined1 **)(iVar22 + 0x522c)" (identifier "puVar23") (= "=") (pointer_expression "*(undefined1 **)(iVar22 + 0x522c)" (* "*") (cast_expression "(undefined1 **)(iVar22 + 0x522c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar22 + 0x522c)" (( "(") (binary_expression "iVar22 + 0x522c" (identifier "iVar22") (+ "+") (number_literal "0x522c")) () ")"))))) (; ";")) (if_statement "if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }" (if "if") (parenthesized_expression "(iVar18 == 0 && puVar23 == (undefined1 *)0x0)" (( "(") (binary_expression "iVar18 == 0 && puVar23 == (undefined1 *)0x0" (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) (&& "&&") (binary_expression "puVar23 == (undefined1 *)0x0" (identifier "puVar23") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n        iVar22 = *(int *)(iVar17 + 4);\n        iVar18 = *(int *)(iVar22 + 0x20);\n        puVar23 = *(undefined1 **)(iVar22 + 0x24);\n      }" ({ "{") (expression_statement "iVar22 = *(int *)(iVar17 + 4);" (assignment_expression "iVar22 = *(int *)(iVar17 + 4)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(iVar17 + 4)" (* "*") (cast_expression "(int *)(iVar17 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 4)" (( "(") (binary_expression "iVar17 + 4" (identifier "iVar17") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar18 = *(int *)(iVar22 + 0x20);" (assignment_expression "iVar18 = *(int *)(iVar22 + 0x20)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(iVar22 + 0x20)" (* "*") (cast_expression "(int *)(iVar22 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x20)" (( "(") (binary_expression "iVar22 + 0x20" (identifier "iVar22") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "puVar23 = *(undefined1 **)(iVar22 + 0x24);" (assignment_expression "puVar23 = *(undefined1 **)(iVar22 + 0x24)" (identifier "puVar23") (= "=") (pointer_expression "*(undefined1 **)(iVar22 + 0x24)" (* "*") (cast_expression "(undefined1 **)(iVar22 + 0x24)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar22 + 0x24)" (( "(") (binary_expression "iVar22 + 0x24" (identifier "iVar22") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);" (assignment_expression "uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23)" (identifier "uVar27") (= "=") (call_expression "(*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" (( "(") (pointer_expression "*(code *)PTR_FUN_004c2428" (* "*") (cast_expression "(code *)PTR_FUN_004c2428" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_004c2428"))) () ")")) (argument_list "(uVar9,uVar10,iVar18,puVar23)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar10") (, ",") (identifier "iVar18") (, ",") (identifier "puVar23") () ")")))) (; ";")) (expression_statement "puVar15 = local_34;" (assignment_expression "puVar15 = local_34" (identifier "puVar15") (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar19 = puVar23 + -(int)uVar27;" (assignment_expression "puVar19 = puVar23 + -(int)uVar27" (identifier "puVar19") (= "=") (binary_expression "puVar23 + -(int)uVar27" (identifier "puVar23") (+ "+") (unary_expression "-(int)uVar27" (- "-") (cast_expression "(int)uVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar27"))))) (; ";")) (expression_statement "iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);" (assignment_expression "iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19)" (identifier "iVar22") (= "=") (binary_expression "(iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19)" (parenthesized_expression "(iVar18 - (int)((ulonglong)uVar27 >> 0x20))" (( "(") (binary_expression "iVar18 - (int)((ulonglong)uVar27 >> 0x20)" (identifier "iVar18") (- "-") (cast_expression "(int)((ulonglong)uVar27 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar27 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar27 >> 0x20" (cast_expression "(ulonglong)uVar27" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar27")) (>> ">>") (number_literal "0x20")) () ")")))) () ")")) (- "-") (call_expression "(uint)(puVar23 < puVar19)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar23 < puVar19)" (( "(") (binary_expression "puVar23 < puVar19" (identifier "puVar23") (< "<") (identifier "puVar19")) () ")"))))) (; ";")) (expression_statement "local_30 = local_38;" (assignment_expression "local_30 = local_38" (identifier "local_30") (= "=") (identifier "local_38")) (; ";")) (expression_statement "uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);" (assignment_expression "uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23)" (identifier "uVar28") (= "=") (call_expression "(*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" (( "(") (pointer_expression "*(code *)PTR_FUN_004c2428" (* "*") (cast_expression "(code *)PTR_FUN_004c2428" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_004c2428"))) () ")")) (argument_list "(local_38,local_34,iVar18,puVar23)" (( "(") (identifier "local_38") (, ",") (identifier "local_34") (, ",") (identifier "iVar18") (, ",") (identifier "puVar23") () ")")))) (; ";")) (expression_statement "uVar12 = local_30;" (assignment_expression "uVar12 = local_30" (identifier "uVar12") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (CONCAT44(iVar22,puVar19) < uVar28) {\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }" (if "if") (parenthesized_expression "(CONCAT44(iVar22,puVar19) < uVar28)" (( "(") (binary_expression "CONCAT44(iVar22,puVar19) < uVar28" (call_expression "CONCAT44(iVar22,puVar19)" (identifier "CONCAT44") (argument_list "(iVar22,puVar19)" (( "(") (identifier "iVar22") (, ",") (identifier "puVar19") () ")"))) (< "<") (identifier "uVar28")) () ")")) (compound_statement "{\n        puVar15 = puVar23 + (int)local_34;\n        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;\n        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);\n        uVar12 = local_38;\n      }" ({ "{") (expression_statement "puVar15 = puVar23 + (int)local_34;" (assignment_expression "puVar15 = puVar23 + (int)local_34" (identifier "puVar15") (= "=") (binary_expression "puVar23 + (int)local_34" (identifier "puVar23") (+ "+") (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")))) (; ";")) (expression_statement "local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;" (assignment_expression "local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38" (identifier "local_38") (= "=") (binary_expression "(uint)(puVar15 < local_34) + iVar18 + local_38" (binary_expression "(uint)(puVar15 < local_34) + iVar18" (call_expression "(uint)(puVar15 < local_34)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar15 < local_34)" (( "(") (binary_expression "puVar15 < local_34" (identifier "puVar15") (< "<") (identifier "local_34")) () ")"))) (+ "+") (identifier "iVar18")) (+ "+") (identifier "local_38"))) (; ";")) (expression_statement "uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);" (assignment_expression "uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23)" (identifier "uVar28") (= "=") (call_expression "(*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23)" (parenthesized_expression "(*(code *)PTR_FUN_004c2428)" (( "(") (pointer_expression "*(code *)PTR_FUN_004c2428" (* "*") (cast_expression "(code *)PTR_FUN_004c2428" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_004c2428"))) () ")")) (argument_list "(local_38,puVar15,iVar18,puVar23)" (( "(") (identifier "local_38") (, ",") (identifier "puVar15") (, ",") (identifier "iVar18") (, ",") (identifier "puVar23") () ")")))) (; ";")) (expression_statement "uVar12 = local_38;" (assignment_expression "uVar12 = local_38" (identifier "uVar12") (= "=") (identifier "local_38")) (; ";")) (} "}"))) (expression_statement "puVar15 = puVar19 + (int)puVar15;" (assignment_expression "puVar15 = puVar19 + (int)puVar15" (identifier "puVar15") (= "=") (binary_expression "puVar19 + (int)puVar15" (identifier "puVar19") (+ "+") (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")))) (; ";")) (expression_statement "puVar23 = puVar15 + -(int)uVar28;" (assignment_expression "puVar23 = puVar15 + -(int)uVar28" (identifier "puVar23") (= "=") (binary_expression "puVar15 + -(int)uVar28" (identifier "puVar15") (+ "+") (unary_expression "-(int)uVar28" (- "-") (cast_expression "(int)uVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar28"))))) (; ";")) (expression_statement "param_8[1] = (uint)puVar23;" (assignment_expression "param_8[1] = (uint)puVar23" (subscript_expression "param_8[1]" (identifier "param_8") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar23"))) (; ";")) (expression_statement "uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23);" (assignment_expression "uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23)" (identifier "uVar12") (= "=") (binary_expression "(((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -\n               (uint)(puVar15 < puVar23)" (parenthesized_expression "(((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20))" (( "(") (binary_expression "((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)" (parenthesized_expression "((uint)(puVar15 < puVar19) + iVar22 + uVar12)" (( "(") (binary_expression "(uint)(puVar15 < puVar19) + iVar22 + uVar12" (binary_expression "(uint)(puVar15 < puVar19) + iVar22" (call_expression "(uint)(puVar15 < puVar19)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar15 < puVar19)" (( "(") (binary_expression "puVar15 < puVar19" (identifier "puVar15") (< "<") (identifier "puVar19")) () ")"))) (+ "+") (identifier "iVar22")) (+ "+") (identifier "uVar12")) () ")")) (- "-") (cast_expression "(int)(uVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar28 >> 0x20)" (( "(") (binary_expression "uVar28 >> 0x20" (identifier "uVar28") (>> ">>") (number_literal "0x20")) () ")")))) () ")")) (- "-") (call_expression "(uint)(puVar15 < puVar23)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar15 < puVar23)" (( "(") (binary_expression "puVar15 < puVar23" (identifier "puVar15") (< "<") (identifier "puVar23")) () ")"))))) (; ";")) (expression_statement "puVar15 = puVar23 + -(int)local_4c;" (assignment_expression "puVar15 = puVar23 + -(int)local_4c" (identifier "puVar15") (= "=") (binary_expression "puVar23 + -(int)local_4c" (identifier "puVar23") (+ "+") (unary_expression "-(int)local_4c" (- "-") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c"))))) (; ";")) (expression_statement "*param_8 = uVar12;" (assignment_expression "*param_8 = uVar12" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));" (assignment_expression "local_48 = local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15))" (identifier "local_48") (= "=") (binary_expression "local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40) +\n                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15))" (binary_expression "local_48 +\n                 (uint)(local_40 + (int)puVar15 < local_40)" (identifier "local_48") (+ "+") (call_expression "(uint)(local_40 + (int)puVar15 < local_40)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_40 + (int)puVar15 < local_40)" (( "(") (binary_expression "local_40 + (int)puVar15 < local_40" (binary_expression "local_40 + (int)puVar15" (identifier "local_40") (+ "+") (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15"))) (< "<") (identifier "local_40")) () ")")))) (+ "+") (parenthesized_expression "((uVar12 - local_50) - (uint)(puVar23 < puVar15))" (( "(") (binary_expression "(uVar12 - local_50) - (uint)(puVar23 < puVar15)" (parenthesized_expression "(uVar12 - local_50)" (( "(") (binary_expression "uVar12 - local_50" (identifier "uVar12") (- "-") (identifier "local_50")) () ")")) (- "-") (call_expression "(uint)(puVar23 < puVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar23 < puVar15)" (( "(") (binary_expression "puVar23 < puVar15" (identifier "puVar23") (< "<") (identifier "puVar15")) () ")")))) () ")")))) (; ";")) (expression_statement "local_50 = uVar12;" (assignment_expression "local_50 = uVar12" (identifier "local_50") (= "=") (identifier "uVar12")) (; ";")) (expression_statement "local_4c = puVar23;" (assignment_expression "local_4c = puVar23" (identifier "local_4c") (= "=") (identifier "puVar23")) (; ";")) (expression_statement "local_40 = local_40 + (int)puVar15;" (assignment_expression "local_40 = local_40 + (int)puVar15" (identifier "local_40") (= "=") (binary_expression "local_40 + (int)puVar15" (identifier "local_40") (+ "+") (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")))) (; ";")) (goto_statement "goto LAB_0021b72c;" (goto "goto") (statement_identifier "LAB_0021b72c") (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_00212c40();" (call_expression "FUN_00212c40()" (identifier "FUN_00212c40") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0021c388:\n                    \n  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);" (statement_identifier "LAB_0021c388") (: ":") (expression_statement "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260);" (assignment_expression "uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,\n                      PTR_s_in_a_linker_script_004c191c + -0x3260)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x48b4")) (, ",") (number_literal "0x1190") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3260" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x3260")) () ")")))) (; ";"))) (return_statement "return uVar11;" (return "return") (identifier "uVar11") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) (ERROR (identifier) (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (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: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (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: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (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: (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: (identifier))) right: (number_literal))))) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (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: (number_literal)) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (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: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_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: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (pointer_expression argument: (identifier)) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_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: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_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: (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))))))) (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: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) right: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (identifier) (pointer_expression argument: (identifier)) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_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: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) right: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))))) 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: (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: (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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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: (identifier))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (return_statement (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: (pointer_expression argument: (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: (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: (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: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) 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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)))) (expression_statement (assignment_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: (number_literal))) (expression_statement (assignment_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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (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: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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)))))))) 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: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_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))))))) consequence: (compound_statement (ERROR (comma_expression left: (identifier) (ERROR (binary_expression left: (identifier) right: (identifier)) (identifier)) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (binary_expression left: (identifier) (ERROR) right: (identifier)) right: (identifier))) (expression_statement (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (parenthesized_expression (comma_expression left: (call_expression function: (parenthesized_expression (ERROR (binary_expression left: (identifier) right: (identifier)) (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) (identifier) (binary_expression left: (identifier) right: (identifier))) (binary_expression left: (identifier) (ERROR) right: (pointer_expression argument: (MISSING identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (comma_expression left: (identifier) right: (pointer_expression argument: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (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: (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))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (return_statement (identifier)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (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: (number_literal)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (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))) (goto_statement label: (statement_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: (number_literal))) (expression_statement (assignment_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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_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: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) consequence: (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) arguments: (argument_list)))) (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))))) 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) 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: (identifier))) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))))) 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: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (binary_expression left: (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: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (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: (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: (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: (identifier) right: (number_literal)) right: (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: (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: (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: (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: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_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)))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (identifier))) consequence: (compound_statement (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: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) 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: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (identifier)) right: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (goto_statement label: (statement_identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)))))

/* WARNING: Removing unreachable block (ram,0x0021c208) */
/* WARNING: Type propagation algorithm not settling */
/* gold::Output_segment::MASKED(gold::Target const*, gold::Layout*, bool, unsigned
   long long, unsigned int*, bool*, long long*, unsigned int*) */

undefined4
gold::Output_segment::MASKED
          (Target *param_1,Layout *param_2,bool param_3,ulonglong param_4,uint *param_5,
          bool *param_6,longlong *param_7,uint *param_8)

{
  char cVar1;
  byte bVar2;
  longlong lVar3;
  undefined *puVar4;
  undefined *puVar5;
  code *pcVar6;
  undefined4 *puVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  undefined4 uVar11;
  uint uVar12;
  uint uVar13;
  undefined4 *puVar14;
  undefined1 *puVar15;
  undefined3 in_register_00000018;
  Target *pTVar16;
  int iVar17;
  int iVar18;
  undefined1 *puVar19;
  int *piVar20;
  undefined1 *puVar21;
  int iVar22;
  undefined1 *puVar23;
  uint uVar24;
  longlong lVar25;
  longlong lVar26;
  undefined8 uVar27;
  ulonglong uVar28;
  undefined4 in_stack_00000024;
  undefined1 *local_90 [2];
  undefined1 auStack_88 [16];
  undefined1 *local_78;
  int local_74;
  undefined1 local_70 [16];
  undefined1 *local_60;
  uint local_5c;
  undefined4 *local_58;
  char local_54 [4];
  uint local_50;
  undefined1 *local_4c;
  code *local_48;
  int local_44;
  undefined1 *local_40;
  int *local_3c;
  uint local_38;
  undefined1 *local_34;
  uint local_30;
  
  iVar8 = CONCAT31(in_register_00000018,param_3);
  local_40 = param_4._4_4_;
  local_48 = param_4._0_4_;
  uVar11 = 0x10e4;
  if (*(int *)(param_1 + 0x198) != 1) goto LAB_0021c29c;
  local_50 = *param_8;
  local_54[0] = '\0';
  local_3c = (int *)PTR_parameters_004c19b4;
  local_4c = (undefined1 *)param_8[1];
  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 8) == 0) {
    uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                       (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x5c,
                        PTR_s_in_a_linker_script_004c191c + -0x29c4);
    return uVar11;
  }
  if ((*(char *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 8) + 0x56c9) == '\0') ||
     (iVar22 = is_first_section_relro((Output_segment *)param_1), iVar22 == 0)) {
    puVar21 = (undefined1 *)0x0;
    local_44 = 0;
LAB_0021b72c:
    if ((param_5 == (uint *)0x0) && (*(int *)(param_1 + 0x1a0) << 1 < 0)) {
LAB_0021ba3c:
      if (*(code **)(param_1 + 0x168) != local_48) {
        uVar11 = 0x1131;
LAB_0021c29c:
        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,uVar11,
                            PTR_s_in_a_linker_script_004c191c + -0x3260);
        return uVar11;
      }
      uVar11 = 0x1131;
      if (*(undefined1 **)(param_1 + 0x16c) != local_40) goto LAB_0021c29c;
      local_48 = *(code **)(param_1 + 0x160);
      local_40 = *(undefined1 **)(param_1 + 0x164);
    }
    else {
      *(code **)(param_1 + 0x160) = local_48;
      *(undefined1 **)(param_1 + 0x164) = local_40;
      *(code **)(param_1 + 0x168) = local_48;
      *(undefined1 **)(param_1 + 0x16c) = local_40;
      param_1[0x1a0] = (Target)((byte)param_1[0x1a0] & 0xbf | 0x40);
    }
    lVar25 = CONCAT44(local_48,local_40);
    local_48 = (code *)PTR_set_section_list_addresses_004c3fb4;
    local_54[0] = '\0';
    *(uint *)(param_1 + 0x188) = local_50;
    *(undefined1 **)(param_1 + 0x18c) = local_4c;
    local_60 = (undefined1 *)*param_8;
    local_5c = param_8[1];
    iVar22 = 0;
    pTVar16 = param_1;
    local_40 = puVar21;
    while( true ) {
      lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25,param_8,&local_60,in_stack_00000024,
                           local_54);
      uVar12 = local_5c;
      puVar21 = local_60;
      uVar11 = (undefined4)((ulonglong)lVar25 >> 0x20);
      if (((undefined1 *)*param_8 != local_60) || (param_8[1] != local_5c)) {
        if (iVar22 == 0x11) goto LAB_0021b84c;
        if (iVar22 < 0x1a) goto LAB_0021b834;
      }
      *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;
      *(undefined1 **)(param_1 + 400) =
           local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);
      if (iVar22 == 0x1c) break;
      while( true ) {
        iVar22 = iVar22 + 1;
        pTVar16 = param_1 + iVar22 * 0xc;
        if (iVar22 != 0x14) break;
        uVar24 = param_8[1];
        uVar12 = uVar24 + local_44;
        iVar18 = *(int *)(param_1 + 0xf0);
        iVar17 = *(int *)(param_1 + 0xf4);
        param_8[1] = uVar12;
        local_60 = local_60 + (int)local_40 + (local_5c + local_44 < local_5c);
        *param_8 = (uint)(local_40 + (uint)(uVar12 < uVar24) + *param_8);
        if (iVar18 == iVar17) {
          *(int *)param_6 = *(int *)param_6 + local_44;
        }
        local_5c = local_5c + local_44;
        lVar25 = (*local_48)(param_1,iVar8,param_5,pTVar16,lVar25 + CONCAT44(local_40,local_44),
                             param_8,&local_60,in_stack_00000024,local_54);
        if ((local_60 != (undefined1 *)*param_8) || (local_5c != param_8[1])) {
LAB_0021b834:
          if (*(char *)(*(int *)(iVar8 + 4) + 0xac) == '\0') {
            uVar11 = 0x115d;
            goto LAB_0021c29c;
          }
        }
LAB_0021b84c:
        *(uint *)(param_1 + 0x194) = local_5c - (int)local_4c;
        *(undefined1 **)(param_1 + 400) =
             local_60 + (-(uint)(local_5c < local_5c - (int)local_4c) - local_50);
      }
    }
    if (local_54[0] == '\0') {
      uVar24 = *param_8;
      uVar13 = param_8[1];
    }
    else {
      lVar26 = maximum_alignment(*(Output_segment **)(iVar8 + 0x170));
      uVar24 = *param_8;
      uVar13 = param_8[1];
      if (lVar26 != 0) {
        lVar3 = lVar26 + CONCAT44((uint)(uVar13 - 1 < uVar13) + (uVar24 - 1),uVar13 - 1);
        uVar13 = (uint)lVar3 & -(int)lVar26;
        uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &
                 -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);
      }
    }
    iVar22 = *(int *)(param_2 + 4);
    *(uint *)(param_1 + 0x174) = uVar13 - (int)local_4c;
    cVar1 = *(char *)(iVar22 + 0x30);
    *(uint *)(param_1 + 0x170) = (uVar24 - local_50) - (uint)(uVar13 < uVar13 - (int)local_4c);
    *param_8 = (uint)puVar21;
    param_8[1] = uVar12;
    if (cVar1 == '\0') {
      return uVar11;
    }
    if ((*(uint *)(param_1 + 0x19c) & 1) == 0) {
      return uVar11;
    }
    iVar17 = *(int *)(*local_3c + 8);
    if (iVar17 != 0) {
      local_48 = *(code **)(iVar17 + 0x5228);
      iVar17 = *(int *)(iVar17 + 0x522c);
      if (local_48 == (code *)0x0 && iVar17 == 0) {
        local_48 = *(code **)(iVar22 + 0x20);
        iVar17 = *(int *)(iVar22 + 0x24);
      }
      pcVar6 = local_48;
      lVar26 = (*(code *)PTR_FUN_004c2428)(local_50,local_4c,local_48,iVar17);
      if (lVar26 != 0) {
        return uVar11;
      }
      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21,uVar12,pcVar6,iVar17);
      if (lVar26 == 0) {
        return uVar11;
      }
      local_78 = local_70;
      local_50 = iVar17 - (int)lVar26;
      local_74 = 0;
      local_70[0] = 0;
      local_4c = local_78;
      if (*(char *)(iVar22 + 0xe) == '\0') {
                    /* try { // try from 0021c270 to 0021c277 has its CatchHandler @ 0021c3dc */
        (*(code *)PTR_resize_004c22c8)(&local_78,local_50,0);
      }
      else {
                    /* try { // try from 0021bd48 to 0021bd8f has its CatchHandler @ 0021c3dc */
        (**(code **)(*(int *)param_2 + 0x18))(local_90,param_2);
        (*(code *)PTR_operator__004c3fbc)(&local_78,local_90);
        if (local_90[0] != auStack_88) {
          (*(code *)PTR_operator_delete_004c12fc)();
        }
      }
      puVar7 = (undefined4 *)(*(code *)PTR_operator_new_004c13a8)(0x48);
      puVar7[9] = 0;
      *(byte *)(puVar7 + 8) = *(byte *)(puVar7 + 8) & 7 | 0x50;
      puVar7[5] = local_74;
      puVar7[2] = 0;
      puVar7[10] = 0;
      puVar5 = PTR_vtable_004c2344;
      puVar4 = PTR__M_construct<char*>_004c2098;
      puVar7[4] = 0;
      puVar7[7] = 0xffffffff;
      puVar7[6] = 0xffffffff;
      puVar7[3] = 0;
      puVar7[0xb] = 0;
      *puVar7 = puVar5 + 8;
                    /* try { // try from 0021be08 to 0021be0f has its CatchHandler @ 0021c40c */
      puVar7[0xc] = puVar7 + 0xe;
      (*(code *)puVar4)(puVar7 + 0xc,local_78,local_78 + local_74,0);
      uVar24 = *(uint *)(param_1 + 0x164) + *(int *)(param_1 + 0x174);
      if ((int)puVar7[8] < 0) {
                    /* try { // try from 0021c374 to 0021c37b has its CatchHandler @ 0021c3dc */
        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x142,
                            PTR_s_in_a_linker_script_004c191c + -0x2d50);
        return uVar11;
      }
      bVar2 = *(byte *)(puVar7 + 8);
      puVar7[2] = (uint)(uVar24 < *(uint *)(param_1 + 0x164)) +
                  *(int *)(param_1 + 0x160) + *(int *)(param_1 + 0x170);
      puVar7[3] = uVar24;
      *(byte *)(puVar7 + 8) = bVar2 & 0x7f | 0x80;
      if ((int)(puVar7[8] << 2) < 0) {
                    /* try { // try from 0021c300 to 0021c307 has its CatchHandler @ 0021c3dc */
        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                           (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,
                            PTR_s_in_a_linker_script_004c191c + -0x2d60);
        return uVar11;
      }
      puVar7[6] = puVar21;
      puVar7[7] = uVar12;
      *(byte *)(puVar7 + 8) = bVar2 & 0x5f | 0xa0;
      puVar14 = *(undefined4 **)(iVar8 + 0x164);
      local_58 = puVar7;
      if (puVar14 == *(undefined4 **)(iVar8 + 0x168)) {
                    /* try { // try from 0021c2c0 to 0021c2c7 has its CatchHandler @ 0021c3dc */
        std::vector<gold::Output_data*,std::allocator<gold::Output_data*>>::
        _M_realloc_insert<gold::Output_data*const&>
                  ((vector<gold::Output_data*,std::allocator<gold::Output_data*>> *)(iVar8 + 0x160),
                   puVar14,&local_58);
      }
      else {
        *puVar14 = puVar7;
        *(undefined4 **)(iVar8 + 0x164) = puVar14 + 1;
      }
      uVar24 = uVar12 + local_50;
      lVar26 = (*(code *)PTR_FUN_004c2428)(puVar21 + (uVar24 < uVar12),uVar24,local_48,iVar17);
      if (lVar26 != 0) {
        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118c,
                            PTR_s_in_a_linker_script_004c191c + -0x3260);
        return uVar11;
      }
      uVar11 = (undefined4)(lVar25 + (ulonglong)local_50 >> 0x20);
      lVar25 = (*(code *)PTR_FUN_004c2428)
                         (uVar11,(int)(lVar25 + (ulonglong)local_50),local_48,iVar17);
      if (lVar25 != 0) {
        uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                           (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x118e,
                            PTR_s_in_a_linker_script_004c191c + -0x3260);
        return uVar11;
      }
      if ((*(int *)(param_1 + 0x170) == *(int *)(param_1 + 400)) &&
         (*(int *)(param_1 + 0x174) == *(int *)(param_1 + 0x194))) {
        uVar13 = local_50 + *(int *)(param_1 + 0x174);
        *(uint *)(param_1 + 0x194) = uVar13;
        iVar8 = (uint)(uVar13 < local_50) + *(int *)(param_1 + 0x170);
        *(uint *)(param_1 + 0x174) = uVar13;
        *(int *)(param_1 + 400) = iVar8;
        *(int *)(param_1 + 0x170) = iVar8;
        *param_8 = (uint)(puVar21 + (uVar24 < uVar12));
        param_8[1] = uVar24;
        if (local_78 == local_4c) {
          return uVar11;
        }
        (*(code *)PTR_operator_delete_004c12fc)();
        return uVar11;
      }
      goto LAB_0021c388;
    }
  }
  else {
    if ((*(int *)(param_1 + 0x1a0) << 1 < 0) &&
       (puVar21 = (undefined1 *)0x0, param_5 == (uint *)0x0)) {
      local_44 = 0;
      goto LAB_0021ba3c;
    }
    local_38 = *param_8;
    pTVar16 = param_1 + 4;
    lVar25 = 0;
    uVar24 = 0;
    local_34 = (undefined1 *)param_8[1];
    uVar12 = 0;
LAB_0021bac4:
    do {
      puVar7 = *(undefined4 **)(pTVar16 + -4);
      if (puVar7 != *(undefined4 **)pTVar16) {
        do {
          while( true ) {
            uVar13 = (uint)((ulonglong)lVar25 >> 0x20);
            iVar22 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);
            if (iVar22 == 0) {
              if (puVar7 != *(undefined4 **)pTVar16) goto LAB_0021c058;
              pTVar16 = pTVar16 + 0xc;
              uVar13 = uVar13 | (uint)lVar25;
              if (param_1 + 0x100 != pTVar16) goto LAB_0021bac4;
              goto LAB_0021c05c;
            }
            lVar26 = (**(code **)(*(int *)*puVar7 + 0xc))((int *)*puVar7);
            uVar9 = (uint)((ulonglong)lVar26 >> 0x20);
            if ((uVar13 < uVar9) || ((uVar9 == uVar13 && ((uint)lVar25 < (uint)lVar26)))) {
              lVar25 = lVar26;
            }
            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();
            if (iVar22 == 0) {
              if (local_54[0] != '\0') {
                local_54[0] = '\0';
                lVar26 = lVar25;
              }
            }
            else {
              local_54[0] = '\x01';
            }
            iVar22 = (**(code **)(*(int *)*puVar7 + 0x20))();
            if ((iVar22 == 0) ||
               (iVar22 = (**(code **)(*(int *)*puVar7 + 0x1c))((int *)*puVar7,8), iVar22 == 0))
            break;
LAB_0021bb94:
            puVar7 = puVar7 + 1;
            if (*(undefined4 **)pTVar16 == puVar7) goto LAB_0021c04c;
          }
          uVar13 = uVar12;
          if (lVar26 != 0) {
            lVar3 = lVar26 + CONCAT44((uint)(uVar12 - 1 < uVar12) + (uVar24 - 1),uVar12 - 1);
            uVar13 = (uint)lVar3 & -(int)lVar26;
            uVar24 = (uint)((ulonglong)lVar3 >> 0x20) &
                     -(uint)(-(int)lVar26 != 0) - (int)((ulonglong)lVar26 >> 0x20);
          }
          piVar20 = (int *)*puVar7;
          if (piVar20[8] < 0) {
            if (-1 < piVar20[8] << 1) {
LAB_0021c280:
              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xcf,
                                  PTR_s_in_a_linker_script_004c191c + -0x29fc);
              return uVar11;
            }
            uVar12 = uVar13 + piVar20[5];
            uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];
            goto LAB_0021bb94;
          }
          bVar2 = *(byte *)(piVar20 + 8);
          piVar20[2] = uVar24;
          piVar20[3] = uVar13;
          *(byte *)(piVar20 + 8) = bVar2 & 0x7f | 0x80;
          if (piVar20[8] << 2 < 0) {
            uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                               (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x14b,
                                PTR_s_in_a_linker_script_004c191c + -0x2d60);
            return uVar11;
          }
          iVar22 = *piVar20;
          piVar20[6] = uVar24;
          piVar20[7] = uVar13;
          *(byte *)(piVar20 + 8) = bVar2 & 0x5f | 0xa0;
          if (-1 < piVar20[8] << 1) {
            (**(code **)(iVar22 + 0x38))(piVar20);
            if (-1 < piVar20[8] << 1) {
              uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                                 (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0x163,
                                  PTR_s_in_a_linker_script_004c191c + -0x2d74);
              return uVar11;
            }
            piVar20 = (int *)*puVar7;
            if (-1 < piVar20[8] << 1) goto LAB_0021c280;
            iVar22 = *piVar20;
          }
          bVar2 = *(byte *)(piVar20 + 8);
          *(byte *)(piVar20 + 8) = bVar2 & 0x5f;
          uVar12 = uVar13 + piVar20[5];
          uVar24 = (uint)(uVar12 < uVar13) + uVar24 + piVar20[4];
          if (-1 < piVar20[8] << 3) {
            *(byte *)(piVar20 + 8) = bVar2 & 0x1f;
          }
          puVar7 = puVar7 + 1;
          (**(code **)(iVar22 + 0x3c))(piVar20);
        } while (*(undefined4 **)pTVar16 != puVar7);
      }
LAB_0021c04c:
      pTVar16 = pTVar16 + 0xc;
    } while (param_1 + 0x100 != pTVar16);
LAB_0021c058:
    uVar13 = (uint)((ulonglong)lVar25 >> 0x20) | (uint)lVar25;
LAB_0021c05c:
    uVar12 = *(uint *)param_6 + uVar12;
    uVar24 = (uVar12 < *(uint *)param_6) + uVar24;
    uVar9 = uVar24;
    uVar10 = uVar12;
    if (uVar13 != 0) {
      lVar26 = lVar25 + -1 + CONCAT44(uVar24,uVar12);
      uVar10 = (uint)lVar26 & -(int)lVar25;
      uVar9 = (uint)((ulonglong)lVar26 >> 0x20) &
              -(uint)(-(int)lVar25 != 0) - (int)((ulonglong)lVar25 >> 0x20);
      lVar25 = CONCAT44((uVar9 - uVar24) - (uint)(uVar10 < uVar10 - uVar12),uVar10 - uVar12);
    }
    puVar21 = (undefined1 *)((ulonglong)lVar25 >> 0x20);
    local_44 = (int)lVar25;
    iVar22 = *local_3c;
    *(undefined1 *)param_7 = 1;
    iVar17 = *(int *)(iVar22 + 0xc);
    if (iVar17 == 0) {
      uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                         (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,
                          PTR_s_in_a_linker_script_004c191c + -0x2998);
      return uVar11;
    }
    iVar22 = *(int *)(iVar22 + 8);
    if (iVar22 != 0) {
      iVar18 = *(int *)(iVar22 + 0x5228);
      puVar23 = *(undefined1 **)(iVar22 + 0x522c);
      if (iVar18 == 0 && puVar23 == (undefined1 *)0x0) {
        iVar22 = *(int *)(iVar17 + 4);
        iVar18 = *(int *)(iVar22 + 0x20);
        puVar23 = *(undefined1 **)(iVar22 + 0x24);
      }
      uVar27 = (*(code *)PTR_FUN_004c2428)(uVar9,uVar10,iVar18,puVar23);
      puVar15 = local_34;
      puVar19 = puVar23 + -(int)uVar27;
      iVar22 = (iVar18 - (int)((ulonglong)uVar27 >> 0x20)) - (uint)(puVar23 < puVar19);
      local_30 = local_38;
      uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,local_34,iVar18,puVar23);
      uVar12 = local_30;
      if (CONCAT44(iVar22,puVar19) < uVar28) {
        puVar15 = puVar23 + (int)local_34;
        local_38 = (uint)(puVar15 < local_34) + iVar18 + local_38;
        uVar28 = (*(code *)PTR_FUN_004c2428)(local_38,puVar15,iVar18,puVar23);
        uVar12 = local_38;
      }
      puVar15 = puVar19 + (int)puVar15;
      puVar23 = puVar15 + -(int)uVar28;
      param_8[1] = (uint)puVar23;
      uVar12 = (((uint)(puVar15 < puVar19) + iVar22 + uVar12) - (int)(uVar28 >> 0x20)) -
               (uint)(puVar15 < puVar23);
      puVar15 = puVar23 + -(int)local_4c;
      *param_8 = uVar12;
      local_48 = local_48 +
                 (uint)(local_40 + (int)puVar15 < local_40) +
                 ((uVar12 - local_50) - (uint)(puVar23 < puVar15));
      local_50 = uVar12;
      local_4c = puVar23;
      local_40 = local_40 + (int)puVar15;
      goto LAB_0021b72c;
    }
  }
  FUN_00212c40();
LAB_0021c388:
                    /* try { // try from 0021c39c to 0021c3db has its CatchHandler @ 0021c3dc */
  uVar11 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                     (PTR_s_in_a_linker_script_004c191c + -0x48b4,0x1190,
                      PTR_s_in_a_linker_script_004c191c + -0x3260);
  return uVar11;
}

