
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: off_t set_segment_offsets(Layout * this, Target * target,
   Output_segment * load_seg, uint * pshndx) */

off_t __thiscall
gold::Layout::set_segment_offsets(Layout *this,Target *target,Output_segment *load_seg,uint *pshndx)

{
  byte bVar1;
  __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>
  __first;
  __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>
  __last;
  Output_segment *pOVar2;
  Elf_Word EVar3;
  pointer ppOVar4;
  int iVar5;
  longlong lVar6;
  uint64_t uVar7;
  longlong lVar8;
  longlong lVar9;
  uint64_t uVar10;
  bool bVar11;
  bool bVar12;
  int iVar13;
  Output_segment **__buffer;
  General_options *pGVar14;
  Output_segment *pOVar15;
  char *format;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  int extraout_EDX;
  byte bVar19;
  Target_info *pTVar20;
  Output_data *pOVar21;
  pointer ppOVar22;
  uint uVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  pointer ppOVar27;
  bool bVar28;
  uint64_t uVar29;
  uint64_t uVar30;
  Target *in_stack_ffffff14;
  uint local_dc;
  uint local_d8;
  uint local_c4;
  uint local_c0;
  uint local_ac;
  uint local_84;
  uint local_80;
  uint local_74;
  uint local_70;
  uint local_6c;
  uint local_68;
  uint local_54;
  uint local_50;
  Output_segment *local_4c;
  pointer local_44;
  int local_40;
  bool has_relro;
  uint increase_relro;
  uint shndx_begin;
  off_t off;
  
  __first._M_current =
       (this->segment_list_).
       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.
       _M_start;
  __last._M_current =
       (this->segment_list_).
       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.
       _M_finish;
  iVar13 = (int)__last._M_current - (int)__first._M_current;
  if (iVar13 < 0x7ffffffd) {
    if (0 < iVar13) {
      local_44 = (pointer)(iVar13 >> 2);
      goto LAB_00113091;
    }
  }
  else {
    local_44 = (pointer)0x1fffffff;
LAB_00113091:
    do {
      __buffer = (Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow);
      if (__buffer != (Output_segment **)0x0) {
                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */
        std::
        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>
                  (__first,__last,__buffer,(int)local_44,
                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);
        goto LAB_001130c6;
      }
      local_44 = (pointer)((int)local_44 >> 1);
    } while (local_44 != (pointer)0x0);
  }
                    /* try { // try from 0011347c to 00113480 has its CatchHandler @ 0011423e */
  std::
  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>
            (__first,__last,(_Iter_comp_iter<gold::Layout::Compare_segments>)this);
  __buffer = (Output_segment **)0x0;
LAB_001130c6:
  operator_delete(__buffer,(nothrow_t *)&std::nothrow);
  pGVar14 = parameters->options_;
  if (pGVar14 == (General_options *)0x0) goto LAB_0011413b;
  if ((pGVar14->Ttext_).user_set_via_option == false) {
    local_c4 = 0;
    local_c0 = 0;
    if (((pGVar14->shared_).value == false) && ((pGVar14->pie_).value == false)) {
      pTVar20 = target->pti_;
      local_c4 = (uint)pTVar20->default_text_segment_address;
      local_c0 = *(uint *)((int)&pTVar20->default_text_segment_address + 4);
      uVar24 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);
      uVar25 = (uint)(pGVar14->max_page_size_).value;
      if (uVar24 == 0 && uVar25 == 0) {
        uVar25 = (uint)pTVar20->abi_pagesize;
        uVar24 = *(uint *)((int)&pTVar20->abi_pagesize + 4);
      }
      if (local_c0 < uVar24 || local_c0 - uVar24 < (uint)(local_c4 < uVar25)) {
        local_c4 = uVar25;
        local_c0 = uVar24;
      }
    }
  }
  else {
    local_c4 = (uint)(pGVar14->Ttext_).value;
    local_c0 = *(uint *)((int)&(pGVar14->Ttext_).value + 4);
  }
  off._0_4_ = 0;
  off._4_4_ = 0;
  if ((load_seg == (Output_segment *)0x0) &&
     (local_44 = (pointer)(this->special_output_list_).
                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                          ._M_impl._M_start,
     local_44 !=
     (pointer)(this->special_output_list_).
              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
              _M_finish)) {
    do {
      uVar24 = (*((Output_data *)*local_44)->_vptr_Output_data[3])((Output_data *)*local_44);
      if (extraout_EDX != 0 || uVar24 != 0) {
        bVar28 = (uint)off != 0;
        uVar25 = (uint)off - 1;
        off._0_4_ = -uVar24 & uVar25 + uVar24;
        off._4_4_ = -(extraout_EDX + (uint)(uVar24 != 0)) &
                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24);
      }
      pOVar21 = (Output_data *)*local_44;
      bVar1 = pOVar21->field_0x1c;
      if ((bVar1 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/output.h",0x142,"set_address");
      }
      *(undefined4 *)&pOVar21->address_ = 0;
      *(undefined4 *)((int)&pOVar21->address_ + 4) = 0;
      pOVar21->field_0x1c = bVar1 | 1;
      if ((bVar1 & 4) != 0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");
      }
      *(uint *)&pOVar21->offset_ = (uint)off;
      *(uint *)((int)&pOVar21->offset_ + 4) = off._4_4_;
      pOVar21->field_0x1c = bVar1 | 5;
      if ((bVar1 & 2) == 0) {
        (*pOVar21->_vptr_Output_data[0xe])(pOVar21);
        if ((pOVar21->field_0x1c & 2) == 0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");
        }
        pOVar21 = (Output_data *)*local_44;
        if ((pOVar21->field_0x1c & 2) == 0) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
        }
      }
      bVar28 = CARRY4((uint)off,(uint)pOVar21->data_size_);
      off._0_4_ = (uint)off + (int)pOVar21->data_size_;
      off._4_4_ = off._4_4_ + *(int *)((int)&pOVar21->data_size_ + 4) + (uint)bVar28;
      local_44 = local_44 + 1;
    } while ((pointer)(this->special_output_list_).
                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                      _M_impl._M_finish != local_44);
    increase_relro = this->increase_relro_;
    pGVar14 = parameters->options_;
    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {
LAB_0011314a:
      increase_relro = 0;
    }
    if (pGVar14 == (General_options *)0x0) {
LAB_0011413b:
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
    }
  }
  else {
    increase_relro = this->increase_relro_;
    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) goto LAB_0011314a;
  }
  bVar28 = (pGVar14->check_sections_).value;
  local_ac = *pshndx;
  local_44 = (this->segment_list_).
             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
             _M_impl._M_start;
  shndx_begin = local_ac;
  if (local_44 ==
      (this->segment_list_).
      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.
      _M_finish) {
    lVar8 = off;
    if (load_seg == (Output_segment *)0x0) goto LAB_00113d4d;
LAB_00113ce7:
    off._4_4_ = (uint)((ulonglong)lVar8 >> 0x20);
    off._0_4_ = (uint)lVar8;
    pTVar20 = target->pti_;
    if (pTVar20->isolate_execinstr != false) {
      pGVar14 = parameters->options_;
      if (pGVar14 == (General_options *)0x0) {
        off = lVar8;
                    /* WARNING: Subroutine does not return */
        Target::abi_pagesize(in_stack_ffffff14);
      }
      local_40 = *(int *)((int)&(pGVar14->max_page_size_).value + 4);
      local_44 = (pointer)(pGVar14->max_page_size_).value;
      if (local_40 == 0 && local_44 == (pointer)0x0) {
        local_40 = *(int *)((int)&pTVar20->abi_pagesize + 4);
        local_44 = (pointer)pTVar20->abi_pagesize;
      }
      uVar24 = (uint)off & -(int)local_44;
      uVar25 = off._4_4_ & -(local_40 + (uint)(local_44 != (pointer)0x0));
      if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {
        bVar28 = CARRY4(uVar24,(uint)local_44);
        uVar24 = uVar24 + (int)local_44;
        uVar25 = uVar25 + local_40 + (uint)bVar28;
      }
      ppOVar22 = (this->relax_output_list_).
                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl
                 ._M_start;
      off._0_4_ = uVar24;
      off._4_4_ = uVar25;
      if (ppOVar22 !=
          (this->relax_output_list_).
          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
          _M_finish) {
        do {
          pOVar21 = *ppOVar22;
          if (pOVar21 != (Output_data *)0x0) {
            (*pOVar21->_vptr_Output_data[1])(pOVar21);
          }
          ppOVar22 = ppOVar22 + 1;
        } while ((this->relax_output_list_).
                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl
                 ._M_finish != ppOVar22);
        ppOVar4 = (this->relax_output_list_).
                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                  _M_impl._M_start;
        if (ppOVar22 != ppOVar4) {
          (this->relax_output_list_).
          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.
          _M_finish = ppOVar4;
        }
      }
      local_44 = (this->segment_list_).
                 super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
                 _M_impl._M_start;
      pOVar15 = *local_44;
      while (pOVar15 != load_seg) {
        local_44 = local_44 + 1;
        if (pOVar15->type_ == 1) {
          uVar24 = (uint)pOVar15->vaddr_;
          iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);
          has_relro = false;
          uVar29 = pOVar15->memsz_;
          uVar10 = pOVar15->memsz_;
          iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);
          uVar30 = Output_segment::set_section_addresses
                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,
                              &off,&shndx_begin);
          if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),
                                 uVar24 + (int)uVar10)) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");
          }
        }
        pOVar15 = *local_44;
      }
      lVar8 = CONCAT44(off._4_4_,(uint)off);
      if (shndx_begin != local_ac) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/layout.cc",0x1009,"set_segment_offsets");
      }
    }
    off = lVar8;
    local_44 = (this->segment_list_).
               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
               _M_impl._M_finish;
  }
  else {
    local_4c = (Output_segment *)0x0;
    uVar29 = CONCAT44(local_c0,local_c4);
    do {
      pOVar15 = *local_44;
      pOVar2 = local_4c;
      if (pOVar15->type_ == 1) {
        bVar12 = target->pti_->isolate_execinstr;
        if (bVar12 == false) {
          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");
          }
LAB_00113530:
          load_seg = (Output_segment *)0x0;
        }
        else if (pOVar15 == load_seg) {
          if (off == 0) goto LAB_00113530;
          off = 0;
          local_ac = *pshndx;
        }
        bVar19 = (byte)pOVar15->field_0x19c >> 1;
        pGVar14 = parameters->options_;
        bVar1 = bVar19 & 1;
        if ((bVar19 & 1) == 0) {
          if (pGVar14 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
          bVar11 = (pGVar14->Ttext_).user_set_via_option;
          uVar10 = uVar29;
          lVar8 = off;
          if ((bVar11 == false) ||
             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&
              (((pOVar15->flags_ & 2) != 0 ||
               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {
            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;
            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {
              bVar12 = (pGVar14->Tdata_).user_set_via_option;
              bVar19 = (pGVar14->Tbss_).user_set_via_option;
              if (bVar12 == false) {
LAB_001139b0:
                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {
LAB_00113930:
                  pGVar14 = parameters->options_;
                  lVar8 = off;
                  bVar19 = bVar1;
                }
                else {
                  bVar12 = Output_segment::has_any_data_sections(*local_44);
                  pGVar14 = parameters->options_;
                  if (bVar12) goto LAB_00113231;
                  if (pGVar14 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
                  }
                  uVar10 = (pGVar14->Tbss_).value;
                  lVar8 = off;
                }
              }
              else {
                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;
                if ((bool)bVar19 != false) {
                  bVar11 = Output_segment::has_any_data_sections(pOVar15);
                  pGVar14 = parameters->options_;
                  if (!bVar11) {
                    if (pGVar14 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
                    }
                    bVar19 = (pGVar14->Tbss_).user_set_via_option;
                    goto LAB_001139b0;
                  }
                  if (pGVar14 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
                  }
                }
                uVar10 = (pGVar14->Tdata_).value;
                lVar8 = off;
                bVar19 = bVar12;
              }
            }
            else {
              uVar10 = (pGVar14->Trodata_segment_).value;
            }
          }
        }
        else {
          uVar29 = pOVar15->paddr_;
LAB_00113231:
          uVar10 = uVar29;
          lVar8 = off;
          bVar19 = bVar1;
          if (pGVar14 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
        }
        local_54 = (uint)(pGVar14->max_page_size_).value;
        local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);
        local_6c = (uint)(pGVar14->common_page_size_).value;
        local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4);
        if (local_50 == 0 && local_54 == 0) {
          pTVar20 = target->pti_;
          local_54 = (uint)pTVar20->abi_pagesize;
          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);
          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;
LAB_001135dc:
          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {
LAB_001132a7:
            local_6c = local_54;
            local_68 = local_50;
          }
        }
        else {
          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;
          pTVar20 = target->pti_;
LAB_00113289:
          local_6c = (uint)pTVar20->common_pagesize;
          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);
          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))
          goto LAB_001132a7;
        }
        lVar9 = CONCAT44(local_50,local_54);
        if ((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&
           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),
           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))
        {
          *(uint *)&pOVar15->min_p_align_ = local_54;
          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;
        }
        off = lVar8;
        if (bVar19 == 0) {
          uVar29 = Output_segment::maximum_alignment(*local_44);
          uVar25 = (uint)(uVar29 >> 0x20);
          uVar24 = (uint)uVar29;
          if ((uVar29 == 0) ||
             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {
            pOVar15 = *local_44;
            uVar30 = uVar10;
          }
          else {
            lVar6 = uVar29 + (uVar10 - 1);
            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),
                              (uint)lVar6 & -uVar24);
            pOVar15 = *local_44;
          }
          local_84 = (uint)uVar30;
          local_80 = (uint)(uVar30 >> 0x20);
          uVar7 = uVar30;
          if (pOVar15 != load_seg) {
            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);
            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {
              uVar7 = uVar30 + lVar9;
            }
            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,
                                   (uint)(uVar7 - uVar10) & local_54 - 1);
            goto LAB_00113314;
          }
          if (lVar8 != 0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");
          }
          pGVar14 = parameters->options_;
          if (pGVar14 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {
            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);
            uVar24 = (uint)target->pti_->rosegment_gap;
          }
          else {
            uVar24 = (uint)(pGVar14->rosegment_gap_).value;
            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);
          }
          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);
          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {
            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);
          }
          pOVar15 = load_seg;
          uVar30 = uVar7;
          if (local_50 != 0 || local_54 != 0) {
            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);
            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),
                             (uint)lVar6 & -local_54);
            uVar30 = uVar7;
          }
        }
        else {
          uVar30 = 0;
          uVar7 = uVar10;
LAB_00113314:
          pGVar14 = parameters->options_;
          if (pGVar14 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
          pOVar15 = *local_44;
        }
        local_80 = (uint)(uVar30 >> 0x20);
        local_84 = (uint)uVar30;
        local_70 = (uint)(uVar7 >> 0x20);
        local_74 = (uint)uVar7;
        if (((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) {
          uVar29 = Output_segment::maximum_alignment(pOVar15);
          uVar24 = (uint)(uVar29 >> 0x20);
          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {
            uVar29 = CONCAT44(local_50,local_54);
          }
          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |
                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;
          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);
          lVar6 = CONCAT44(uVar25,uVar24);
          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {
            lVar6 = uVar29 + lVar6;
          }
        }
        else {
          uVar29 = Output_segment::maximum_alignment(pOVar15);
          lVar6 = off;
          if (uVar29 != 0) {
            lVar6 = uVar29 + off + -1;
            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &
                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),
                             (uint)lVar6 & -(int)uVar29);
          }
        }
        has_relro = false;
        uVar24 = *pshndx;
        off = lVar6;
        uVar29 = Output_segment::set_section_addresses
                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx
                           );
        if (((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)) {
          bVar12 = Parameters::incremental(parameters);
          if (!bVar12) {
            uVar25 = local_6c - 1;
            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);
            uVar16 = local_6c - (uVar25 & local_84);
            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));
            uVar23 = uVar25 & (uint)uVar29;
            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;
            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {
              uVar18 = -(local_68 + (local_6c != 0));
              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||
                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&
                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),
                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {
                *pshndx = uVar24;
                if (local_68 != 0 || local_6c != 0) {
                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);
                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,
                                    -local_6c & (uint)lVar6);
                }
                uVar29 = Output_segment::maximum_alignment(*local_44);
                if (uVar29 != 0) {
                  lVar6 = uVar29 + uVar30 + -1;
                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &
                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),
                                    (uint)lVar6 & -(int)uVar29);
                }
                local_80 = (uint)(uVar30 >> 0x20);
                local_84 = (uint)uVar30;
                uVar24 = local_54 - 1;
                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);
                local_6c = local_84 & uVar24;
                local_74 = local_80 & uVar25;
                if (local_6c != 0 || local_74 != 0) {
                  lVar6 = uVar30 + lVar9;
                  uVar30 = uVar30 + lVar9;
                  local_6c = uVar24 & (uint)lVar6;
                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);
                }
                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),
                                         uVar24 & (uint)(uVar30 - uVar10));
                uVar24 = (uint)lVar8;
                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);
                local_dc = local_6c | -local_54 & uVar24;
                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;
                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {
                  bVar12 = CARRY4(local_dc,local_54);
                  local_dc = local_dc + local_54;
                  local_d8 = local_d8 + local_50 + (uint)bVar12;
                }
                off._0_4_ = local_dc;
                off._4_4_ = local_d8;
                increase_relro = this->increase_relro_;
                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {
                  increase_relro = 0;
                }
                has_relro = false;
                uVar29 = Output_segment::set_section_addresses
                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,
                                    &off,pshndx);
              }
            }
          }
        }
        pOVar2 = *local_44;
        if ((local_4c != (Output_segment *)0x0) && (bVar28 != false)) {
          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);
          uVar25 = (uint)pOVar2->paddr_;
          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);
          uVar17 = (uint)local_4c->paddr_;
          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");
          }
          uVar23 = uVar17 + (int)local_4c->memsz_;
          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +
                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);
          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {
            uVar10 = pOVar2->memsz_;
            uVar30 = pOVar2->memsz_;
            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);
            format = (char *)gettext(
                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"
                                    );
            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,
                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));
            pOVar2 = *local_44;
          }
        }
      }
      local_4c = pOVar2;
      local_44 = local_44 + 1;
    } while ((this->segment_list_).
             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
             _M_impl._M_finish != local_44);
    lVar8 = off;
    if (load_seg != (Output_segment *)0x0) goto LAB_00113ce7;
  }
  ppOVar27 = (this->segment_list_).
             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
             _M_impl._M_start;
  if (ppOVar27 != local_44) {
    do {
      EVar3 = (*ppOVar27)->type_;
      if ((EVar3 != 1) && (EVar3 != 0x6474e551)) {
        uVar24 = 0;
        if (EVar3 == 0x6474e552) {
          uVar24 = increase_relro;
        }
        Output_segment::set_offset(*ppOVar27,uVar24);
      }
      ppOVar27 = ppOVar27 + 1;
    } while ((this->segment_list_).
             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
             _M_impl._M_finish != ppOVar27);
  }
LAB_00113d4d:
  if (this->tls_segment_ != (Output_segment *)0x0) {
    Output_segment::set_tls_offsets(this->tls_segment_);
  }
  return off;
}



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

longlong FUN_00113020(uint param_1,int param_2,int param_3,int *param_4)

{
  char cVar1;
  byte bVar2;
  uint uVar3;
  int *piVar5;
  longlong lVar6;
  ulonglong uVar7;
  ulonglong uVar8;
  ulonglong uVar9;
  char cVar10;
  int iVar11;
  int iVar12;
  undefined4 uVar13;
  undefined *puVar14;
  undefined *puVar15;
  uint uVar16;
  uint extraout_EDX;
  byte bVar17;
  int iVar18;
  undefined **ppuVar19;
  int *piVar20;
  uint uVar21;
  undefined **ppuVar22;
  byte bVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  bool bVar28;
  longlong lVar29;
  ulonglong uVar30;
  longlong lVar31;
  longlong lVar32;
  undefined8 uVar33;
  uint local_dc;
  uint local_d8;
  undefined *local_c4;
  undefined *local_c0;
  int local_ac;
  undefined *local_84;
  undefined *local_80;
  uint local_74;
  uint local_70;
  uint local_6c;
  uint local_68;
  uint local_54;
  uint local_50;
  int local_4c;
  int *local_44;
  int local_40;
  char local_2d;
  undefined4 local_2c;
  int local_28;
  undefined8 local_24;
  uint uVar4;
  
  iVar12 = *(int *)(param_1 + 0x124);
  iVar18 = *(int *)(param_1 + 0x128);
  iVar11 = iVar18 - iVar12;
  if (iVar11 < 0x7ffffffd) {
    if (0 < iVar11) {
      local_44 = (int *)(iVar11 >> 2);
      goto LAB_00113091;
    }
  }
  else {
    local_44 = (int *)0x1fffffff;
LAB_00113091:
    do {
      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);
      if (iVar11 != 0) {
                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */
        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);
        goto LAB_001130c6;
      }
      local_44 = (int *)((int)local_44 >> 1);
    } while (local_44 != (int *)0x0);
  }
                    /* try { // try from 0011347c to 00113480 has its CatchHandler @ 0011423e */
  FUN_0011df20(iVar12,iVar18,param_1);
  iVar11 = 0;
LAB_001130c6:
  ppuVar19 = &__DT_PLTGOT;
  FUN_002481e0(iVar11,&DAT_00315a23);
  iVar12 = *(int *)(DAT_004144e8 + 8);
  ppuVar22 = &__DT_PLTGOT;
  if (iVar12 == 0) goto LAB_0011413b;
  if (*(char *)(iVar12 + 0x41b8) == '\0') {
    local_c4 = (undefined *)0x0;
    local_c0 = (undefined *)0x0;
    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {
      ppuVar19 = *(undefined ***)(param_2 + 4);
      local_c0 = ppuVar19[7];
      puVar15 = *(undefined **)(iVar12 + 0x521c);
      puVar14 = *(undefined **)(iVar12 + 0x5218);
      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {
        puVar14 = ppuVar19[8];
        puVar15 = ppuVar19[9];
      }
      local_c4 = ppuVar19[6];
      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)
         ) {
        local_c4 = puVar14;
        local_c0 = puVar15;
      }
    }
  }
  else {
    ppuVar19 = &__DT_PLTGOT;
    local_c4 = *(undefined **)(iVar12 + 0x41bc);
    local_c0 = *(undefined **)(iVar12 + 0x41c0);
  }
  local_24._0_4_ = (undefined *)0x0;
  local_24._4_4_ = (undefined *)0x0;
  if ((param_3 == 0) &&
     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {
    do {
      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);
      if (lVar32 != 0) {
        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)
                                  ,(undefined *)local_24 + -1);
        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);
        local_24._4_4_ =
             (undefined *)
             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &
             (uint)((ulonglong)lVar6 >> 0x20));
      }
      ppuVar19 = (undefined **)*local_44;
      bVar2 = *(byte *)(ppuVar19 + 7);
      if ((bVar2 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/output.h",0x142,"set_address");
      }
      ppuVar19[1] = (undefined *)0x0;
      ppuVar19[2] = (undefined *)0x0;
      *(byte *)(ppuVar19 + 7) = bVar2 | 1;
      if ((bVar2 & 4) != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");
      }
      ppuVar19[5] = (undefined *)local_24;
      ppuVar19[6] = local_24._4_4_;
      *(byte *)(ppuVar19 + 7) = bVar2 | 5;
      if ((bVar2 & 2) == 0) {
        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);
        if (((uint)ppuVar19[7] & 2) == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");
        }
        ppuVar19 = (undefined **)*local_44;
        if (((uint)ppuVar19[7] & 2) == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_000da200("../../gold/output.h",0xcf,"data_size");
        }
      }
      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);
      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];
      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;
      local_44 = local_44 + 1;
    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);
    local_2c = *(undefined4 *)(param_1 + 0x170);
    iVar12 = *(int *)(DAT_004144e8 + 8);
    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {
LAB_0011314a:
      local_2c = 0;
    }
    ppuVar22 = ppuVar19;
    if (iVar12 == 0) {
LAB_0011413b:
                    /* WARNING: Subroutine does not return */
      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);
    }
  }
  else {
    local_2c = *(undefined4 *)(param_1 + 0x170);
    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;
  }
  cVar1 = *(char *)(iVar12 + 0x91d);
  local_ac = *param_4;
  local_44 = *(int **)(param_1 + 0x124);
  local_28 = local_ac;
  if (local_44 == *(int **)(param_1 + 0x128)) {
    lVar32 = local_24;
    if (param_3 == 0) goto LAB_00113d4d;
LAB_00113ce7:
    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);
    local_24._0_4_ = (undefined *)lVar32;
    iVar12 = *(int *)(param_2 + 4);
    if (*(char *)(iVar12 + 0x30) != '\0') {
      iVar18 = *(int *)(DAT_004144e8 + 8);
      if (iVar18 == 0) {
        local_24 = lVar32;
                    /* WARNING: Subroutine does not return */
        FUN_00106b00();
      }
      local_40 = *(int *)(iVar18 + 0x521c);
      local_44 = *(int **)(iVar18 + 0x5218);
      if (local_40 == 0 && local_44 == (int *)0x0) {
        local_40 = *(int *)(iVar12 + 0x24);
        local_44 = *(int **)(iVar12 + 0x20);
      }
      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;
      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));
      if (uVar26 < local_24._4_4_ ||
          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {
        bVar28 = CARRY4(uVar25,(uint)local_44);
        uVar25 = uVar25 + (int)local_44;
        uVar26 = uVar26 + local_40 + (uint)bVar28;
      }
      piVar20 = *(int **)(param_1 + 0x154);
      local_24._0_4_ = (undefined *)uVar25;
      local_24._4_4_ = (undefined *)uVar26;
      if (piVar20 != *(int **)(param_1 + 0x158)) {
        do {
          piVar5 = (int *)*piVar20;
          if (piVar5 != (int *)0x0) {
            (**(code **)(*piVar5 + 4))(piVar5);
            uVar26 = extraout_EDX;
          }
          piVar20 = piVar20 + 1;
        } while (*(int **)(param_1 + 0x158) != piVar20);
        if (piVar20 != *(int **)(param_1 + 0x154)) {
          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);
          uVar26 = param_1;
        }
      }
      local_44 = *(int **)(param_1 + 0x124);
      iVar12 = *local_44;
      while (iVar12 != param_3) {
        local_44 = local_44 + 1;
        if (*(int *)(iVar12 + 0x194) == 1) {
          uVar26 = *(uint *)(iVar12 + 0x15c);
          iVar18 = *(int *)(iVar12 + 0x160);
          local_2d = '\0';
          uVar25 = *(uint *)(iVar12 + 0x16c);
          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);
          iVar11 = *(int *)(iVar12 + 0x170);
          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24
                                ,&local_28);
          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)
                   | (uint)uVar33 ^ uVar21;
          if (uVar26 != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);
          }
        }
        iVar12 = *local_44;
      }
      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);
      if (local_28 != local_ac) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);
      }
    }
    local_24 = lVar32;
    local_44 = *(int **)(param_1 + 0x128);
  }
  else {
    local_4c = 0;
    uVar30 = CONCAT44(local_c0,local_c4);
    do {
      iVar12 = *local_44;
      iVar18 = local_4c;
      if (*(int *)(iVar12 + 0x194) == 1) {
        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);
        if (cVar10 == '\0') {
          if ((iVar12 != param_3) && (param_3 != 0)) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");
          }
LAB_00113530:
          param_3 = 0;
        }
        else if (iVar12 == param_3) {
          if (local_24 == 0) goto LAB_00113530;
          local_24 = 0;
          local_ac = *param_4;
        }
        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;
        iVar18 = *(int *)(DAT_004144e8 + 8);
        bVar2 = bVar17 & 1;
        if ((bVar17 & 1) == 0) {
          if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/parameters.h",0x5c,"options");
          }
          bVar17 = *(byte *)(iVar18 + 0x41b8);
          uVar7 = uVar30;
          lVar32 = local_24;
          if ((bVar17 == 0) ||
             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&
              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||
               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {
            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {
              bVar17 = *(byte *)(iVar18 + 0x4170);
              bVar23 = *(byte *)(iVar18 + 0x4128);
              if (bVar17 == 0) {
LAB_001139b0:
                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {
LAB_00113930:
                  iVar18 = *(int *)(DAT_004144e8 + 8);
                  bVar23 = bVar2;
                  lVar32 = local_24;
                }
                else {
                  uVar13 = FUN_0015e510(*local_44);
                  iVar18 = *(int *)(DAT_004144e8 + 8);
                  if ((char)uVar13 != '\0') goto LAB_00113231;
                  if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);
                  }
                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);
                  lVar32 = local_24;
                }
              }
              else {
                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;
                if (bVar23 != 0) {
                  uVar13 = FUN_0015e510(iVar12);
                  iVar18 = *(int *)(DAT_004144e8 + 8);
                  if ((char)uVar13 == '\0') {
                    if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
                      FUN_000da200("../../gold/parameters.h",0x5c,"options");
                    }
                    bVar23 = *(byte *)(iVar18 + 0x4128);
                    goto LAB_001139b0;
                  }
                  if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);
                  }
                }
                bVar23 = bVar17;
                uVar7 = *(ulonglong *)(iVar18 + 0x4174);
                lVar32 = local_24;
              }
            }
            else {
              bVar23 = *(byte *)(iVar18 + 0x423c);
              uVar7 = *(ulonglong *)(iVar18 + 0x4240);
            }
          }
        }
        else {
          uVar30 = *(ulonglong *)(iVar12 + 0x164);
LAB_00113231:
          bVar23 = bVar2;
          uVar7 = uVar30;
          lVar32 = local_24;
          if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/parameters.h",0x5c,"options");
          }
        }
        local_54 = *(uint *)(iVar18 + 0x5218);
        local_50 = *(uint *)(iVar18 + 0x521c);
        local_6c = *(uint *)(iVar18 + 0x4e70);
        local_68 = *(uint *)(iVar18 + 0x4e74);
        if (local_50 == 0 && local_54 == 0) {
          iVar12 = *(int *)(param_2 + 4);
          local_54 = *(uint *)(iVar12 + 0x20);
          local_50 = *(uint *)(iVar12 + 0x24);
          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;
LAB_00113289:
          local_6c = *(uint *)(iVar12 + 0x28);
          local_68 = *(uint *)(iVar12 + 0x2c);
          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {
LAB_001132a7:
            local_6c = local_54;
            local_68 = local_50;
          }
        }
        else {
          if (local_68 == 0 && local_6c == 0) {
            iVar12 = *(int *)(param_2 + 4);
            goto LAB_00113289;
          }
LAB_001135dc:
          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))
          goto LAB_001132a7;
        }
        lVar6 = CONCAT44(local_50,local_54);
        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&
           (iVar12 = *local_44,
           *(uint *)(iVar12 + 0x180) < local_50 ||
           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {
          *(uint *)(iVar12 + 0x17c) = local_54;
          *(uint *)(iVar12 + 0x180) = local_50;
        }
        local_24 = lVar32;
        if (bVar23 == 0) {
          lVar31 = FUN_0015e5e0(*local_44);
          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);
          uVar25 = (uint)lVar31;
          uVar26 = uVar25 | uVar21;
          if ((uVar26 == 0) ||
             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {
            iVar12 = *local_44;
            uVar9 = uVar7;
          }
          else {
            lVar31 = lVar31 + (uVar7 - 1);
            uVar26 = (uint)lVar31 & -uVar25;
            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);
            iVar12 = *local_44;
          }
          local_84 = (undefined *)uVar9;
          local_80 = (undefined *)(uVar9 >> 0x20);
          uVar8 = uVar9;
          if (iVar12 != param_3) {
            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);
            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {
              uVar8 = uVar9 + lVar6;
            }
            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,
                                         (uint)(uVar8 - uVar7) & local_54 - 1);
            goto LAB_00113314;
          }
          if (lVar32 != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);
          }
          iVar12 = *(int *)(DAT_004144e8 + 8);
          if (iVar12 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);
          }
          if (*(char *)(iVar12 + 0x3344) == '\0') {
            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);
            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);
          }
          else {
            uVar26 = *(uint *)(iVar12 + 0x3348);
            iVar18 = *(int *)(iVar12 + 0x334c);
          }
          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;
          if (local_80 < puVar15 ||
              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {
            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);
          }
          iVar18 = param_3;
          uVar9 = uVar8;
          if (local_50 != 0 || local_54 != 0) {
            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);
            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),
                             (uint)lVar31 & -local_54);
            uVar9 = uVar8;
          }
        }
        else {
          uVar9 = 0;
          uVar8 = uVar7;
LAB_00113314:
          iVar12 = *(int *)(DAT_004144e8 + 8);
          if (iVar12 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/parameters.h",0x5c,"options");
          }
          iVar18 = *local_44;
        }
        local_80 = (undefined *)(uVar9 >> 0x20);
        local_84 = (undefined *)uVar9;
        local_70 = (uint)(uVar8 >> 0x20);
        local_74 = (uint)uVar8;
        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {
          lVar29 = FUN_0015e5e0(iVar18);
          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);
          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {
            lVar29 = lVar6;
          }
          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |
                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;
          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |
                   local_74 & (uint)(lVar29 + 0xffffffff);
          lVar31 = CONCAT44(uVar25,uVar26);
          if (uVar25 < local_24._4_4_ ||
              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {
            lVar31 = lVar29 + lVar31;
          }
        }
        else {
          lVar29 = FUN_0015e5e0(iVar18);
          lVar31 = local_24;
          if (lVar29 != 0) {
            lVar31 = lVar29 + local_24 + -1;
            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &
                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),
                              (uint)lVar31 & -(int)lVar29);
          }
        }
        local_2d = '\0';
        iVar12 = *param_4;
        local_24 = lVar31;
        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,
                              param_4);
        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {
          cVar10 = FUN_001a5170(DAT_004144e8);
          if (cVar10 == '\0') {
            uVar26 = local_6c - 1;
            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);
            uVar25 = local_6c - (uVar26 & (uint)local_84);
            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -
                     (uint)(local_6c < (uVar26 & (uint)local_84));
            uVar16 = uVar26 & (uint)uVar30;
            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;
            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {
              uVar27 = -(local_68 + (local_6c != 0));
              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||
                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&
                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),
                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {
                *param_4 = iVar12;
                if (local_68 != 0 || local_6c != 0) {
                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);
                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,
                                   -local_6c & (uint)lVar31);
                }
                lVar31 = FUN_0015e5e0(*local_44);
                if (lVar31 != 0) {
                  lVar29 = lVar31 + uVar9 + -1;
                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &
                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),
                                   (uint)lVar29 & -(int)lVar31);
                }
                local_80 = (undefined *)(uVar9 >> 0x20);
                local_84 = (undefined *)uVar9;
                uVar26 = local_54 - 1;
                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);
                local_6c = (uint)local_84 & uVar26;
                local_74 = (uint)local_80 & uVar25;
                if (local_6c != 0 || local_74 != 0) {
                  lVar31 = uVar9 + lVar6;
                  uVar9 = uVar9 + lVar6;
                  local_6c = uVar26 & (uint)lVar31;
                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);
                }
                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),
                                           uVar26 & (uint)(uVar9 - uVar7));
                uVar26 = (uint)lVar32;
                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);
                local_dc = local_6c | -local_54 & uVar26;
                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;
                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {
                  bVar28 = CARRY4(local_dc,local_54);
                  local_dc = local_dc + local_54;
                  local_d8 = local_d8 + local_50 + (uint)bVar28;
                }
                local_24._0_4_ = (undefined *)local_dc;
                local_24._4_4_ = (undefined *)local_d8;
                local_2c = *(undefined4 *)(param_1 + 0x170);
                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {
                  local_2c = 0;
                }
                local_2d = '\0';
                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,
                                      &local_24,param_4);
              }
            }
          }
        }
        iVar18 = *local_44;
        if ((local_4c != 0) && (cVar1 != '\0')) {
          uVar26 = *(uint *)(local_4c + 0x168);
          uVar25 = *(uint *)(iVar18 + 0x164);
          uVar21 = *(uint *)(iVar18 + 0x168);
          uVar16 = *(uint *)(local_4c + 0x164);
          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");
          }
          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);
          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +
                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));
          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {
            uVar3 = *(uint *)(iVar18 + 0x16c);
            uVar4 = *(uint *)(iVar18 + 0x16c);
            iVar12 = *(int *)(iVar18 + 0x170);
            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");
            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,
                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));
            iVar18 = *local_44;
          }
        }
      }
      local_4c = iVar18;
      local_44 = local_44 + 1;
    } while (*(int **)(param_1 + 0x128) != local_44);
    lVar32 = local_24;
    if (param_3 != 0) goto LAB_00113ce7;
  }
  piVar20 = *(int **)(param_1 + 0x124);
  if (piVar20 != local_44) {
    do {
      iVar12 = *(int *)(*piVar20 + 0x194);
      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {
        uVar13 = 0;
        if (iVar12 == 0x6474e552) {
          uVar13 = local_2c;
        }
        FUN_0015f160(*piVar20,uVar13);
      }
      piVar20 = piVar20 + 1;
    } while (*(int **)(param_1 + 0x128) != piVar20);
  }
LAB_00113d4d:
  if (*(int *)(param_1 + 0x164) != 0) {
    FUN_0015f8f0(*(int *)(param_1 + 0x164));
  }
  return local_24;
}


CALL 0x000b4846
ADD EAX,0x300fdb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xdc
MOV dword ptr [EBP + -0x44],EAX
MOV EDX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EDX + 0x124]
MOV EAX,dword ptr [EAX + 0x128]
MOV dword ptr [EBP + -0x58],EDX
MOV dword ptr [EBP + -0x50],EAX
SUB EAX,EDX
CMP EAX,0x7ffffffc
JG 0x00113070
MOV EDX,EAX
TEST EAX,EAX
JLE 0x0011345e
SAR EDX,0x2
JMP 0x00113075
MOV EDX,0x1fffffff
MOV EAX,dword ptr [EBP + -0x44]
MOV dword ptr [EBP + -0x40],EDX
LEA EDI,[EAX + 0xfff01a23]
JMP 0x00113091
SAR dword ptr [EBP + -0x40],0x1
JZ 0x00113470
MOV EAX,dword ptr [EBP + -0x40]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x44]
PUSH EDI
SHL EAX,0x2
PUSH EAX
CALL 0x00246610
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00113088
MOV ESI,EAX
MOV EAX,dword ptr [EBP + -0x40]
SUB ESP,0xc
PUSH dword ptr [EBP + 0x8]
PUSH EAX
PUSH ESI
PUSH dword ptr [EBP + -0x50]
PUSH dword ptr [EBP + -0x58]
CALL 0x0011e850
ADD ESP,0x20
SUB ESP,0x8
PUSH EDI
MOV EDI,dword ptr [EBP + -0x44]
PUSH ESI
MOV EBX,EDI
CALL 0x002481e0
LEA EAX,[EDI + 0x4e8]
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff7c],EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0011413b
CMP byte ptr [EAX + 0x41b8],0x0
JZ 0x00113490
MOV EDX,dword ptr [EAX + 0x41bc]
MOV ECX,dword ptr [EAX + 0x41c0]
MOV dword ptr [EBP + 0xffffff40],EDX
MOV dword ptr [EBP + 0xffffff44],ECX
MOV ECX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x20],0x0
MOV dword ptr [EBP + -0x1c],0x0
TEST ECX,ECX
JZ 0x00113d91
MOV EDX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EDX + 0x170]
MOV dword ptr [EBP + -0x28],EDX
MOV EDX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EDX + 0x4]
CMP byte ptr [EDX + 0xac],0x0
JZ 0x00113159
MOV dword ptr [EBP + -0x28],0x0
TEST EAX,EAX
JZ 0x0011413b
MOVZX EAX,byte ptr [EAX + 0x91d]
MOV EDX,dword ptr [EBP + 0x8]
MOV byte ptr [EBP + 0xffffff5f],AL
MOV EAX,dword ptr [EBP + 0x14]
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + 0xffffff58],EAX
MOV dword ptr [EBP + -0x24],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x124]
CMP EAX,dword ptr [EDX + 0x128]
JZ 0x001140a1
MOV EDX,dword ptr [EBP + 0xffffff40]
MOV ECX,dword ptr [EBP + 0xffffff44]
MOV dword ptr [EBP + -0x48],0x0
MOV dword ptr [EBP + -0x40],EAX
MOV dword ptr [EBP + 0xffffff78],EDX
LEA EDX,[EBP + -0x20]
MOV dword ptr [EBP + 0xffffff6c],EDX
LEA EDX,[EBP + -0x29]
MOV dword ptr [EBP + -0x78],ECX
MOV dword ptr [EBP + 0xffffff68],EDX
JMP 0x001131d6
MOV EDI,dword ptr [EBP + 0x8]
ADD dword ptr [EBP + -0x40],0x4
MOV EAX,dword ptr [EBP + -0x40]
CMP dword ptr [EDI + 0x128],EAX
JZ 0x00113ce0
MOV EAX,dword ptr [EBP + -0x40]
MOV EAX,dword ptr [EAX]
CMP dword ptr [EAX + 0x194],0x1
JNZ 0x001131c0
MOV EDI,dword ptr [EBP + 0xc]
MOV EDX,dword ptr [EDI + 0x4]
MOVZX ECX,byte ptr [EDX + 0x30]
TEST CL,CL
JZ 0x00113520
CMP EAX,dword ptr [EBP + 0x10]
JZ 0x00113940
MOVZX EBX,byte ptr [EAX + 0x19c]
MOV EDI,dword ptr [EBP + 0xffffff7c]
SHR BL,0x1
MOV EDX,dword ptr [EDI]
AND EBX,0x1
MOV EDX,dword ptr [EDX + 0x8]
MOV byte ptr [EBP + -0x58],BL
JZ 0x00113540
MOV ECX,dword ptr [EAX + 0x164]
MOV EBX,dword ptr [EAX + 0x168]
MOV dword ptr [EBP + -0x60],ECX
MOV dword ptr [EBP + -0x5c],EBX
MOV ECX,dword ptr [EBP + -0x20]
MOV EBX,dword ptr [EBP + -0x1c]
MOV dword ptr [EBP + 0xffffff70],ECX
MOV dword ptr [EBP + 0xffffff74],EBX
TEST EDX,EDX
JZ 0x001140ea
MOV ECX,dword ptr [EDX + 0x5218]
MOV EBX,dword ptr [EDX + 0x521c]
MOV EAX,dword ptr [EDX + 0x4e70]
MOV ESI,ECX
MOV EDI,EBX
MOV dword ptr [EBP + -0x4c],EBX
MOV EBX,ESI
MOV ESI,EDI
MOV dword ptr [EBP + -0x50],ECX
MOV ECX,dword ptr [EDX + 0x4e74]
OR ESI,EBX
JZ 0x001135c0
MOV EDI,ECX
OR EDI,EAX
JNZ 0x001135dc
MOV EAX,dword ptr [EBP + 0xc]
MOV EBX,dword ptr [EAX + 0x4]
MOV ECX,dword ptr [EBX + 0x28]
MOV ESI,dword ptr [EBP + -0x50]
MOV EDI,dword ptr [EBP + -0x4c]
MOV EBX,dword ptr [EBX + 0x2c]
CMP ESI,ECX
MOV dword ptr [EBP + -0x68],ECX
MOV EAX,EDI
MOV dword ptr [EBP + -0x64],EBX
SBB EAX,EBX
JNC 0x001132ad
MOV ECX,ESI
MOV EBX,EDI
MOV dword ptr [EBP + -0x68],ECX
MOV dword ptr [EBP + -0x64],EBX
CMP byte ptr [EDX + 0x24c1],0x0
JNZ 0x001132f0
CMP byte ptr [EDX + 0x253d],0x0
JNZ 0x001132f0
MOV EAX,dword ptr [EBP + -0x40]
MOV EBX,dword ptr [EBP + -0x4c]
MOV ECX,dword ptr [EBP + -0x50]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x180]
CMP dword ptr [EAX + 0x17c],ECX
SBB EDX,EBX
JNC 0x001132f0
MOV dword ptr [EAX + 0x17c],ECX
MOV dword ptr [EAX + 0x180],EBX
LEA ESI,[ESI]
LEA ESI,[ESI]
CMP byte ptr [EBP + -0x58],0x0
JZ 0x00113600
MOV EAX,dword ptr [EBP + -0x60]
MOV EDX,dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + -0x80],0x0
MOV dword ptr [EBP + -0x7c],0x0
MOV dword ptr [EBP + -0x70],EAX
MOV dword ptr [EBP + -0x6c],EDX
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV EAX,dword ptr [EAX]
MOV ESI,dword ptr [EAX + 0x8]
TEST ESI,ESI
JZ 0x001140b1
MOV EAX,dword ptr [EBP + -0x40]
MOV EAX,dword ptr [EAX]
CMP byte ptr [ESI + 0x24c1],0x0
JNZ 0x00113342
CMP byte ptr [ESI + 0x253d],0x0
JZ 0x00113830
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
PUSH EAX
CALL 0x0015e5e0
MOV EBX,dword ptr [EBP + -0x20]
MOV ECX,dword ptr [EBP + -0x1c]
ADD ESP,0x10
MOV EDI,EDX
OR EDI,EAX
MOV dword ptr [EBP + -0x78],EBX
MOV dword ptr [EBP + -0x74],ECX
JZ 0x00113382
MOV ESI,dword ptr [EBP + -0x78]
MOV EDI,dword ptr [EBP + -0x74]
ADD ESI,-0x1
ADC EDI,-0x1
ADD ESI,EAX
ADC EDI,EDX
NEG EAX
MOV EBX,ESI
ADC EDX,0x0
MOV ECX,EDI
AND EBX,EAX
NEG EDX
AND ECX,EDX
MOV dword ptr [EBP + -0x20],EBX
MOV dword ptr [EBP + -0x1c],ECX
MOV EAX,dword ptr [EBP + 0x14]
SUB ESP,0x8
LEA ESI,[EBP + -0x28]
MOV EBX,dword ptr [EBP + -0x44]
MOV byte ptr [EBP + -0x29],0x0
MOV EDI,dword ptr [EAX]
PUSH EAX
MOV EAX,dword ptr [EBP + -0x40]
PUSH dword ptr [EBP + 0xffffff6c]
PUSH dword ptr [EBP + 0xffffff68]
PUSH ESI
PUSH dword ptr [EBP + -0x6c]
PUSH dword ptr [EBP + -0x70]
PUSH 0x0
PUSH dword ptr [EBP + 0x8]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EAX]
CALL 0x001619e0
ADD ESP,0x30
CMP byte ptr [EBP + -0x58],0x0
MOV dword ptr [EBP + 0xffffff78],EAX
MOV dword ptr [EBP + -0x78],EDX
JNZ 0x001133f0
CMP byte ptr [EBP + -0x29],0x1
JZ 0x001133f0
MOV EDX,dword ptr [EBP + -0x80]
MOV ECX,dword ptr [EBP + -0x70]
MOV EBX,dword ptr [EBP + -0x6c]
MOV EAX,dword ptr [EBP + -0x7c]
XOR EDX,ECX
XOR EAX,EBX
OR EDX,EAX
JNZ 0x00113a18
MOV EAX,dword ptr [EBP + -0x40]
MOV EDX,dword ptr [EBP + -0x48]
MOV EAX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x00113456
CMP byte ptr [EBP + 0xffffff5f],0x0
JZ 0x00113456
MOV ECX,dword ptr [EDX + 0x168]
MOV EBX,dword ptr [EAX + 0x164]
MOV ESI,dword ptr [EAX + 0x168]
MOV EDX,dword ptr [EDX + 0x164]
MOV dword ptr [EBP + -0x50],EBX
CMP EBX,EDX
MOV EDI,ESI
MOV dword ptr [EBP + -0x4c],ESI
SBB EDI,ECX
JC 0x001140cc
MOV EBX,dword ptr [EBP + -0x48]
MOV ESI,EDX
MOV EDI,ECX
ADD ESI,dword ptr [EBX + 0x16c]
ADC EDI,dword ptr [EBX + 0x170]
MOV EBX,dword ptr [EBP + -0x4c]
CMP dword ptr [EBP + -0x50],ESI
MOV dword ptr [EBP + -0x58],ESI
MOV dword ptr [EBP + -0x54],EDI
SBB EBX,EDI
JC 0x001138d0
MOV dword ptr [EBP + -0x48],EAX
JMP 0x001131c0
MOV EAX,dword ptr [EBP + -0x44]
LEA EDI,[EAX + 0xfff01a23]
LEA ESI,[ESI]
NOP
SUB ESP,0x4
PUSH dword ptr [EBP + 0x8]
PUSH dword ptr [EBP + -0x50]
PUSH dword ptr [EBP + -0x58]
CALL 0x0011df20
ADD ESP,0x10
XOR ESI,ESI
JMP 0x001130c6
CMP byte ptr [EAX + 0x1a25],0x0
MOV dword ptr [EBP + 0xffffff40],0x0
MOV dword ptr [EBP + 0xffffff44],0x0
JNZ 0x00113116
CMP byte ptr [EAX + 0x2931],0x0
JNZ 0x00113116
MOV EDX,dword ptr [EBP + 0xc]
MOV EBX,dword ptr [EDX + 0x4]
MOV EDX,dword ptr [EBX + 0x18]
MOV ECX,dword ptr [EBX + 0x1c]
MOV dword ptr [EBP + -0x40],EDX
MOV EDX,dword ptr [EAX + 0x521c]
MOV dword ptr [EBP + -0x3c],ECX
MOV ECX,dword ptr [EAX + 0x5218]
MOV ESI,EDX
OR ESI,ECX
JNZ 0x001134e8
MOV ECX,dword ptr [EBX + 0x20]
MOV EDX,dword ptr [EBX + 0x24]
MOV ESI,dword ptr [EBP + -0x40]
MOV EDI,dword ptr [EBP + -0x3c]
CMP ESI,ECX
MOV dword ptr [EBP + 0xffffff40],ESI
MOV ESI,EDI
SBB ESI,EDX
MOV dword ptr [EBP + 0xffffff44],EDI
JNC 0x00113116
MOV dword ptr [EBP + 0xffffff40],ECX
MOV dword ptr [EBP + 0xffffff44],EDX
JMP 0x00113116
CMP EAX,dword ptr [EBP + 0x10]
JZ 0x00113530
MOV EDX,dword ptr [EBP + 0x10]
TEST EDX,EDX
JNZ 0x00114220
MOV dword ptr [EBP + 0x10],0x0
JMP 0x001131ff
TEST EDX,EDX
JZ 0x00114105
MOVZX EDI,byte ptr [EDX + 0x41b8]
MOV EBX,EDI
TEST BL,BL
JZ 0x001136d8
MOVZX ESI,byte ptr [EDX + 0x253d]
MOV EBX,ESI
TEST BL,BL
JNZ 0x00113970
MOV ESI,dword ptr [EAX + 0x198]
TEST ESI,0x2
JNZ 0x001136d8
AND ESI,0x1
JNZ 0x00113589
TEST CL,CL
JNZ 0x001136d8
MOV EAX,EDI
MOV byte ptr [EBP + -0x58],AL
NOP
MOV EAX,dword ptr [EBP + 0xffffff78]
MOV ECX,dword ptr [EBP + -0x20]
MOV EBX,dword ptr [EBP + -0x1c]
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,dword ptr [EBP + -0x78]
MOV dword ptr [EBP + 0xffffff70],ECX
MOV dword ptr [EBP + 0xffffff74],EBX
MOV dword ptr [EBP + -0x5c],EAX
JMP 0x0011324b
MOV EDI,dword ptr [EBP + 0xc]
MOV EBX,dword ptr [EDI + 0x4]
MOV ESI,dword ptr [EBX + 0x20]
MOV EDI,dword ptr [EBX + 0x24]
MOV dword ptr [EBP + -0x50],ESI
MOV ESI,ECX
OR ESI,EAX
MOV dword ptr [EBP + -0x4c],EDI
JZ 0x00113289
MOV dword ptr [EBP + -0x68],EAX
MOV EBX,dword ptr [EBP + -0x4c]
MOV dword ptr [EBP + -0x64],ECX
MOV ESI,dword ptr [EBP + -0x68]
MOV ECX,dword ptr [EBP + -0x50]
MOV EDI,dword ptr [EBP + -0x64]
MOV EAX,EBX
CMP ECX,ESI
SBB EAX,EDI
JNC 0x001132ad
JMP 0x001132a7
MOV EAX,dword ptr [EBP + -0x40]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
PUSH dword ptr [EAX]
CALL 0x0015e5e0
ADD ESP,0x10
MOV EDI,EAX
OR EDI,EDX
JZ 0x00113718
MOV ECX,dword ptr [EBP + -0x50]
MOV EBX,dword ptr [EBP + -0x4c]
CMP ECX,EAX
MOV ECX,EBX
SBB ECX,EDX
JNC 0x00113718
MOV ECX,dword ptr [EBP + -0x60]
MOV EBX,dword ptr [EBP + -0x5c]
ADD ECX,-0x1
ADC EBX,-0x1
ADD ECX,EAX
ADC EBX,EDX
NEG EAX
MOV EDI,ECX
ADC EDX,0x0
MOV ESI,EBX
AND EDI,EAX
MOV EAX,dword ptr [EBP + -0x40]
NEG EDX
MOV dword ptr [EBP + -0x80],EDI
AND ESI,EDX
MOV EDX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x7c],ESI
CMP dword ptr [EAX],EDX
JZ 0x00113732
MOV EAX,dword ptr [EBP + -0x50]
MOV ESI,dword ptr [EBP + -0x80]
MOV EDI,dword ptr [EBP + -0x7c]
MOV EDX,dword ptr [EBP + -0x4c]
ADD EAX,-0x1
MOV ECX,ESI
MOV dword ptr [EBP + -0x70],ESI
ADC EDX,-0x1
MOV EBX,EDI
AND ECX,EAX
MOV dword ptr [EBP + -0x6c],EDI
AND EBX,EDX
OR EBX,ECX
JZ 0x00113692
ADD ESI,dword ptr [EBP + -0x50]
ADC EDI,dword ptr [EBP + -0x4c]
MOV dword ptr [EBP + -0x70],ESI
MOV dword ptr [EBP + -0x6c],EDI
MOV ECX,dword ptr [EBP + -0x70]
SUB ECX,dword ptr [EBP + -0x60]
MOV EDI,ECX
MOV EBX,dword ptr [EBP + -0x6c]
SBB EBX,dword ptr [EBP + -0x5c]
AND EDI,EAX
MOV dword ptr [EBP + 0xffffff50],EDI
MOV EDI,EBX
MOV EAX,dword ptr [EBP + 0xffffff50]
AND EDI,EDX
ADD EAX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + 0xffffff54],EDI
MOV EDX,dword ptr [EBP + 0xffffff54]
ADC EDX,dword ptr [EBP + 0xffffff74]
MOV dword ptr [EBP + -0x20],EAX
MOV dword ptr [EBP + -0x1c],EDX
JMP 0x00113314
MOVZX ECX,byte ptr [EDX + 0x423c]
TEST CL,CL
JZ 0x001137e0
TEST byte ptr [EAX + 0x198],0x3
JNZ 0x001137e0
MOV EAX,dword ptr [EDX + 0x4240]
MOV byte ptr [EBP + -0x58],CL
MOV dword ptr [EBP + 0xffffff78],EAX
MOV EAX,dword ptr [EDX + 0x4244]
MOV dword ptr [EBP + -0x78],EAX
JMP 0x00113590
MOV EAX,dword ptr [EBP + -0x60]
MOV EDX,dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + -0x80],EAX
MOV EAX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x7c],EDX
MOV EDX,dword ptr [EBP + 0x10]
CMP dword ptr [EAX],EDX
JNZ 0x00113662
MOV EDX,dword ptr [EBP + 0xffffff70]
MOV ECX,dword ptr [EBP + 0xffffff74]
MOV EAX,EDX
MOV EDX,ECX
OR EDX,EAX
JNZ 0x00114154
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV EAX,dword ptr [EAX]
MOV ESI,dword ptr [EAX + 0x8]
TEST ESI,ESI
JZ 0x00114189
CMP byte ptr [ESI + 0x3344],0x0
JZ 0x00113d80
MOV EAX,dword ptr [ESI + 0x3348]
MOV EDX,dword ptr [ESI + 0x334c]
MOV ECX,dword ptr [EBP + -0x80]
MOV EBX,dword ptr [EBP + -0x7c]
ADD EAX,dword ptr [EBP + 0xffffff40]
ADC EDX,dword ptr [EBP + 0xffffff44]
MOV EDI,EBX
CMP ECX,EAX
SBB EDI,EDX
JNC 0x00113796
MOV dword ptr [EBP + -0x80],EAX
MOV dword ptr [EBP + -0x7c],EDX
MOV EBX,dword ptr [EBP + -0x4c]
MOV ECX,dword ptr [EBP + -0x50]
MOV EDX,EBX
MOV EAX,ECX
OR EDX,ECX
JZ 0x001137c7
MOV EDX,EBX
ADD EAX,-0x1
ADC EDX,-0x1
ADD EAX,dword ptr [EBP + -0x80]
ADC EDX,dword ptr [EBP + -0x7c]
NEG ECX
ADC EBX,0x0
MOV EDI,EAX
MOV EAX,EDX
NEG EBX
AND EDI,ECX
AND EAX,EBX
MOV dword ptr [EBP + -0x80],EDI
MOV dword ptr [EBP + -0x7c],EAX
MOV EDX,dword ptr [EBP + -0x80]
MOV ECX,dword ptr [EBP + -0x7c]
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x70],EDX
MOV dword ptr [EBP + -0x6c],ECX
JMP 0x0011332c
MOVZX ECX,byte ptr [EDX + 0x4170]
MOVZX ESI,byte ptr [EDX + 0x4128]
TEST CL,CL
JZ 0x001139b0
TEST byte ptr [EAX + 0x198],0x2
JZ 0x00113930
MOV EBX,ESI
TEST BL,BL
JNZ 0x00113978
MOV EAX,dword ptr [EDX + 0x4174]
MOV byte ptr [EBP + -0x58],CL
MOV dword ptr [EBP + 0xffffff78],EAX
MOV EAX,dword ptr [EDX + 0x4178]
MOV dword ptr [EBP + -0x78],EAX
JMP 0x00113590
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
PUSH EAX
CALL 0x0015e5e0
MOV ECX,dword ptr [EBP + -0x50]
MOV EBX,dword ptr [EBP + -0x4c]
ADD ESP,0x10
MOV EDI,EDX
CMP EAX,ECX
SBB EDI,EBX
JNC 0x00113851
MOV EAX,ECX
MOV EDX,EBX
MOV ECX,EAX
MOV EBX,EDX
MOV ESI,dword ptr [EBP + -0x20]
MOV EDI,dword ptr [EBP + -0x1c]
NEG ECX
ADC EBX,0x0
AND ESI,ECX
MOV ECX,EAX
NEG EBX
AND EDI,EBX
ADD ECX,-0x1
MOV EBX,EDX
ADC EBX,-0x1
MOV dword ptr [EBP + -0x78],ECX
MOV dword ptr [EBP + -0x74],EBX
MOV EBX,dword ptr [EBP + -0x70]
AND EBX,ECX
MOV ECX,EBX
MOV EBX,dword ptr [EBP + -0x74]
AND EBX,dword ptr [EBP + -0x6c]
OR EDI,EBX
OR ESI,ECX
MOV dword ptr [EBP + 0xffffff64],EDI
MOV EBX,dword ptr [EBP + 0xffffff64]
MOV dword ptr [EBP + 0xffffff60],ESI
MOV ECX,dword ptr [EBP + 0xffffff60]
CMP ECX,dword ptr [EBP + -0x20]
MOV ECX,EBX
SBB ECX,dword ptr [EBP + -0x1c]
JNC 0x001138b5
ADD dword ptr [EBP + 0xffffff60],EAX
ADC dword ptr [EBP + 0xffffff64],EDX
MOV EAX,dword ptr [EBP + 0xffffff60]
MOV EDX,dword ptr [EBP + 0xffffff64]
MOV dword ptr [EBP + -0x20],EAX
MOV dword ptr [EBP + -0x1c],EDX
JMP 0x00113388
MOV ESI,dword ptr [EBP + -0x50]
MOV EDI,dword ptr [EBP + -0x4c]
MOV dword ptr [EBP + -0x60],EDX
MOV EDX,dword ptr [EBP + -0x44]
ADD ESI,dword ptr [EAX + 0x16c]
MOV dword ptr [EBP + -0x5c],ECX
ADC EDI,dword ptr [EAX + 0x170]
SUB ESP,0xc
LEA EAX,[EDX + 0xffee9f54]
MOV EBX,EDX
PUSH EAX
CALL 0x0002c440
MOV EDX,dword ptr [EBP + -0x60]
MOV ECX,dword ptr [EBP + -0x5c]
MOV dword ptr [ESP],EDI
PUSH ESI
MOV EBX,dword ptr [EBP + -0x44]
PUSH dword ptr [EBP + -0x4c]
PUSH dword ptr [EBP + -0x50]
PUSH dword ptr [EBP + -0x54]
PUSH dword ptr [EBP + -0x58]
PUSH ECX
PUSH EDX
PUSH EAX
CALL 0x000d1330
MOV EAX,dword ptr [EBP + -0x40]
ADD ESP,0x30
MOV EAX,dword ptr [EAX]
JMP 0x00113456
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x8]
JMP 0x00113590
MOV EDX,dword ptr [EBP + -0x1c]
OR EDX,dword ptr [EBP + -0x20]
JZ 0x00113530
MOV EDX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + -0x20],0x0
MOV dword ptr [EBP + -0x1c],0x0
MOV EDX,dword ptr [EDX]
MOV dword ptr [EBP + 0xffffff58],EDX
JMP 0x001131ff
MOV byte ptr [EBP + -0x58],BL
JMP 0x00113590
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
MOV byte ptr [EBP + -0x50],CL
PUSH EAX
CALL 0x0015e510
MOV EDX,dword ptr [EBP + 0xffffff7c]
ADD ESP,0x10
MOV EDX,dword ptr [EDX]
MOV EDX,dword ptr [EDX + 0x8]
TEST AL,AL
JNZ 0x00114068
TEST EDX,EDX
JZ 0x00114120
MOVZX ESI,byte ptr [EDX + 0x4128]
LEA ESI,[ESI]
MOV EAX,ESI
TEST AL,AL
JZ 0x00113930
MOV EAX,dword ptr [EBP + -0x40]
MOV EAX,dword ptr [EAX]
TEST byte ptr [EAX + 0x198],0x2
JZ 0x00113930
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
PUSH EAX
CALL 0x0015e510
MOV EDX,dword ptr [EBP + 0xffffff7c]
ADD ESP,0x10
MOV EDX,dword ptr [EDX]
MOV EDX,dword ptr [EDX + 0x8]
TEST AL,AL
JNZ 0x00113eb5
TEST EDX,EDX
JZ 0x00114170
MOV EAX,dword ptr [EDX + 0x412c]
MOV dword ptr [EBP + 0xffffff78],EAX
MOV EAX,dword ptr [EDX + 0x4130]
MOV dword ptr [EBP + -0x78],EAX
MOV EAX,ESI
MOV byte ptr [EBP + -0x58],AL
JMP 0x00113590
MOV EAX,dword ptr [EBP + 0xffffff7c]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
PUSH dword ptr [EAX]
CALL 0x001a5170
ADD ESP,0x10
TEST AL,AL
JNZ 0x001133f0
MOV EAX,dword ptr [EBP + -0x68]
MOV EDX,dword ptr [EBP + -0x64]
MOV EBX,dword ptr [EBP + -0x64]
ADD EAX,-0x1
MOV dword ptr [EBP + -0x58],EAX
MOV EAX,dword ptr [EBP + -0x80]
ADC EDX,-0x1
MOV ECX,dword ptr [EBP + -0x58]
MOV dword ptr [EBP + -0x54],EDX
MOV EDX,dword ptr [EBP + -0x7c]
AND ECX,EAX
MOV dword ptr [EBP + 0xffffff38],ECX
MOV ECX,dword ptr [EBP + -0x54]
AND ECX,EDX
MOV EDX,dword ptr [EBP + -0x58]
MOV dword ptr [EBP + 0xffffff3c],ECX
MOV ECX,dword ptr [EBP + -0x68]
SUB ECX,dword ptr [EBP + 0xffffff38]
SBB EBX,dword ptr [EBP + 0xffffff3c]
MOV dword ptr [EBP + -0x6c],EBX
MOV EBX,dword ptr [EBP + 0xffffff78]
MOV dword ptr [EBP + -0x70],ECX
AND EDX,EBX
MOV dword ptr [EBP + 0xffffff48],EDX
MOV EDX,dword ptr [EBP + -0x78]
AND EDX,dword ptr [EBP + -0x54]
MOV dword ptr [EBP + 0xffffff4c],EDX
MOV EDX,dword ptr [EBP + -0x70]
OR EDX,dword ptr [EBP + -0x6c]
JZ 0x001133f0
MOV EDX,dword ptr [EBP + 0xffffff48]
MOV EAX,EDX
OR EAX,dword ptr [EBP + 0xffffff4c]
JZ 0x001133f0
MOV EAX,dword ptr [EBP + -0x68]
MOV EDX,dword ptr [EBP + -0x64]
NEG EAX
ADC EDX,0x0
MOV dword ptr [EBP + 0xffffff30],EAX
MOV EAX,dword ptr [EBP + -0x78]
NEG EDX
XOR EAX,dword ptr [EBP + -0x7c]
MOV dword ptr [EBP + 0xffffff34],EDX
MOV EDX,dword ptr [EBP + -0x80]
MOV ECX,EAX
MOV EAX,dword ptr [EBP + 0xffffff30]
AND ECX,dword ptr [EBP + 0xffffff34]
XOR EBX,EDX
AND EBX,EAX
OR ECX,EBX
JZ 0x001133f0
MOV EAX,dword ptr [EBP + -0x68]
MOV EDX,dword ptr [EBP + -0x64]
MOV ECX,dword ptr [EBP + -0x70]
ADD ECX,dword ptr [EBP + 0xffffff48]
MOV EBX,dword ptr [EBP + -0x6c]
ADC EBX,dword ptr [EBP + 0xffffff4c]
CMP EAX,ECX
MOV EAX,EDX
SBB EAX,EBX
JC 0x001133f0
MOV EBX,dword ptr [EBP + 0x14]
MOV EDX,dword ptr [EBP + -0x64]
MOV EAX,dword ptr [EBP + -0x68]
MOV dword ptr [EBX],EDI
MOV EBX,EDX
OR EBX,EAX
JZ 0x00113b50
MOV ECX,dword ptr [EBP + 0xffffff30]
MOV EAX,dword ptr [EBP + -0x58]
MOV EDX,dword ptr [EBP + -0x54]
ADD EAX,dword ptr [EBP + -0x80]
MOV EBX,dword ptr [EBP + 0xffffff34]
ADC EDX,dword ptr [EBP + -0x7c]
MOV EDI,ECX
AND EDI,EAX
MOV EAX,EDX
AND EAX,EBX
MOV dword ptr [EBP + -0x80],EDI
MOV dword ptr [EBP + -0x7c],EAX
MOV EAX,dword ptr [EBP + -0x40]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
PUSH dword ptr [EAX]
CALL 0x0015e5e0
ADD ESP,0x10
MOV EBX,EDX
OR EBX,EAX
JZ 0x00113b8e
MOV ECX,dword ptr [EBP + -0x80]
MOV EBX,dword ptr [EBP + -0x7c]
ADD ECX,EAX
ADC EBX,EDX
ADD ECX,-0x1
ADC EBX,-0x1
NEG EAX
MOV EDI,ECX
ADC EDX,0x0
MOV ECX,EBX
AND EDI,EAX
NEG EDX
MOV dword ptr [EBP + -0x80],EDI
AND ECX,EDX
MOV dword ptr [EBP + -0x7c],ECX
MOV EAX,dword ptr [EBP + -0x50]
MOV EDX,dword ptr [EBP + -0x4c]
MOV EDI,dword ptr [EBP + -0x80]
MOV ECX,EAX
MOV EBX,EDX
ADD ECX,-0x1
ADC EBX,-0x1
MOV dword ptr [EBP + -0x58],ECX
AND EDI,dword ptr [EBP + -0x58]
MOV ECX,EDI
MOV dword ptr [EBP + -0x54],EBX
MOV dword ptr [EBP + -0x68],EDI
MOV EDI,dword ptr [EBP + -0x7c]
AND EDI,dword ptr [EBP + -0x54]
OR ECX,EDI
MOV dword ptr [EBP + -0x70],EDI
JZ 0x00113bd8
ADD dword ptr [EBP + -0x80],EAX
MOV ECX,dword ptr [EBP + -0x58]
ADC dword ptr [EBP + -0x7c],EDX
MOV EAX,dword ptr [EBP + -0x80]
MOV EDX,dword ptr [EBP + -0x7c]
MOV EDI,dword ptr [EBP + -0x54]
AND ECX,EAX
AND EDI,EDX
MOV dword ptr [EBP + -0x68],ECX
MOV dword ptr [EBP + -0x70],EDI
MOV ECX,dword ptr [EBP + -0x58]
MOV EAX,dword ptr [EBP + -0x80]
SUB EAX,dword ptr [EBP + -0x60]
MOV EDX,dword ptr [EBP + -0x7c]
SBB EDX,dword ptr [EBP + -0x5c]
AND ECX,EAX
MOV EAX,dword ptr [EBP + -0x54]
MOV dword ptr [EBP + 0xffffff20],ECX
MOV EBX,dword ptr [EBP + 0xffffff74]
AND EAX,EDX
MOV EDX,dword ptr [EBP + -0x4c]
MOV ECX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + 0xffffff24],EAX
MOV EAX,dword ptr [EBP + -0x50]
ADD ECX,dword ptr [EBP + 0xffffff20]
ADC EBX,dword ptr [EBP + 0xffffff24]
NEG EAX
ADC EDX,0x0
MOV EDI,EAX
NEG EDX
AND EDI,ECX
MOV EAX,EDX
MOV EDX,dword ptr [EBP + -0x68]
AND EAX,EBX
OR EDX,EDI
MOV dword ptr [EBP + 0xffffff28],EDX
MOV EDX,dword ptr [EBP + -0x70]
OR EDX,EAX
MOV EAX,dword ptr [EBP + 0xffffff28]
MOV dword ptr [EBP + 0xffffff2c],EDX
MOV EDX,dword ptr [EBP + 0xffffff2c]
CMP EAX,ECX
SBB EDX,EBX
JNC 0x00113c61
MOV EAX,dword ptr [EBP + -0x50]
MOV EDX,dword ptr [EBP + -0x4c]
ADD dword ptr [EBP + 0xffffff28],EAX
ADC dword ptr [EBP + 0xffffff2c],EDX
MOV EAX,dword ptr [EBP + 0xffffff28]
MOV EDX,dword ptr [EBP + 0xffffff2c]
MOV dword ptr [EBP + -0x20],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x1c],EDX
MOV EAX,dword ptr [EAX + 0x170]
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x4]
CMP byte ptr [EAX + 0xac],0x0
JZ 0x00113c95
MOV dword ptr [EBP + -0x28],0x0
MOV EAX,dword ptr [EBP + -0x40]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x44]
PUSH dword ptr [EBP + 0x14]
PUSH dword ptr [EBP + 0xffffff6c]
PUSH dword ptr [EBP + 0xffffff68]
PUSH ESI
PUSH dword ptr [EBP + -0x7c]
PUSH dword ptr [EBP + -0x80]
PUSH 0x1
PUSH dword ptr [EBP + 0x8]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EAX]
MOV byte ptr [EBP + -0x29],0x0
CALL 0x001619e0
ADD ESP,0x30
MOV dword ptr [EBP + 0xffffff78],EAX
MOV dword ptr [EBP + -0x78],EDX
JMP 0x001133f0
MOV EBX,dword ptr [EBP + 0x10]
TEST EBX,EBX
JZ 0x00113d00
MOV EAX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX + 0x4]
CMP byte ptr [EAX + 0x30],0x0
JNZ 0x00113ec9
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x128]
MOV EDX,dword ptr [EBP + 0x8]
XOR ESI,ESI
MOV EDI,dword ptr [EDX + 0x124]
CMP EDI,EAX
JZ 0x00113d4d
NOP
MOV EDX,dword ptr [EDI]
MOV EAX,dword ptr [EDX + 0x194]
CMP EAX,0x1
JZ 0x00113d3f
CMP EAX,0x6474e551
JZ 0x00113d3f
CMP EAX,0x6474e552
MOV EAX,ESI
CMOVZ EAX,dword ptr [EBP + -0x28]
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x44]
PUSH EAX
PUSH EDX
CALL 0x0015f160
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x8]
ADD EDI,0x4
CMP dword ptr [EAX + 0x128],EDI
JNZ 0x00113d10
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x164]
TEST EAX,EAX
JZ 0x00113d69
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x44]
PUSH EAX
CALL 0x0015f8f0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x20]
MOV EDX,dword ptr [EBP + -0x1c]
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX + 0x4]
MOV EDX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x34]
JMP 0x00113776
MOV EDX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EDX + 0x148]
CMP EDX,dword ptr [ESI + 0x14c]
JZ 0x0011312f
MOV dword ptr [EBP + -0x40],EDX
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + -0x40]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX]
PUSH EAX
CALL dword ptr [EDX + 0xc]
MOV ESI,dword ptr [EBP + -0x20]
MOV EDI,dword ptr [EBP + -0x1c]
MOV EBX,EDX
ADD ESP,0x10
OR EBX,EAX
JZ 0x00113df6
MOV ECX,ESI
MOV EBX,EDI
ADD ECX,-0x1
ADC EBX,-0x1
ADD ECX,EAX
ADC EBX,EDX
NEG EAX
MOV dword ptr [EBP + -0x50],EAX
MOV EAX,dword ptr [EBP + -0x50]
ADC EDX,0x0
NEG EDX
AND EAX,ECX
MOV dword ptr [EBP + -0x4c],EDX
MOV ESI,EAX
MOV EAX,dword ptr [EBP + -0x4c]
AND EAX,EBX
MOV EDI,EAX
MOV EAX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x20],ESI
MOV dword ptr [EBP + -0x1c],EDI
MOV EBX,dword ptr [EAX]
MOVZX EAX,byte ptr [EBX + 0x1c]
TEST AL,0x1
JNZ 0x001141a2
MOV EDX,EAX
MOV dword ptr [EBX + 0x4],0x0
OR EDX,0x1
MOV dword ptr [EBX + 0x8],0x0
MOV byte ptr [EBX + 0x1c],DL
AND EDX,0x4
JNZ 0x001141c0
OR EAX,0x5
MOV dword ptr [EBX + 0x14],ESI
MOV dword ptr [EBX + 0x18],EDI
MOV byte ptr [EBX + 0x1c],AL
TEST AL,0x2
JNZ 0x00113e67
SUB ESP,0xc
MOV EAX,dword ptr [EBX]
PUSH EBX
CALL dword ptr [EAX + 0x38]
ADD ESP,0x10
TEST byte ptr [EBX + 0x1c],0x2
JZ 0x001141de
MOV EAX,dword ptr [EBP + -0x40]
MOV EBX,dword ptr [EAX]
TEST byte ptr [EBX + 0x1c],0x2
JZ 0x001141fc
MOV ESI,dword ptr [EBP + -0x20]
MOV EDI,dword ptr [EBP + -0x1c]
MOV EDX,dword ptr [EBP + 0x8]
ADD ESI,dword ptr [EBX + 0xc]
ADC EDI,dword ptr [EBX + 0x10]
MOV dword ptr [EBP + -0x20],ESI
ADD dword ptr [EBP + -0x40],0x4
MOV EAX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x1c],EDI
CMP dword ptr [EDX + 0x14c],EAX
JNZ 0x00113db0
MOV EDX,dword ptr [EDX + 0x170]
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EBP + -0x28],EDX
MOV EDX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EDX + 0x4]
MOV EAX,dword ptr [EAX + 0x8]
CMP byte ptr [EDX + 0xac],0x0
JZ 0x00113151
JMP 0x0011314a
MOV EAX,dword ptr [EBP + 0xffffff78]
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,dword ptr [EBP + -0x78]
MOV dword ptr [EBP + -0x5c],EAX
JMP 0x00113231
MOV EDX,dword ptr [EBP + 0xffffff7c]
MOV EDX,dword ptr [EDX]
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JZ 0x0011421a
MOV ECX,dword ptr [EDX + 0x521c]
MOV EDX,dword ptr [EDX + 0x5218]
MOV dword ptr [EBP + -0x3c],ECX
OR ECX,EDX
MOV dword ptr [EBP + -0x40],EDX
JZ 0x00114090
MOV ECX,dword ptr [EBP + -0x40]
MOV EBX,dword ptr [EBP + -0x3c]
MOV ESI,dword ptr [EBP + -0x20]
NEG ECX
ADC EBX,0x0
AND ESI,ECX
MOV EAX,ESI
MOV ESI,dword ptr [EBP + -0x1c]
NEG EBX
AND ESI,EBX
CMP EAX,dword ptr [EBP + -0x20]
MOV EDX,ESI
SBB ESI,dword ptr [EBP + -0x1c]
JNC 0x00113f1f
ADD EAX,dword ptr [EBP + -0x40]
ADC EDX,dword ptr [EBP + -0x3c]
MOV dword ptr [EBP + -0x20],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x1c],EDX
MOV EBX,dword ptr [EAX + 0x154]
CMP EBX,dword ptr [EAX + 0x158]
JZ 0x00113f73
MOV ESI,EAX
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EBX]
TEST EAX,EAX
JZ 0x00113f52
SUB ESP,0xc
MOV EDX,dword ptr [EAX]
PUSH EAX
CALL dword ptr [EDX + 0x4]
ADD ESP,0x10
ADD EBX,0x4
CMP dword ptr [ESI + 0x158],EBX
JNZ 0x00113f40
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x154]
CMP EBX,EAX
JZ 0x00113f73
MOV EDX,dword ptr [EBP + 0x8]
MOV dword ptr [EDX + 0x158],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EAX + 0x124]
LEA EAX,[EBP + -0x24]
MOV dword ptr [EBP + -0x58],EAX
LEA EAX,[EBP + -0x20]
MOV ECX,dword ptr [ESI]
ADD ESI,0x4
CMP ECX,dword ptr [EBP + 0x10]
JZ 0x00114038
MOV dword ptr [EBP + -0x40],ESI
MOV EDI,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x60],EAX
JMP 0x00113fb2
ADD dword ptr [EBP + -0x40],0x4
MOV EAX,dword ptr [EBP + -0x40]
MOV ECX,dword ptr [EAX + -0x4]
CMP ECX,EDI
JZ 0x00114038
CMP dword ptr [ECX + 0x194],0x1
JNZ 0x00113fa0
MOV EAX,dword ptr [ECX + 0x15c]
MOV EDX,dword ptr [ECX + 0x160]
MOV byte ptr [EBP + -0x29],0x0
MOV EBX,EAX
ADD EBX,dword ptr [ECX + 0x16c]
MOV ESI,EDX
ADC ESI,dword ptr [ECX + 0x170]
MOV dword ptr [EBP + -0x50],EBX
SUB ESP,0x8
LEA EBX,[EBP + -0x29]
PUSH dword ptr [EBP + -0x58]
PUSH dword ptr [EBP + -0x60]
PUSH EBX
LEA EBX,[EBP + -0x28]
PUSH EBX
MOV EBX,dword ptr [EBP + -0x44]
PUSH EDX
PUSH EAX
PUSH 0x1
PUSH dword ptr [EBP + 0x8]
PUSH dword ptr [EBP + 0xc]
PUSH ECX
MOV dword ptr [EBP + -0x4c],ESI
CALL 0x001619e0
MOV ECX,dword ptr [EBP + -0x50]
MOV EBX,dword ptr [EBP + -0x4c]
ADD ESP,0x30
XOR EAX,ECX
XOR EDX,EBX
OR EDX,EAX
JZ 0x00113fa0
MOV EBX,dword ptr [EBP + -0x44]
PUSH ECX
LEA EAX,[EBX + 0xffeea568]
PUSH EAX
LEA EAX,[EBX + 0xffee933e]
PUSH 0x1005
PUSH EAX
CALL 0x000da200
MOV EAX,dword ptr [EBP + 0xffffff58]
CMP dword ptr [EBP + -0x24],EAX
JZ 0x00113cf7
MOV EBX,dword ptr [EBP + -0x44]
PUSH EDX
LEA EAX,[EBX + 0xffeea568]
PUSH EAX
LEA EAX,[EBX + 0xffee933e]
PUSH 0x1009
PUSH EAX
CALL 0x000da200
TEST EDX,EDX
MOVZX ECX,byte ptr [EBP + -0x50]
JNZ 0x0011380d
MOV EBX,dword ptr [EBP + -0x44]
PUSH EAX
LEA EAX,[EBX + 0xffeea868]
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
MOV EDX,dword ptr [EAX + 0x24]
MOV EAX,dword ptr [EAX + 0x20]
MOV dword ptr [EBP + -0x3c],EDX
MOV dword ptr [EBP + -0x40],EAX
JMP 0x00113ef6
MOV EAX,dword ptr [EBP + 0x10]
TEST EAX,EAX
JNZ 0x00113ce7
JMP 0x00113d4d
MOV EBX,dword ptr [EBP + -0x44]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeea868]
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + -0x44]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeea568]
PUSH EAX
LEA EAX,[EBX + 0xffee933e]
PUSH 0xfd9
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + -0x44]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeea868]
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + -0x44]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeea868]
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + -0x44]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeea868]
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
PUSH EBX
MOV EBX,dword ptr [EBP + -0x44]
LEA EAX,[EBX + 0xffeea868]
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + -0x44]
PUSH EDI
LEA EAX,[EBX + 0xffeea568]
PUSH EAX
LEA EAX,[EBX + 0xffee933e]
PUSH 0xf6e
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + -0x44]
PUSH EAX
LEA EAX,[EBX + 0xffeea868]
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + -0x44]
PUSH ESI
LEA EAX,[EBX + 0xffeea868]
PUSH EAX
LEA EAX,[EBX + 0xffece26d]
PUSH 0x5c
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + -0x44]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeea55c]
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0x142
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + -0x44]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeea54c]
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0x14b
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + -0x44]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeea624]
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0x163
PUSH EAX
CALL 0x000da200
MOV EBX,dword ptr [EBP + -0x44]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeea878]
PUSH EAX
LEA EAX,[EBX + 0xffee2e5c]
PUSH 0xcf
PUSH EAX
CALL 0x000da200
CALL 0x00106b00
MOV EBX,dword ptr [EBP + -0x44]
SUB ESP,0x4
LEA EAX,[EBX + 0xffeea568]
PUSH EAX
LEA EAX,[EBX + 0xffee933e]
PUSH 0xf2b
PUSH EAX
CALL 0x000da200
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nlonglong FUN_00113020(uint param_1,int param_2,int param_3,int *param_4)\n\n{\n  char cVar1;\n  byte bVar2;\n  uint uVar3;\n  int *piVar5;\n  longlong lVar6;\n  ulonglong uVar7;\n  ulonglong uVar8;\n  ulonglong uVar9;\n  char cVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  uint uVar16;\n  uint extraout_EDX;\n  byte bVar17;\n  int iVar18;\n  undefined **ppuVar19;\n  int *piVar20;\n  uint uVar21;\n  undefined **ppuVar22;\n  byte bVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  bool bVar28;\n  longlong lVar29;\n  ulonglong uVar30;\n  longlong lVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  uint local_dc;\n  uint local_d8;\n  undefined *local_c4;\n  undefined *local_c0;\n  int local_ac;\n  undefined *local_84;\n  undefined *local_80;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  int *local_44;\n  int local_40;\n  char local_2d;\n  undefined4 local_2c;\n  int local_28;\n  undefined8 local_24;\n  uint uVar4;\n  \n  iVar12 = *(int *)(param_1 + 0x124);\n  iVar18 = *(int *)(param_1 + 0x128);\n  iVar11 = iVar18 - iVar12;\n  if (iVar11 < 0x7ffffffd) {\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }\n                    /* try { // try from 0011347c to 00113480 has its CatchHandler @ 0011423e */\n  FUN_0011df20(iVar12,iVar18,param_1);\n  iVar11 = 0;\nLAB_001130c6:\n  ppuVar19 = &__DT_PLTGOT;\n  FUN_002481e0(iVar11,&DAT_00315a23);\n  iVar12 = *(int *)(DAT_004144e8 + 8);\n  ppuVar22 = &__DT_PLTGOT;\n  if (iVar12 == 0) goto LAB_0011413b;\n  if (*(char *)(iVar12 + 0x41b8) == '\0') {\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }\n  else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }\n  local_24._0_4_ = (undefined *)0x0;\n  local_24._4_4_ = (undefined *)0x0;\n  if ((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }\n  else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }\n  cVar1 = *(char *)(iVar12 + 0x91d);\n  local_ac = *param_4;\n  local_44 = *(int **)(param_1 + 0x124);\n  local_28 = local_ac;\n  if (local_44 == *(int **)(param_1 + 0x128)) {\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    /* WARNING: Subroutine does not return */\n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }\n  else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }\n  piVar20 = *(int **)(param_1 + 0x124);\n  if (piVar20 != local_44) {\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }\nLAB_00113d4d:\n  if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }\n  return local_24;\n}\n\n" comment (function_definition "longlong FUN_00113020(uint param_1,int param_2,int param_3,int *param_4)\n\n{\n  char cVar1;\n  byte bVar2;\n  uint uVar3;\n  int *piVar5;\n  longlong lVar6;\n  ulonglong uVar7;\n  ulonglong uVar8;\n  ulonglong uVar9;\n  char cVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  uint uVar16;\n  uint extraout_EDX;\n  byte bVar17;\n  int iVar18;\n  undefined **ppuVar19;\n  int *piVar20;\n  uint uVar21;\n  undefined **ppuVar22;\n  byte bVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  bool bVar28;\n  longlong lVar29;\n  ulonglong uVar30;\n  longlong lVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  uint local_dc;\n  uint local_d8;\n  undefined *local_c4;\n  undefined *local_c0;\n  int local_ac;\n  undefined *local_84;\n  undefined *local_80;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  int *local_44;\n  int local_40;\n  char local_2d;\n  undefined4 local_2c;\n  int local_28;\n  undefined8 local_24;\n  uint uVar4;\n  \n  iVar12 = *(int *)(param_1 + 0x124);\n  iVar18 = *(int *)(param_1 + 0x128);\n  iVar11 = iVar18 - iVar12;\n  if (iVar11 < 0x7ffffffd) {\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }\n                    /* try { // try from 0011347c to 00113480 has its CatchHandler @ 0011423e */\n  FUN_0011df20(iVar12,iVar18,param_1);\n  iVar11 = 0;\nLAB_001130c6:\n  ppuVar19 = &__DT_PLTGOT;\n  FUN_002481e0(iVar11,&DAT_00315a23);\n  iVar12 = *(int *)(DAT_004144e8 + 8);\n  ppuVar22 = &__DT_PLTGOT;\n  if (iVar12 == 0) goto LAB_0011413b;\n  if (*(char *)(iVar12 + 0x41b8) == '\0') {\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }\n  else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }\n  local_24._0_4_ = (undefined *)0x0;\n  local_24._4_4_ = (undefined *)0x0;\n  if ((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }\n  else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }\n  cVar1 = *(char *)(iVar12 + 0x91d);\n  local_ac = *param_4;\n  local_44 = *(int **)(param_1 + 0x124);\n  local_28 = local_ac;\n  if (local_44 == *(int **)(param_1 + 0x128)) {\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    /* WARNING: Subroutine does not return */\n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }\n  else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }\n  piVar20 = *(int **)(param_1 + 0x124);\n  if (piVar20 != local_44) {\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }\nLAB_00113d4d:\n  if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }\n  return local_24;\n}" type_identifier (function_declarator "FUN_00113020(uint param_1,int param_2,int param_3,int *param_4)" identifier (parameter_list "(uint param_1,int param_2,int param_3,int *param_4)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  uint uVar3;\n  int *piVar5;\n  longlong lVar6;\n  ulonglong uVar7;\n  ulonglong uVar8;\n  ulonglong uVar9;\n  char cVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  uint uVar16;\n  uint extraout_EDX;\n  byte bVar17;\n  int iVar18;\n  undefined **ppuVar19;\n  int *piVar20;\n  uint uVar21;\n  undefined **ppuVar22;\n  byte bVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  bool bVar28;\n  longlong lVar29;\n  ulonglong uVar30;\n  longlong lVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  uint local_dc;\n  uint local_d8;\n  undefined *local_c4;\n  undefined *local_c0;\n  int local_ac;\n  undefined *local_84;\n  undefined *local_80;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  int *local_44;\n  int local_40;\n  char local_2d;\n  undefined4 local_2c;\n  int local_28;\n  undefined8 local_24;\n  uint uVar4;\n  \n  iVar12 = *(int *)(param_1 + 0x124);\n  iVar18 = *(int *)(param_1 + 0x128);\n  iVar11 = iVar18 - iVar12;\n  if (iVar11 < 0x7ffffffd) {\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }\n                    /* try { // try from 0011347c to 00113480 has its CatchHandler @ 0011423e */\n  FUN_0011df20(iVar12,iVar18,param_1);\n  iVar11 = 0;\nLAB_001130c6:\n  ppuVar19 = &__DT_PLTGOT;\n  FUN_002481e0(iVar11,&DAT_00315a23);\n  iVar12 = *(int *)(DAT_004144e8 + 8);\n  ppuVar22 = &__DT_PLTGOT;\n  if (iVar12 == 0) goto LAB_0011413b;\n  if (*(char *)(iVar12 + 0x41b8) == '\0') {\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }\n  else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }\n  local_24._0_4_ = (undefined *)0x0;\n  local_24._4_4_ = (undefined *)0x0;\n  if ((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }\n  else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }\n  cVar1 = *(char *)(iVar12 + 0x91d);\n  local_ac = *param_4;\n  local_44 = *(int **)(param_1 + 0x124);\n  local_28 = local_ac;\n  if (local_44 == *(int **)(param_1 + 0x128)) {\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    /* WARNING: Subroutine does not return */\n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }\n  else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }\n  piVar20 = *(int **)(param_1 + 0x124);\n  if (piVar20 != local_44) {\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }\nLAB_00113d4d:\n  if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }\n  return local_24;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "longlong lVar6;" type_identifier identifier ;) (declaration "ulonglong uVar7;" type_identifier identifier ;) (declaration "ulonglong uVar8;" type_identifier identifier ;) (declaration "ulonglong uVar9;" type_identifier identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint extraout_EDX;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined **ppuVar19;" type_identifier (pointer_declarator "**ppuVar19" * (pointer_declarator "*ppuVar19" * identifier)) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined **ppuVar22;" type_identifier (pointer_declarator "**ppuVar22" * (pointer_declarator "*ppuVar22" * identifier)) ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "longlong lVar29;" type_identifier identifier ;) (declaration "ulonglong uVar30;" type_identifier identifier ;) (declaration "longlong lVar31;" type_identifier identifier ;) (declaration "longlong lVar32;" type_identifier identifier ;) (declaration "undefined8 uVar33;" type_identifier identifier ;) (declaration "uint local_dc;" type_identifier identifier ;) (declaration "uint local_d8;" type_identifier identifier ;) (declaration "undefined *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "undefined *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "int local_ac;" primitive_type identifier ;) (declaration "undefined *local_84;" type_identifier (pointer_declarator "*local_84" * identifier) ;) (declaration "undefined *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int *local_44;" primitive_type (pointer_declarator "*local_44" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "char local_2d;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined8 local_24;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x124);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x124)" identifier = (pointer_expression "*(int *)(param_1 + 0x124)" * (cast_expression "(int *)(param_1 + 0x124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x128)" identifier = (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar18 - iVar12;" (assignment_expression "iVar11 = iVar18 - iVar12" identifier = (binary_expression "iVar18 - iVar12" identifier - identifier)) ;) (if_statement "if (iVar11 < 0x7ffffffd) {\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }" if (parenthesized_expression "(iVar11 < 0x7ffffffd)" ( (binary_expression "iVar11 < 0x7ffffffd" identifier < number_literal) )) (compound_statement "{\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }" { (if_statement "if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }" if (parenthesized_expression "(0 < iVar11)" ( (binary_expression "0 < iVar11" number_literal < identifier) )) (compound_statement "{\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }" { (expression_statement "local_44 = (int *)(iVar11 >> 2);" (assignment_expression "local_44 = (int *)(iVar11 >> 2)" identifier = (cast_expression "(int *)(iVar11 >> 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 >> 2)" ( (binary_expression "iVar11 >> 2" identifier >> number_literal) )))) ;) (goto_statement "goto LAB_00113091;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }" else (compound_statement "{\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }" { (expression_statement "local_44 = (int *)0x1fffffff;" (assignment_expression "local_44 = (int *)0x1fffffff" identifier = (cast_expression "(int *)0x1fffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);" statement_identifier : (do_statement "do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);" do (compound_statement "{\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    }" { (expression_statement "iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);" (assignment_expression "iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23)" identifier = (call_expression "FUN_00246610((int)local_44 << 2,&DAT_00315a23)" identifier (argument_list "((int)local_44 << 2,&DAT_00315a23)" ( (binary_expression "(int)local_44 << 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) , (pointer_expression "&DAT_00315a23" & identifier) )))) ;) (if_statement "if (iVar11 != 0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }" { comment (expression_statement "FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);" (call_expression "FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1)" identifier (argument_list "(iVar12,iVar18,iVar11,local_44,param_1)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_001130c6;" goto statement_identifier ;) })) (expression_statement "local_44 = (int *)((int)local_44 >> 1);" (assignment_expression "local_44 = (int *)((int)local_44 >> 1)" identifier = (cast_expression "(int *)((int)local_44 >> 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 >> 1)" ( (binary_expression "(int)local_44 >> 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(local_44 != (int *)0x0)" ( (binary_expression "local_44 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) }))) comment (expression_statement "FUN_0011df20(iVar12,iVar18,param_1);" (call_expression "FUN_0011df20(iVar12,iVar18,param_1)" identifier (argument_list "(iVar12,iVar18,param_1)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001130c6:\n  ppuVar19 = &__DT_PLTGOT;" statement_identifier : (expression_statement "ppuVar19 = &__DT_PLTGOT;" (assignment_expression "ppuVar19 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;)) (expression_statement "FUN_002481e0(iVar11,&DAT_00315a23);" (call_expression "FUN_002481e0(iVar11,&DAT_00315a23)" identifier (argument_list "(iVar11,&DAT_00315a23)" ( identifier , (pointer_expression "&DAT_00315a23" & identifier) ))) ;) (expression_statement "iVar12 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (expression_statement "ppuVar22 = &__DT_PLTGOT;" (assignment_expression "ppuVar22 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (iVar12 == 0) goto LAB_0011413b;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011413b;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar12 + 0x41b8) == '\0') {\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }\n  else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }" if (parenthesized_expression "(*(char *)(iVar12 + 0x41b8) == '\0')" ( (binary_expression "*(char *)(iVar12 + 0x41b8) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x41b8)" * (cast_expression "(char *)(iVar12 + 0x41b8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x41b8)" ( (binary_expression "iVar12 + 0x41b8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }" { (expression_statement "local_c4 = (undefined *)0x0;" (assignment_expression "local_c4 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c0 = (undefined *)0x0;" (assignment_expression "local_c0 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }" if (parenthesized_expression "((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar12 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar12 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x1a25)" * (cast_expression "(char *)(iVar12 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1a25)" ( (binary_expression "iVar12 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar12 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar12 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x2931)" * (cast_expression "(char *)(iVar12 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2931)" ( (binary_expression "iVar12 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }" { (expression_statement "ppuVar19 = *(undefined ***)(param_2 + 4);" (assignment_expression "ppuVar19 = *(undefined ***)(param_2 + 4)" identifier = (pointer_expression "*(undefined ***)(param_2 + 4)" * (cast_expression "(undefined ***)(param_2 + 4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_c0 = ppuVar19[7];" (assignment_expression "local_c0 = ppuVar19[7]" identifier = (subscript_expression "ppuVar19[7]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = *(undefined **)(iVar12 + 0x521c);" (assignment_expression "puVar15 = *(undefined **)(iVar12 + 0x521c)" identifier = (pointer_expression "*(undefined **)(iVar12 + 0x521c)" * (cast_expression "(undefined **)(iVar12 + 0x521c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x521c)" ( (binary_expression "iVar12 + 0x521c" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = *(undefined **)(iVar12 + 0x5218);" (assignment_expression "puVar14 = *(undefined **)(iVar12 + 0x5218)" identifier = (pointer_expression "*(undefined **)(iVar12 + 0x5218)" * (cast_expression "(undefined **)(iVar12 + 0x5218)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x5218)" ( (binary_expression "iVar12 + 0x5218" identifier + number_literal) ))))) ;) (if_statement "if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }" if (parenthesized_expression "(puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0)" ( (binary_expression "puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0" (binary_expression "puVar15 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "puVar14 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }" { (expression_statement "puVar14 = ppuVar19[8];" (assignment_expression "puVar14 = ppuVar19[8]" identifier = (subscript_expression "ppuVar19[8]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = ppuVar19[9];" (assignment_expression "puVar15 = ppuVar19[9]" identifier = (subscript_expression "ppuVar19[9]" identifier [ number_literal ])) ;) })) (expression_statement "local_c4 = ppuVar19[6];" (assignment_expression "local_c4 = ppuVar19[6]" identifier = (subscript_expression "ppuVar19[6]" identifier [ number_literal ])) ;) (if_statement "if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }" if (parenthesized_expression "(local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         )" ( (binary_expression "local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)" (binary_expression "local_c0 < puVar15" identifier < identifier) || (binary_expression "(uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)" (call_expression "(uint)((int)local_c0 - (int)puVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_c0 - (int)puVar15)" ( (binary_expression "(int)local_c0 - (int)puVar15" (cast_expression "(int)local_c0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(ppuVar19[6] < puVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppuVar19[6] < puVar14)" ( (binary_expression "ppuVar19[6] < puVar14" (subscript_expression "ppuVar19[6]" identifier [ number_literal ]) < identifier) ))))) )) (compound_statement "{\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }" { (expression_statement "local_c4 = puVar14;" (assignment_expression "local_c4 = puVar14" identifier = identifier) ;) (expression_statement "local_c0 = puVar15;" (assignment_expression "local_c0 = puVar15" identifier = identifier) ;) })) })) }) (else_clause "else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }" else (compound_statement "{\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }" { (expression_statement "ppuVar19 = &__DT_PLTGOT;" (assignment_expression "ppuVar19 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_c4 = *(undefined **)(iVar12 + 0x41bc);" (assignment_expression "local_c4 = *(undefined **)(iVar12 + 0x41bc)" identifier = (pointer_expression "*(undefined **)(iVar12 + 0x41bc)" * (cast_expression "(undefined **)(iVar12 + 0x41bc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x41bc)" ( (binary_expression "iVar12 + 0x41bc" identifier + number_literal) ))))) ;) (expression_statement "local_c0 = *(undefined **)(iVar12 + 0x41c0);" (assignment_expression "local_c0 = *(undefined **)(iVar12 + 0x41c0)" identifier = (pointer_expression "*(undefined **)(iVar12 + 0x41c0)" * (cast_expression "(undefined **)(iVar12 + 0x41c0)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x41c0)" ( (binary_expression "iVar12 + 0x41c0" identifier + number_literal) ))))) ;) }))) (expression_statement "local_24._0_4_ = (undefined *)0x0;" (assignment_expression "local_24._0_4_ = (undefined *)0x0" (field_expression "local_24._0_4_" identifier . field_identifier) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_24._4_4_ = (undefined *)0x0;" (assignment_expression "local_24._4_4_ = (undefined *)0x0" (field_expression "local_24._4_4_" identifier . field_identifier) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }\n  else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }" if (parenthesized_expression "((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c)))" ( (binary_expression "(param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))" ( (comma_expression "local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c)" (assignment_expression "local_44 = *(int **)(param_1 + 0x148)" identifier = (pointer_expression "*(int **)(param_1 + 0x148)" * (cast_expression "(int **)(param_1 + 0x148)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x148)" ( (binary_expression "param_1 + 0x148" identifier + number_literal) ))))) , (binary_expression "local_44 != *(undefined4 **)(param_1 + 0x14c)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 0x14c)" * (cast_expression "(undefined4 **)(param_1 + 0x14c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x14c)" ( (binary_expression "param_1 + 0x14c" identifier + number_literal) )))))) ))) )) (compound_statement "{\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }" { (do_statement "do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);" do (compound_statement "{\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    }" { (expression_statement "lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);" (assignment_expression "lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44)" identifier = (call_expression "(**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44)" (parenthesized_expression "(**(code **)(*(int *)*local_44 + 0xc))" ( (pointer_expression "**(code **)(*(int *)*local_44 + 0xc)" * (pointer_expression "*(code **)(*(int *)*local_44 + 0xc)" * (cast_expression "(code **)(*(int *)*local_44 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*local_44 + 0xc)" ( (binary_expression "*(int *)*local_44 + 0xc" (pointer_expression "*(int *)*local_44" * (cast_expression "(int *)*local_44" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*local_44)" ( (cast_expression "(int *)*local_44" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier)) )))) ;) (if_statement "if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }" if (parenthesized_expression "(lVar32 != 0)" ( (binary_expression "lVar32 != 0" identifier != number_literal) )) (compound_statement "{\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }" { (expression_statement "lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);" (assignment_expression "lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1)" identifier = (binary_expression "lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1)" identifier + (call_expression "CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1)" identifier (argument_list "(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1)" ( (binary_expression "local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)" (field_expression "local_24._4_4_" identifier . field_identifier) + (parenthesized_expression "(((undefined *)local_24 != (undefined *)0x0) - 1)" ( (binary_expression "((undefined *)local_24 != (undefined *)0x0) - 1" (parenthesized_expression "((undefined *)local_24 != (undefined *)0x0)" ( (binary_expression "(undefined *)local_24 != (undefined *)0x0" (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) - number_literal) ))) , (binary_expression "(undefined *)local_24 + -1" (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) ))))) ;) (expression_statement "local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);" (assignment_expression "local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6)" (field_expression "local_24._0_4_" identifier . field_identifier) = (cast_expression "(undefined *)(-(int)lVar32 & (uint)lVar6)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-(int)lVar32 & (uint)lVar6)" ( (binary_expression "-(int)lVar32 & (uint)lVar6" (unary_expression "-(int)lVar32" - (cast_expression "(int)lVar32" ( (type_descriptor "int" primitive_type) ) identifier)) & (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));" (assignment_expression "local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20))" (field_expression "local_24._4_4_" identifier . field_identifier) = (cast_expression "(undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20))" ( (binary_expression "-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20)" (unary_expression "-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0))" - (parenthesized_expression "((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0))" ( (binary_expression "(int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)" (cast_expression "(int)((ulonglong)lVar32 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar32 >> 0x20)" ( (binary_expression "(ulonglong)lVar32 >> 0x20" (cast_expression "(ulonglong)lVar32" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (call_expression "(uint)((int)lVar32 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar32 != 0)" ( (binary_expression "(int)lVar32 != 0" (cast_expression "(int)lVar32" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) ))) & (call_expression "(uint)((ulonglong)lVar6 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )))) ;) })) (expression_statement "ppuVar19 = (undefined **)*local_44;" (assignment_expression "ppuVar19 = (undefined **)*local_44" identifier = (cast_expression "(undefined **)*local_44" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "bVar2 = *(byte *)(ppuVar19 + 7);" (assignment_expression "bVar2 = *(byte *)(ppuVar19 + 7)" identifier = (pointer_expression "*(byte *)(ppuVar19 + 7)" * (cast_expression "(byte *)(ppuVar19 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar19 + 7)" ( (binary_expression "ppuVar19 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar2 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }" if (parenthesized_expression "((bVar2 & 1) != 0)" ( (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }" { comment (expression_statement "FUN_000da200("../../gold/output.h",0x142,"set_address");" (call_expression "FUN_000da200("../../gold/output.h",0x142,"set_address")" identifier (argument_list "("../../gold/output.h",0x142,"set_address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_address"" " string_content ") ))) ;) })) (expression_statement "ppuVar19[1] = (undefined *)0x0;" (assignment_expression "ppuVar19[1] = (undefined *)0x0" (subscript_expression "ppuVar19[1]" identifier [ number_literal ]) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar19[2] = (undefined *)0x0;" (assignment_expression "ppuVar19[2] = (undefined *)0x0" (subscript_expression "ppuVar19[2]" identifier [ number_literal ]) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(byte *)(ppuVar19 + 7) = bVar2 | 1;" (assignment_expression "*(byte *)(ppuVar19 + 7) = bVar2 | 1" (pointer_expression "*(byte *)(ppuVar19 + 7)" * (cast_expression "(byte *)(ppuVar19 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar19 + 7)" ( (binary_expression "ppuVar19 + 7" identifier + number_literal) )))) = (binary_expression "bVar2 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar2 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }" if (parenthesized_expression "((bVar2 & 4) != 0)" ( (binary_expression "(bVar2 & 4) != 0" (parenthesized_expression "(bVar2 & 4)" ( (binary_expression "bVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }" { comment (expression_statement "FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "FUN_000da200("../../gold/output.h",0x14b,"set_file_offset")" identifier (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_file_offset"" " string_content ") ))) ;) })) (expression_statement "ppuVar19[5] = (undefined *)local_24;" (assignment_expression "ppuVar19[5] = (undefined *)local_24" (subscript_expression "ppuVar19[5]" identifier [ number_literal ]) = (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppuVar19[6] = local_24._4_4_;" (assignment_expression "ppuVar19[6] = local_24._4_4_" (subscript_expression "ppuVar19[6]" identifier [ number_literal ]) = (field_expression "local_24._4_4_" identifier . field_identifier)) ;) (expression_statement "*(byte *)(ppuVar19 + 7) = bVar2 | 5;" (assignment_expression "*(byte *)(ppuVar19 + 7) = bVar2 | 5" (pointer_expression "*(byte *)(ppuVar19 + 7)" * (cast_expression "(byte *)(ppuVar19 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar19 + 7)" ( (binary_expression "ppuVar19 + 7" identifier + number_literal) )))) = (binary_expression "bVar2 | 5" identifier | number_literal)) ;) (if_statement "if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }" if (parenthesized_expression "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }" { (expression_statement "(**(code **)(*ppuVar19 + 0x38))(ppuVar19);" (call_expression "(**(code **)(*ppuVar19 + 0x38))(ppuVar19)" (parenthesized_expression "(**(code **)(*ppuVar19 + 0x38))" ( (pointer_expression "**(code **)(*ppuVar19 + 0x38)" * (pointer_expression "*(code **)(*ppuVar19 + 0x38)" * (cast_expression "(code **)(*ppuVar19 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*ppuVar19 + 0x38)" ( (binary_expression "*ppuVar19 + 0x38" (pointer_expression "*ppuVar19" * identifier) + number_literal) ))))) )) (argument_list "(ppuVar19)" ( identifier ))) ;) (if_statement "if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }" if (parenthesized_expression "(((uint)ppuVar19[7] & 2) == 0)" ( (binary_expression "((uint)ppuVar19[7] & 2) == 0" (parenthesized_expression "((uint)ppuVar19[7] & 2)" ( (binary_expression "(uint)ppuVar19[7] & 2" (cast_expression "(uint)ppuVar19[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar19[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }" { comment (expression_statement "FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "FUN_000da200("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;) })) (expression_statement "ppuVar19 = (undefined **)*local_44;" (assignment_expression "ppuVar19 = (undefined **)*local_44" identifier = (cast_expression "(undefined **)*local_44" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_44" * identifier))) ;) (if_statement "if (((uint)ppuVar19[7] & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }" if (parenthesized_expression "(((uint)ppuVar19[7] & 2) == 0)" ( (binary_expression "((uint)ppuVar19[7] & 2) == 0" (parenthesized_expression "((uint)ppuVar19[7] & 2)" ( (binary_expression "(uint)ppuVar19[7] & 2" (cast_expression "(uint)ppuVar19[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar19[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }" { comment (expression_statement "FUN_000da200("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_000da200("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) })) (expression_statement "bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);" (assignment_expression "bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3])" identifier = (call_expression "CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3])" identifier (argument_list "((uint)(undefined *)local_24,(uint)ppuVar19[3])" ( (cast_expression "(uint)(undefined *)local_24" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (cast_expression "(uint)ppuVar19[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar19[3]" identifier [ number_literal ])) )))) ;) (expression_statement "local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];" (assignment_expression "local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3]" (field_expression "local_24._0_4_" identifier . field_identifier) = (binary_expression "(undefined *)local_24 + (int)ppuVar19[3]" (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + (cast_expression "(int)ppuVar19[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar19[3]" identifier [ number_literal ])))) ;) (expression_statement "local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;" (assignment_expression "local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28" (field_expression "local_24._4_4_" identifier . field_identifier) = (binary_expression "local_24._4_4_ + (int)ppuVar19[4] + bVar28" (binary_expression "local_24._4_4_ + (int)ppuVar19[4]" (field_expression "local_24._4_4_" identifier . field_identifier) + (cast_expression "(int)ppuVar19[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar19[4]" identifier [ number_literal ]))) + identifier)) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(undefined4 **)(param_1 + 0x14c) != local_44)" ( (binary_expression "*(undefined4 **)(param_1 + 0x14c) != local_44" (pointer_expression "*(undefined4 **)(param_1 + 0x14c)" * (cast_expression "(undefined4 **)(param_1 + 0x14c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x14c)" ( (binary_expression "param_1 + 0x14c" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "local_2c = *(undefined4 *)(param_1 + 0x170);" (assignment_expression "local_2c = *(undefined4 *)(param_1 + 0x170)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x170)" * (cast_expression "(undefined4 *)(param_1 + 0x170)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" ( (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0011314a:\n      local_2c = 0;\n    }" { (labeled_statement "LAB_0011314a:\n      local_2c = 0;" statement_identifier : (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;)) })) (expression_statement "ppuVar22 = ppuVar19;" (assignment_expression "ppuVar22 = ppuVar19" identifier = identifier) ;) (if_statement "if (iVar12 == 0) {\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }" { (labeled_statement "LAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);" statement_identifier : comment (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",ppuVar22)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })) }) (else_clause "else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }" else (compound_statement "{\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }" { (expression_statement "local_2c = *(undefined4 *)(param_1 + 0x170);" (assignment_expression "local_2c = *(undefined4 *)(param_1 + 0x170)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x170)" * (cast_expression "(undefined4 *)(param_1 + 0x170)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;" if (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" ( (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0011314a;" goto statement_identifier ;)) }))) (expression_statement "cVar1 = *(char *)(iVar12 + 0x91d);" (assignment_expression "cVar1 = *(char *)(iVar12 + 0x91d)" identifier = (pointer_expression "*(char *)(iVar12 + 0x91d)" * (cast_expression "(char *)(iVar12 + 0x91d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x91d)" ( (binary_expression "iVar12 + 0x91d" identifier + number_literal) ))))) ;) (expression_statement "local_ac = *param_4;" (assignment_expression "local_ac = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "local_44 = *(int **)(param_1 + 0x124);" (assignment_expression "local_44 = *(int **)(param_1 + 0x124)" identifier = (pointer_expression "*(int **)(param_1 + 0x124)" * (cast_expression "(int **)(param_1 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (expression_statement "local_28 = local_ac;" (assignment_expression "local_28 = local_ac" identifier = identifier) ;) (if_statement "if (local_44 == *(int **)(param_1 + 0x128)) {\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    /* WARNING: Subroutine does not return */\n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }\n  else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }" if (parenthesized_expression "(local_44 == *(int **)(param_1 + 0x128))" ( (binary_expression "local_44 == *(int **)(param_1 + 0x128)" identifier == (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) )) (compound_statement "{\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    /* WARNING: Subroutine does not return */\n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }" { (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) (if_statement "if (param_3 == 0) goto LAB_00113d4d;" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00113d4d;" goto statement_identifier ;)) (labeled_statement "LAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);" statement_identifier : (expression_statement "local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);" (assignment_expression "local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20)" (field_expression "local_24._4_4_" identifier . field_identifier) = (cast_expression "(undefined *)((ulonglong)lVar32 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar32 >> 0x20)" ( (binary_expression "(ulonglong)lVar32 >> 0x20" (cast_expression "(ulonglong)lVar32" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_24._0_4_ = (undefined *)lVar32;" (assignment_expression "local_24._0_4_ = (undefined *)lVar32" (field_expression "local_24._0_4_" identifier . field_identifier) = (cast_expression "(undefined *)lVar32" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar12 = *(int *)(param_2 + 4);" (assignment_expression "iVar12 = *(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) ))))) ;) (if_statement "if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    /* WARNING: Subroutine does not return */\n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }" if (parenthesized_expression "(*(char *)(iVar12 + 0x30) != '\0')" ( (binary_expression "*(char *)(iVar12 + 0x30) != '\0'" (pointer_expression "*(char *)(iVar12 + 0x30)" * (cast_expression "(char *)(iVar12 + 0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    /* WARNING: Subroutine does not return */\n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }" { (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar18 == 0) {\n        local_24 = lVar32;\n                    /* WARNING: Subroutine does not return */\n        FUN_00106b00();\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        local_24 = lVar32;\n                    /* WARNING: Subroutine does not return */\n        FUN_00106b00();\n      }" { (expression_statement "local_24 = lVar32;" (assignment_expression "local_24 = lVar32" identifier = identifier) ;) comment (expression_statement "FUN_00106b00();" (call_expression "FUN_00106b00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_40 = *(int *)(iVar18 + 0x521c);" (assignment_expression "local_40 = *(int *)(iVar18 + 0x521c)" identifier = (pointer_expression "*(int *)(iVar18 + 0x521c)" * (cast_expression "(int *)(iVar18 + 0x521c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x521c)" ( (binary_expression "iVar18 + 0x521c" identifier + number_literal) ))))) ;) (expression_statement "local_44 = *(int **)(iVar18 + 0x5218);" (assignment_expression "local_44 = *(int **)(iVar18 + 0x5218)" identifier = (pointer_expression "*(int **)(iVar18 + 0x5218)" * (cast_expression "(int **)(iVar18 + 0x5218)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 0x5218)" ( (binary_expression "iVar18 + 0x5218" identifier + number_literal) ))))) ;) (if_statement "if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }" if (parenthesized_expression "(local_40 == 0 && local_44 == (int *)0x0)" ( (binary_expression "local_40 == 0 && local_44 == (int *)0x0" (binary_expression "local_40 == 0" identifier == number_literal) && (binary_expression "local_44 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }" { (expression_statement "local_40 = *(int *)(iVar12 + 0x24);" (assignment_expression "local_40 = *(int *)(iVar12 + 0x24)" identifier = (pointer_expression "*(int *)(iVar12 + 0x24)" * (cast_expression "(int *)(iVar12 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "local_44 = *(int **)(iVar12 + 0x20);" (assignment_expression "local_44 = *(int **)(iVar12 + 0x20)" identifier = (pointer_expression "*(int **)(iVar12 + 0x20)" * (cast_expression "(int **)(iVar12 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) ))))) ;) })) (expression_statement "uVar25 = (uint)(undefined *)local_24 & -(int)local_44;" (assignment_expression "uVar25 = (uint)(undefined *)local_24 & -(int)local_44" identifier = (binary_expression "(uint)(undefined *)local_24 & -(int)local_44" (cast_expression "(uint)(undefined *)local_24" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & (unary_expression "-(int)local_44" - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));" (assignment_expression "uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0))" identifier = (binary_expression "(uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0))" (cast_expression "(uint)local_24._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_24._4_4_" identifier . field_identifier)) & (unary_expression "-(local_40 + (uint)(local_44 != (int *)0x0))" - (parenthesized_expression "(local_40 + (uint)(local_44 != (int *)0x0))" ( (binary_expression "local_40 + (uint)(local_44 != (int *)0x0)" identifier + (call_expression "(uint)(local_44 != (int *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 != (int *)0x0)" ( (binary_expression "local_44 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ))))) ;) (if_statement "if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }" if (parenthesized_expression "(uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24))" ( (binary_expression "uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)" (binary_expression "uVar26 < local_24._4_4_" identifier < (field_expression "local_24._4_4_" identifier . field_identifier)) || (binary_expression "uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)" (binary_expression "uVar26 - (int)local_24._4_4_" identifier - (cast_expression "(int)local_24._4_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_24._4_4_" identifier . field_identifier))) < (call_expression "(uint)(uVar25 < (undefined *)local_24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar25 < (undefined *)local_24)" ( (binary_expression "uVar25 < (undefined *)local_24" identifier < (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))))) )) (compound_statement "{\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }" { (expression_statement "bVar28 = CARRY4(uVar25,(uint)local_44);" (assignment_expression "bVar28 = CARRY4(uVar25,(uint)local_44)" identifier = (call_expression "CARRY4(uVar25,(uint)local_44)" identifier (argument_list "(uVar25,(uint)local_44)" ( identifier , (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "uVar25 = uVar25 + (int)local_44;" (assignment_expression "uVar25 = uVar25 + (int)local_44" identifier = (binary_expression "uVar25 + (int)local_44" identifier + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar26 = uVar26 + local_40 + (uint)bVar28;" (assignment_expression "uVar26 = uVar26 + local_40 + (uint)bVar28" identifier = (binary_expression "uVar26 + local_40 + (uint)bVar28" (binary_expression "uVar26 + local_40" identifier + identifier) + (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "piVar20 = *(int **)(param_1 + 0x154);" (assignment_expression "piVar20 = *(int **)(param_1 + 0x154)" identifier = (pointer_expression "*(int **)(param_1 + 0x154)" * (cast_expression "(int **)(param_1 + 0x154)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x154)" ( (binary_expression "param_1 + 0x154" identifier + number_literal) ))))) ;) (expression_statement "local_24._0_4_ = (undefined *)uVar25;" (assignment_expression "local_24._0_4_ = (undefined *)uVar25" (field_expression "local_24._0_4_" identifier . field_identifier) = (cast_expression "(undefined *)uVar25" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_24._4_4_ = (undefined *)uVar26;" (assignment_expression "local_24._4_4_ = (undefined *)uVar26" (field_expression "local_24._4_4_" identifier . field_identifier) = (cast_expression "(undefined *)uVar26" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }" if (parenthesized_expression "(piVar20 != *(int **)(param_1 + 0x158))" ( (binary_expression "piVar20 != *(int **)(param_1 + 0x158)" identifier != (pointer_expression "*(int **)(param_1 + 0x158)" * (cast_expression "(int **)(param_1 + 0x158)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x158)" ( (binary_expression "param_1 + 0x158" identifier + number_literal) ))))) )) (compound_statement "{\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }" { (do_statement "do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);" do (compound_statement "{\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        }" { (expression_statement "piVar5 = (int *)*piVar20;" (assignment_expression "piVar5 = (int *)*piVar20" identifier = (cast_expression "(int *)*piVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar20" * identifier))) ;) (if_statement "if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }" if (parenthesized_expression "(piVar5 != (int *)0x0)" ( (binary_expression "piVar5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }" { (expression_statement "(**(code **)(*piVar5 + 4))(piVar5);" (call_expression "(**(code **)(*piVar5 + 4))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 4))" ( (pointer_expression "**(code **)(*piVar5 + 4)" * (pointer_expression "*(code **)(*piVar5 + 4)" * (cast_expression "(code **)(*piVar5 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 4)" ( (binary_expression "*piVar5 + 4" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "uVar26 = extraout_EDX;" (assignment_expression "uVar26 = extraout_EDX" identifier = identifier) ;) })) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x158) != piVar20)" ( (binary_expression "*(int **)(param_1 + 0x158) != piVar20" (pointer_expression "*(int **)(param_1 + 0x158)" * (cast_expression "(int **)(param_1 + 0x158)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x158)" ( (binary_expression "param_1 + 0x158" identifier + number_literal) )))) != identifier) )) ;) (if_statement "if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }" if (parenthesized_expression "(piVar20 != *(int **)(param_1 + 0x154))" ( (binary_expression "piVar20 != *(int **)(param_1 + 0x154)" identifier != (pointer_expression "*(int **)(param_1 + 0x154)" * (cast_expression "(int **)(param_1 + 0x154)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x154)" ( (binary_expression "param_1 + 0x154" identifier + number_literal) ))))) )) (compound_statement "{\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }" { (expression_statement "*(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);" (assignment_expression "*(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154)" (pointer_expression "*(int **)(param_1 + 0x158)" * (cast_expression "(int **)(param_1 + 0x158)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x158)" ( (binary_expression "param_1 + 0x158" identifier + number_literal) )))) = (pointer_expression "*(int **)(param_1 + 0x154)" * (cast_expression "(int **)(param_1 + 0x154)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x154)" ( (binary_expression "param_1 + 0x154" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = param_1;" (assignment_expression "uVar26 = param_1" identifier = identifier) ;) })) })) (expression_statement "local_44 = *(int **)(param_1 + 0x124);" (assignment_expression "local_44 = *(int **)(param_1 + 0x124)" identifier = (pointer_expression "*(int **)(param_1 + 0x124)" * (cast_expression "(int **)(param_1 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (while_statement "while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }" while (parenthesized_expression "(iVar12 != param_3)" ( (binary_expression "iVar12 != param_3" identifier != identifier) )) (compound_statement "{\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }" { (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }" if (parenthesized_expression "(*(int *)(iVar12 + 0x194) == 1)" ( (binary_expression "*(int *)(iVar12 + 0x194) == 1" (pointer_expression "*(int *)(iVar12 + 0x194)" * (cast_expression "(int *)(iVar12 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x194)" ( (binary_expression "iVar12 + 0x194" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }" { (expression_statement "uVar26 = *(uint *)(iVar12 + 0x15c);" (assignment_expression "uVar26 = *(uint *)(iVar12 + 0x15c)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x15c)" * (cast_expression "(uint *)(iVar12 + 0x15c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x15c)" ( (binary_expression "iVar12 + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(iVar12 + 0x160);" (assignment_expression "iVar18 = *(int *)(iVar12 + 0x160)" identifier = (pointer_expression "*(int *)(iVar12 + 0x160)" * (cast_expression "(int *)(iVar12 + 0x160)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x160)" ( (binary_expression "iVar12 + 0x160" identifier + number_literal) ))))) ;) (expression_statement "local_2d = '\0';" (assignment_expression "local_2d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar25 = *(uint *)(iVar12 + 0x16c);" (assignment_expression "uVar25 = *(uint *)(iVar12 + 0x16c)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x16c)" * (cast_expression "(uint *)(iVar12 + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x16c)" ( (binary_expression "iVar12 + 0x16c" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);" (assignment_expression "uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c)" identifier = (binary_expression "uVar26 + *(uint *)(iVar12 + 0x16c)" identifier + (pointer_expression "*(uint *)(iVar12 + 0x16c)" * (cast_expression "(uint *)(iVar12 + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x16c)" ( (binary_expression "iVar12 + 0x16c" identifier + number_literal) )))))) ;) (expression_statement "iVar11 = *(int *)(iVar12 + 0x170);" (assignment_expression "iVar11 = *(int *)(iVar12 + 0x170)" identifier = (pointer_expression "*(int *)(iVar12 + 0x170)" * (cast_expression "(int *)(iVar12 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x170)" ( (binary_expression "iVar12 + 0x170" identifier + number_literal) ))))) ;) (expression_statement "uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);" (assignment_expression "uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28)" identifier = (call_expression "FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28)" identifier (argument_list "(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28)" ( identifier , identifier , identifier , number_literal , identifier , identifier , (pointer_expression "&local_2c" & identifier) , (pointer_expression "&local_2d" & identifier) , (pointer_expression "&local_24" & identifier) , (pointer_expression "&local_28" & identifier) )))) ;) (expression_statement "uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;" (assignment_expression "uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21" identifier = (binary_expression "(uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21" (binary_expression "(uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)" (call_expression "(uint)((ulonglong)uVar33 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar33 >> 0x20)" ( (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ^ (binary_expression "iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)" (binary_expression "iVar18 + iVar11" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar26,uVar25)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar26,uVar25)" identifier (argument_list "(uVar26,uVar25)" ( identifier , identifier )))))) | (binary_expression "(uint)uVar33 ^ uVar21" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) ^ identifier))) ;) (if_statement "if (uVar26 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }" { comment (expression_statement "FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);" (call_expression "FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21)" identifier (argument_list "("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") , identifier ))) ;) })) })) (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) })) (expression_statement "lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);" (assignment_expression "lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24)" identifier = (call_expression "CONCAT44(local_24._4_4_,(undefined *)local_24)" identifier (argument_list "(local_24._4_4_,(undefined *)local_24)" ( (field_expression "local_24._4_4_" identifier . field_identifier) , (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (local_28 != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }" if (parenthesized_expression "(local_28 != local_ac)" ( (binary_expression "local_28 != local_ac" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }" { comment (expression_statement "FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);" (call_expression "FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26)" identifier (argument_list "("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") , identifier ))) ;) })) })) (expression_statement "local_24 = lVar32;" (assignment_expression "local_24 = lVar32" identifier = identifier) ;) (expression_statement "local_44 = *(int **)(param_1 + 0x128);" (assignment_expression "local_44 = *(int **)(param_1 + 0x128)" identifier = (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }" else (compound_statement "{\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar30 = CONCAT44(local_c0,local_c4);" (assignment_expression "uVar30 = CONCAT44(local_c0,local_c4)" identifier = (call_expression "CONCAT44(local_c0,local_c4)" identifier (argument_list "(local_c0,local_c4)" ( identifier , identifier )))) ;) (do_statement "do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);" do (compound_statement "{\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    }" { (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (expression_statement "iVar18 = local_4c;" (assignment_expression "iVar18 = local_4c" identifier = identifier) ;) (if_statement "if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 0x194) == 1)" ( (binary_expression "*(int *)(iVar12 + 0x194) == 1" (pointer_expression "*(int *)(iVar12 + 0x194)" * (cast_expression "(int *)(iVar12 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x194)" ( (binary_expression "iVar12 + 0x194" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }" { (expression_statement "cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);" (assignment_expression "cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30)" identifier = (pointer_expression "*(char *)(*(int *)(param_2 + 4) + 0x30)" * (cast_expression "(char *)(*(int *)(param_2 + 4) + 0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 4) + 0x30)" ( (binary_expression "*(int *)(param_2 + 4) + 0x30" (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) )))) + number_literal) ))))) ;) (if_statement "if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }" { (if_statement "if ((iVar12 != param_3) && (param_3 != 0)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }" if (parenthesized_expression "((iVar12 != param_3) && (param_3 != 0))" ( (binary_expression "(iVar12 != param_3) && (param_3 != 0)" (parenthesized_expression "(iVar12 != param_3)" ( (binary_expression "iVar12 != param_3" identifier != identifier) )) && (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }" { comment (expression_statement "FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");" (call_expression "FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets")" identifier (argument_list "("../../gold/layout.cc",0xf2b,"set_segment_offsets")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") ))) ;) })) (labeled_statement "LAB_00113530:\n          param_3 = 0;" statement_identifier : (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;)) }) (else_clause "else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }" else (if_statement "if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }" if (parenthesized_expression "(iVar12 == param_3)" ( (binary_expression "iVar12 == param_3" identifier == identifier) )) (compound_statement "{\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }" { (if_statement "if (local_24 == 0) goto LAB_00113530;" if (parenthesized_expression "(local_24 == 0)" ( (binary_expression "local_24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00113530;" goto statement_identifier ;)) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_ac = *param_4;" (assignment_expression "local_ac = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) })))) (expression_statement "bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;" (assignment_expression "bVar17 = *(byte *)(iVar12 + 0x19c) >> 1" identifier = (binary_expression "*(byte *)(iVar12 + 0x19c) >> 1" (pointer_expression "*(byte *)(iVar12 + 0x19c)" * (cast_expression "(byte *)(iVar12 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x19c)" ( (binary_expression "iVar12 + 0x19c" identifier + number_literal) )))) >> number_literal)) ;) (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = bVar17 & 1;" (assignment_expression "bVar2 = bVar17 & 1" identifier = (binary_expression "bVar17 & 1" identifier & number_literal)) ;) (if_statement "if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }" if (parenthesized_expression "((bVar17 & 1) == 0)" ( (binary_expression "(bVar17 & 1) == 0" (parenthesized_expression "(bVar17 & 1)" ( (binary_expression "bVar17 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }" { (if_statement "if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "bVar17 = *(byte *)(iVar18 + 0x41b8);" (assignment_expression "bVar17 = *(byte *)(iVar18 + 0x41b8)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x41b8)" * (cast_expression "(byte *)(iVar18 + 0x41b8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x41b8)" ( (binary_expression "iVar18 + 0x41b8" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = uVar30;" (assignment_expression "uVar7 = uVar30" identifier = identifier) ;) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) (if_statement "if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }" if (parenthesized_expression "((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0'))))))))" ( (binary_expression "(bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))" (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) || (parenthesized_expression "((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))" ( (parenthesized_expression "(bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0'))))))" ( (comma_expression "bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))" (assignment_expression "bVar23 = *(byte *)(iVar18 + 0x253d)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x253d)" * (cast_expression "(byte *)(iVar18 + 0x253d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x253d)" ( (binary_expression "iVar18 + 0x253d" identifier + number_literal) ))))) , (binary_expression "*(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))" (binary_expression "*(byte *)(iVar18 + 0x253d) == 0" (pointer_expression "*(byte *)(iVar18 + 0x253d)" * (cast_expression "(byte *)(iVar18 + 0x253d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x253d)" ( (binary_expression "iVar18 + 0x253d" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))" ( (parenthesized_expression "((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0'))))" ( (binary_expression "(*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))" (binary_expression "(*(uint *)(iVar12 + 0x198) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar12 + 0x198) & 2)" ( (binary_expression "*(uint *)(iVar12 + 0x198) & 2" (pointer_expression "*(uint *)(iVar12 + 0x198)" * (cast_expression "(uint *)(iVar12 + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x198)" ( (binary_expression "iVar12 + 0x198" identifier + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))" ( (parenthesized_expression "(bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0'))" ( (comma_expression "bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')" (assignment_expression "bVar23 = bVar17" identifier = identifier) , (binary_expression "(*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')" (binary_expression "(*(uint *)(iVar12 + 0x198) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar12 + 0x198) & 1)" ( (binary_expression "*(uint *)(iVar12 + 0x198) & 1" (pointer_expression "*(uint *)(iVar12 + 0x198)" * (cast_expression "(uint *)(iVar12 + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x198)" ( (binary_expression "iVar12 + 0x198" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )))) )) ))) )) )))) )) ))) )) (compound_statement "{\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }" { (if_statement "if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }" if (parenthesized_expression "((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0))" ( (binary_expression "(*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)" (parenthesized_expression "(*(byte *)(iVar18 + 0x423c) == 0)" ( (binary_expression "*(byte *)(iVar18 + 0x423c) == 0" (pointer_expression "*(byte *)(iVar18 + 0x423c)" * (cast_expression "(byte *)(iVar18 + 0x423c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x423c)" ( (binary_expression "iVar18 + 0x423c" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "((*(byte *)(iVar12 + 0x198) & 3) != 0)" ( (binary_expression "(*(byte *)(iVar12 + 0x198) & 3) != 0" (parenthesized_expression "(*(byte *)(iVar12 + 0x198) & 3)" ( (binary_expression "*(byte *)(iVar12 + 0x198) & 3" (pointer_expression "*(byte *)(iVar12 + 0x198)" * (cast_expression "(byte *)(iVar12 + 0x198)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x198)" ( (binary_expression "iVar12 + 0x198" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }" { (expression_statement "bVar17 = *(byte *)(iVar18 + 0x4170);" (assignment_expression "bVar17 = *(byte *)(iVar18 + 0x4170)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x4170)" * (cast_expression "(byte *)(iVar18 + 0x4170)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4170)" ( (binary_expression "iVar18 + 0x4170" identifier + number_literal) ))))) ;) (expression_statement "bVar23 = *(byte *)(iVar18 + 0x4128);" (assignment_expression "bVar23 = *(byte *)(iVar18 + 0x4128)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x4128)" * (cast_expression "(byte *)(iVar18 + 0x4128)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4128)" ( (binary_expression "iVar18 + 0x4128" identifier + number_literal) ))))) ;) (if_statement "if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }" { (labeled_statement "LAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }" statement_identifier : (if_statement "if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }" if (parenthesized_expression "((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0))" ( (binary_expression "(bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)" (parenthesized_expression "(bVar23 == 0)" ( (binary_expression "bVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "((*(byte *)(*local_44 + 0x198) & 2) == 0)" ( (binary_expression "(*(byte *)(*local_44 + 0x198) & 2) == 0" (parenthesized_expression "(*(byte *)(*local_44 + 0x198) & 2)" ( (binary_expression "*(byte *)(*local_44 + 0x198) & 2" (pointer_expression "*(byte *)(*local_44 + 0x198)" * (cast_expression "(byte *)(*local_44 + 0x198)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_44 + 0x198)" ( (binary_expression "*local_44 + 0x198" (pointer_expression "*local_44" * identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }" { (labeled_statement "LAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);" statement_identifier : (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;)) (expression_statement "bVar23 = bVar2;" (assignment_expression "bVar23 = bVar2" identifier = identifier) ;) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) }) (else_clause "else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }" else (compound_statement "{\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }" { (expression_statement "uVar13 = FUN_0015e510(*local_44);" (assignment_expression "uVar13 = FUN_0015e510(*local_44)" identifier = (call_expression "FUN_0015e510(*local_44)" identifier (argument_list "(*local_44)" ( (pointer_expression "*local_44" * identifier) )))) ;) (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((char)uVar13 != '\0') goto LAB_00113231;" if (parenthesized_expression "((char)uVar13 != '\0')" ( (binary_expression "(char)uVar13 != '\0'" (cast_expression "(char)uVar13" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00113231;" goto statement_identifier ;)) (if_statement "if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }" { comment (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",uVar13)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar7 = *(ulonglong *)(iVar18 + 0x412c);" (assignment_expression "uVar7 = *(ulonglong *)(iVar18 + 0x412c)" identifier = (pointer_expression "*(ulonglong *)(iVar18 + 0x412c)" * (cast_expression "(ulonglong *)(iVar18 + 0x412c)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x412c)" ( (binary_expression "iVar18 + 0x412c" identifier + number_literal) ))))) ;) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) })))) }) (else_clause "else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }" else (compound_statement "{\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }" { (if_statement "if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;" if (parenthesized_expression "((*(byte *)(iVar12 + 0x198) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar12 + 0x198) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar12 + 0x198) & 2)" ( (binary_expression "*(byte *)(iVar12 + 0x198) & 2" (pointer_expression "*(byte *)(iVar12 + 0x198)" * (cast_expression "(byte *)(iVar12 + 0x198)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x198)" ( (binary_expression "iVar12 + 0x198" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00113930;" goto statement_identifier ;)) (if_statement "if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }" if (parenthesized_expression "(bVar23 != 0)" ( (binary_expression "bVar23 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }" { (expression_statement "uVar13 = FUN_0015e510(iVar12);" (assignment_expression "uVar13 = FUN_0015e510(iVar12)" identifier = (call_expression "FUN_0015e510(iVar12)" identifier (argument_list "(iVar12)" ( identifier )))) ;) (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }" if (parenthesized_expression "((char)uVar13 == '\0')" ( (binary_expression "(char)uVar13 == '\0'" (cast_expression "(char)uVar13" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }" { (if_statement "if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }" { comment (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "bVar23 = *(byte *)(iVar18 + 0x4128);" (assignment_expression "bVar23 = *(byte *)(iVar18 + 0x4128)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x4128)" * (cast_expression "(byte *)(iVar18 + 0x4128)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4128)" ( (binary_expression "iVar18 + 0x4128" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001139b0;" goto statement_identifier ;) })) (if_statement "if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }" { comment (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",uVar13)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) })) (expression_statement "bVar23 = bVar17;" (assignment_expression "bVar23 = bVar17" identifier = identifier) ;) (expression_statement "uVar7 = *(ulonglong *)(iVar18 + 0x4174);" (assignment_expression "uVar7 = *(ulonglong *)(iVar18 + 0x4174)" identifier = (pointer_expression "*(ulonglong *)(iVar18 + 0x4174)" * (cast_expression "(ulonglong *)(iVar18 + 0x4174)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4174)" ( (binary_expression "iVar18 + 0x4174" identifier + number_literal) ))))) ;) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) }))) }) (else_clause "else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }" else (compound_statement "{\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }" { (expression_statement "bVar23 = *(byte *)(iVar18 + 0x423c);" (assignment_expression "bVar23 = *(byte *)(iVar18 + 0x423c)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x423c)" * (cast_expression "(byte *)(iVar18 + 0x423c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x423c)" ( (binary_expression "iVar18 + 0x423c" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(ulonglong *)(iVar18 + 0x4240);" (assignment_expression "uVar7 = *(ulonglong *)(iVar18 + 0x4240)" identifier = (pointer_expression "*(ulonglong *)(iVar18 + 0x4240)" * (cast_expression "(ulonglong *)(iVar18 + 0x4240)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4240)" ( (binary_expression "iVar18 + 0x4240" identifier + number_literal) ))))) ;) }))) })) }) (else_clause "else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }" else (compound_statement "{\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }" { (expression_statement "uVar30 = *(ulonglong *)(iVar12 + 0x164);" (assignment_expression "uVar30 = *(ulonglong *)(iVar12 + 0x164)" identifier = (pointer_expression "*(ulonglong *)(iVar12 + 0x164)" * (cast_expression "(ulonglong *)(iVar12 + 0x164)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x164)" ( (binary_expression "iVar12 + 0x164" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00113231:\n          bVar23 = bVar2;" statement_identifier : (expression_statement "bVar23 = bVar2;" (assignment_expression "bVar23 = bVar2" identifier = identifier) ;)) (expression_statement "uVar7 = uVar30;" (assignment_expression "uVar7 = uVar30" identifier = identifier) ;) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) (if_statement "if (iVar18 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) }))) (expression_statement "local_54 = *(uint *)(iVar18 + 0x5218);" (assignment_expression "local_54 = *(uint *)(iVar18 + 0x5218)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x5218)" * (cast_expression "(uint *)(iVar18 + 0x5218)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x5218)" ( (binary_expression "iVar18 + 0x5218" identifier + number_literal) ))))) ;) (expression_statement "local_50 = *(uint *)(iVar18 + 0x521c);" (assignment_expression "local_50 = *(uint *)(iVar18 + 0x521c)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x521c)" * (cast_expression "(uint *)(iVar18 + 0x521c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x521c)" ( (binary_expression "iVar18 + 0x521c" identifier + number_literal) ))))) ;) (expression_statement "local_6c = *(uint *)(iVar18 + 0x4e70);" (assignment_expression "local_6c = *(uint *)(iVar18 + 0x4e70)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x4e70)" * (cast_expression "(uint *)(iVar18 + 0x4e70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4e70)" ( (binary_expression "iVar18 + 0x4e70" identifier + number_literal) ))))) ;) (expression_statement "local_68 = *(uint *)(iVar18 + 0x4e74);" (assignment_expression "local_68 = *(uint *)(iVar18 + 0x4e74)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x4e74)" * (cast_expression "(uint *)(iVar18 + 0x4e74)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4e74)" ( (binary_expression "iVar18 + 0x4e74" identifier + number_literal) ))))) ;) (if_statement "if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }" if (parenthesized_expression "(local_50 == 0 && local_54 == 0)" ( (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" identifier == number_literal) && (binary_expression "local_54 == 0" identifier == number_literal)) )) (compound_statement "{\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }" { (expression_statement "iVar12 = *(int *)(param_2 + 4);" (assignment_expression "iVar12 = *(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 "local_54 = *(uint *)(iVar12 + 0x20);" (assignment_expression "local_54 = *(uint *)(iVar12 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x20)" * (cast_expression "(uint *)(iVar12 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "local_50 = *(uint *)(iVar12 + 0x24);" (assignment_expression "local_50 = *(uint *)(iVar12 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x24)" * (cast_expression "(uint *)(iVar12 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;" if (parenthesized_expression "(local_68 != 0 || local_6c != 0)" ( (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "local_6c != 0" identifier != number_literal)) )) (goto_statement "goto LAB_001135dc;" goto statement_identifier ;)) (labeled_statement "LAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);" statement_identifier : (expression_statement "local_6c = *(uint *)(iVar12 + 0x28);" (assignment_expression "local_6c = *(uint *)(iVar12 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x28)" * (cast_expression "(uint *)(iVar12 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) ;)) (expression_statement "local_68 = *(uint *)(iVar12 + 0x2c);" (assignment_expression "local_68 = *(uint *)(iVar12 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x2c)" * (cast_expression "(uint *)(iVar12 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) ))))) ;) (if_statement "if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }" if (parenthesized_expression "(local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))" ( (binary_expression "local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 < local_68" identifier < identifier) || (binary_expression "local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 - local_68" identifier - identifier) < (call_expression "(uint)(local_54 < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < local_6c)" ( (binary_expression "local_54 < local_6c" identifier < identifier) ))))) )) (compound_statement "{\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }" { (labeled_statement "LAB_001132a7:\n            local_6c = local_54;" statement_identifier : (expression_statement "local_6c = local_54;" (assignment_expression "local_6c = local_54" identifier = identifier) ;)) (expression_statement "local_68 = local_50;" (assignment_expression "local_68 = local_50" identifier = identifier) ;) })) }) (else_clause "else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }" else (compound_statement "{\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }" { (if_statement "if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }" if (parenthesized_expression "(local_68 == 0 && local_6c == 0)" ( (binary_expression "local_68 == 0 && local_6c == 0" (binary_expression "local_68 == 0" identifier == number_literal) && (binary_expression "local_6c == 0" identifier == number_literal)) )) (compound_statement "{\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }" { (expression_statement "iVar12 = *(int *)(param_2 + 4);" (assignment_expression "iVar12 = *(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) ))))) ;) (goto_statement "goto LAB_00113289;" goto statement_identifier ;) })) (labeled_statement "LAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;" statement_identifier : (if_statement "if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;" if (parenthesized_expression "(local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))" ( (binary_expression "local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 < local_68" identifier < identifier) || (binary_expression "local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 - local_68" identifier - identifier) < (call_expression "(uint)(local_54 < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < local_6c)" ( (binary_expression "local_54 < local_6c" identifier < identifier) ))))) )) (goto_statement "goto LAB_001132a7;" goto statement_identifier ;))) }))) (expression_statement "lVar6 = CONCAT44(local_50,local_54);" (assignment_expression "lVar6 = CONCAT44(local_50,local_54)" identifier = (call_expression "CONCAT44(local_50,local_54)" identifier (argument_list "(local_50,local_54)" ( identifier , identifier )))) ;) (if_statement "if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }" if (parenthesized_expression "(((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54)))" ( (binary_expression "((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))" (parenthesized_expression "((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0'))" ( (binary_expression "(*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')" (parenthesized_expression "(*(char *)(iVar18 + 0x24c1) == '\0')" ( (binary_expression "*(char *)(iVar18 + 0x24c1) == '\0'" (pointer_expression "*(char *)(iVar18 + 0x24c1)" * (cast_expression "(char *)(iVar18 + 0x24c1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x24c1)" ( (binary_expression "iVar18 + 0x24c1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar18 + 0x253d) == '\0')" ( (binary_expression "*(char *)(iVar18 + 0x253d) == '\0'" (pointer_expression "*(char *)(iVar18 + 0x253d)" * (cast_expression "(char *)(iVar18 + 0x253d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x253d)" ( (binary_expression "iVar18 + 0x253d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))" ( (comma_expression "iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54)" (assignment_expression "iVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) , (binary_expression "*(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54)" (binary_expression "*(uint *)(iVar12 + 0x180) < local_50" (pointer_expression "*(uint *)(iVar12 + 0x180)" * (cast_expression "(uint *)(iVar12 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x180)" ( (binary_expression "iVar12 + 0x180" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54)" (binary_expression "*(uint *)(iVar12 + 0x180) - local_50" (pointer_expression "*(uint *)(iVar12 + 0x180)" * (cast_expression "(uint *)(iVar12 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x180)" ( (binary_expression "iVar12 + 0x180" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(iVar12 + 0x17c) < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar12 + 0x17c) < local_54)" ( (binary_expression "*(uint *)(iVar12 + 0x17c) < local_54" (pointer_expression "*(uint *)(iVar12 + 0x17c)" * (cast_expression "(uint *)(iVar12 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x17c)" ( (binary_expression "iVar12 + 0x17c" identifier + number_literal) )))) < identifier) )))))) ))) )) (compound_statement "{\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }" { (expression_statement "*(uint *)(iVar12 + 0x17c) = local_54;" (assignment_expression "*(uint *)(iVar12 + 0x17c) = local_54" (pointer_expression "*(uint *)(iVar12 + 0x17c)" * (cast_expression "(uint *)(iVar12 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x17c)" ( (binary_expression "iVar12 + 0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0x180) = local_50;" (assignment_expression "*(uint *)(iVar12 + 0x180) = local_50" (pointer_expression "*(uint *)(iVar12 + 0x180)" * (cast_expression "(uint *)(iVar12 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x180)" ( (binary_expression "iVar12 + 0x180" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "local_24 = lVar32;" (assignment_expression "local_24 = lVar32" identifier = identifier) ;) (if_statement "if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }" if (parenthesized_expression "(bVar23 == 0)" ( (binary_expression "bVar23 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }" { (expression_statement "lVar31 = FUN_0015e5e0(*local_44);" (assignment_expression "lVar31 = FUN_0015e5e0(*local_44)" identifier = (call_expression "FUN_0015e5e0(*local_44)" identifier (argument_list "(*local_44)" ( (pointer_expression "*local_44" * identifier) )))) ;) (expression_statement "uVar21 = (uint)((ulonglong)lVar31 >> 0x20);" (assignment_expression "uVar21 = (uint)((ulonglong)lVar31 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar25 = (uint)lVar31;" (assignment_expression "uVar25 = (uint)lVar31" identifier = (cast_expression "(uint)lVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar26 = uVar25 | uVar21;" (assignment_expression "uVar26 = uVar25 | uVar21" identifier = (binary_expression "uVar25 | uVar21" identifier | identifier)) ;) (if_statement "if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }" if (parenthesized_expression "((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21))" ( (binary_expression "(uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)" (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)" ( (binary_expression "uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21" (binary_expression "uVar21 <= local_50" identifier <= identifier) && (binary_expression "(uint)(local_54 < uVar25) <= local_50 - uVar21" (call_expression "(uint)(local_54 < uVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar25)" ( (binary_expression "local_54 < uVar25" identifier < identifier) ))) <= (binary_expression "local_50 - uVar21" identifier - identifier))) ))) )) (compound_statement "{\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }" { (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (expression_statement "uVar9 = uVar7;" (assignment_expression "uVar9 = uVar7" identifier = identifier) ;) }) (else_clause "else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }" else (compound_statement "{\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }" { (expression_statement "lVar31 = lVar31 + (uVar7 - 1);" (assignment_expression "lVar31 = lVar31 + (uVar7 - 1)" identifier = (binary_expression "lVar31 + (uVar7 - 1)" identifier + (parenthesized_expression "(uVar7 - 1)" ( (binary_expression "uVar7 - 1" identifier - number_literal) )))) ;) (expression_statement "uVar26 = (uint)lVar31 & -uVar25;" (assignment_expression "uVar26 = (uint)lVar31 & -uVar25" identifier = (binary_expression "(uint)lVar31 & -uVar25" (cast_expression "(uint)lVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-uVar25" - identifier))) ;) (expression_statement "uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);" (assignment_expression "uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26)" identifier (argument_list "((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26)" ( (binary_expression "(uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0))" (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-(uVar21 + (uVar25 != 0))" - (parenthesized_expression "(uVar21 + (uVar25 != 0))" ( (binary_expression "uVar21 + (uVar25 != 0)" identifier + (parenthesized_expression "(uVar25 != 0)" ( (binary_expression "uVar25 != 0" identifier != number_literal) ))) )))) , identifier )))) ;) (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) }))) (expression_statement "local_84 = (undefined *)uVar9;" (assignment_expression "local_84 = (undefined *)uVar9" identifier = (cast_expression "(undefined *)uVar9" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_80 = (undefined *)(uVar9 >> 0x20);" (assignment_expression "local_80 = (undefined *)(uVar9 >> 0x20)" identifier = (cast_expression "(undefined *)(uVar9 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 >> 0x20)" ( (binary_expression "uVar9 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" identifier = identifier) ;) (if_statement "if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }" if (parenthesized_expression "(iVar12 != param_3)" ( (binary_expression "iVar12 != param_3" identifier != identifier) )) (compound_statement "{\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }" { (expression_statement "uVar26 = (local_50 - 1) + (uint)(local_54 != 0);" (assignment_expression "uVar26 = (local_50 - 1) + (uint)(local_54 != 0)" identifier = (binary_expression "(local_50 - 1) + (uint)(local_54 != 0)" (parenthesized_expression "(local_50 - 1)" ( (binary_expression "local_50 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) ))))) ;) (if_statement "if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }" if (parenthesized_expression "(((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0)" ( (binary_expression "((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0" (binary_expression "((uint)local_80 & uVar26) != 0" (parenthesized_expression "((uint)local_80 & uVar26)" ( (binary_expression "(uint)local_80 & uVar26" (cast_expression "(uint)local_80" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )) != number_literal) || (binary_expression "((uint)local_84 & local_54 - 1) != 0" (parenthesized_expression "((uint)local_84 & local_54 - 1)" ( (binary_expression "(uint)local_84 & local_54 - 1" (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "local_54 - 1" identifier - number_literal)) )) != number_literal)) )) (compound_statement "{\n              uVar8 = uVar9 + lVar6;\n            }" { (expression_statement "uVar8 = uVar9 + lVar6;" (assignment_expression "uVar8 = uVar9 + lVar6" identifier = (binary_expression "uVar9 + lVar6" identifier + identifier)) ;) })) (expression_statement "local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);" (assignment_expression "local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1)" identifier = (binary_expression "lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1)" identifier + (call_expression "CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1)" identifier (argument_list "((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1)" ( (binary_expression "(uint)(uVar8 - uVar7 >> 0x20) & uVar26" (call_expression "(uint)(uVar8 - uVar7 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 - uVar7 >> 0x20)" ( (binary_expression "uVar8 - uVar7 >> 0x20" (binary_expression "uVar8 - uVar7" identifier - identifier) >> number_literal) ))) & identifier) , (binary_expression "(uint)(uVar8 - uVar7) & local_54 - 1" (call_expression "(uint)(uVar8 - uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 - uVar7)" ( (binary_expression "uVar8 - uVar7" identifier - identifier) ))) & (binary_expression "local_54 - 1" identifier - number_literal)) ))))) ;) (goto_statement "goto LAB_00113314;" goto statement_identifier ;) })) (if_statement "if (lVar32 != 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }" if (parenthesized_expression "(lVar32 != 0)" ( (binary_expression "lVar32 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }" { comment (expression_statement "FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);" (call_expression "FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26)" identifier (argument_list "("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar12 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }" { comment (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",0);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",0)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",0)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , number_literal ))) ;) })) (if_statement "if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }" if (parenthesized_expression "(*(char *)(iVar12 + 0x3344) == '\0')" ( (binary_expression "*(char *)(iVar12 + 0x3344) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x3344)" * (cast_expression "(char *)(iVar12 + 0x3344)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3344)" ( (binary_expression "iVar12 + 0x3344" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }" { (expression_statement "iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);" (assignment_expression "iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38)" identifier = (pointer_expression "*(int *)(*(int *)(param_2 + 4) + 0x38)" * (cast_expression "(int *)(*(int *)(param_2 + 4) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 4) + 0x38)" ( (binary_expression "*(int *)(param_2 + 4) + 0x38" (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) )))) + number_literal) ))))) ;) (expression_statement "uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);" (assignment_expression "uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34)" identifier = (pointer_expression "*(uint *)(*(int *)(param_2 + 4) + 0x34)" * (cast_expression "(uint *)(*(int *)(param_2 + 4) + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 4) + 0x34)" ( (binary_expression "*(int *)(param_2 + 4) + 0x34" (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) )))) + number_literal) ))))) ;) }) (else_clause "else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }" else (compound_statement "{\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }" { (expression_statement "uVar26 = *(uint *)(iVar12 + 0x3348);" (assignment_expression "uVar26 = *(uint *)(iVar12 + 0x3348)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x3348)" * (cast_expression "(uint *)(iVar12 + 0x3348)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3348)" ( (binary_expression "iVar12 + 0x3348" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(iVar12 + 0x334c);" (assignment_expression "iVar18 = *(int *)(iVar12 + 0x334c)" identifier = (pointer_expression "*(int *)(iVar12 + 0x334c)" * (cast_expression "(int *)(iVar12 + 0x334c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x334c)" ( (binary_expression "iVar12 + 0x334c" identifier + number_literal) ))))) ;) }))) (expression_statement "puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;" (assignment_expression "puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18" identifier = (binary_expression "local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18" (binary_expression "local_c0 + (uint)CARRY4(uVar26,(uint)local_c4)" identifier + (cast_expression "(uint)CARRY4(uVar26,(uint)local_c4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar26,(uint)local_c4)" identifier (argument_list "(uVar26,(uint)local_c4)" ( identifier , (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + identifier)) ;) (if_statement "if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }" if (parenthesized_expression "(local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26))" ( (binary_expression "local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)" (binary_expression "local_80 < puVar15" identifier < identifier) || (binary_expression "(uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)" (call_expression "(uint)((int)local_80 - (int)puVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_80 - (int)puVar15)" ( (binary_expression "(int)local_80 - (int)puVar15" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(local_84 < local_c4 + uVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_84 < local_c4 + uVar26)" ( (binary_expression "local_84 < local_c4 + uVar26" identifier < (binary_expression "local_c4 + uVar26" identifier + identifier)) ))))) )) (compound_statement "{\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }" { (expression_statement "uVar8 = CONCAT44(puVar15,local_c4 + uVar26);" (assignment_expression "uVar8 = CONCAT44(puVar15,local_c4 + uVar26)" identifier = (call_expression "CONCAT44(puVar15,local_c4 + uVar26)" identifier (argument_list "(puVar15,local_c4 + uVar26)" ( identifier , (binary_expression "local_c4 + uVar26" identifier + identifier) )))) ;) })) (expression_statement "iVar18 = param_3;" (assignment_expression "iVar18 = param_3" identifier = identifier) ;) (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) (if_statement "if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }" if (parenthesized_expression "(local_50 != 0 || local_54 != 0)" ( (binary_expression "local_50 != 0 || local_54 != 0" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "local_54 != 0" identifier != number_literal)) )) (compound_statement "{\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }" { (expression_statement "lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);" (assignment_expression "lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" identifier = (binary_expression "uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" identifier + (call_expression "CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" identifier (argument_list "((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" ( (binary_expression "(local_50 - 1) + (uint)(local_54 != 0)" (parenthesized_expression "(local_50 - 1)" ( (binary_expression "local_50 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )))) , (binary_expression "local_54 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);" (assignment_expression "uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54)" identifier (argument_list "((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54)" ( (binary_expression "(uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0))" (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-(local_50 + (local_54 != 0))" - (parenthesized_expression "(local_50 + (local_54 != 0))" ( (binary_expression "local_50 + (local_54 != 0)" identifier + (parenthesized_expression "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) ))) )))) , (binary_expression "(uint)lVar31 & -local_54" (cast_expression "(uint)lVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-local_54" - identifier)) )))) ;) (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) })) }) (else_clause "else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }" else (compound_statement "{\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) (labeled_statement "LAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);" statement_identifier : (expression_statement "iVar12 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;)) (if_statement "if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "iVar18 = *local_44;" (assignment_expression "iVar18 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) }))) (expression_statement "local_80 = (undefined *)(uVar9 >> 0x20);" (assignment_expression "local_80 = (undefined *)(uVar9 >> 0x20)" identifier = (cast_expression "(undefined *)(uVar9 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 >> 0x20)" ( (binary_expression "uVar9 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_84 = (undefined *)uVar9;" (assignment_expression "local_84 = (undefined *)uVar9" identifier = (cast_expression "(undefined *)uVar9" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_70 = (uint)(uVar8 >> 0x20);" (assignment_expression "local_70 = (uint)(uVar8 >> 0x20)" identifier = (call_expression "(uint)(uVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 >> 0x20)" ( (binary_expression "uVar8 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar8;" (assignment_expression "local_74 = (uint)uVar8" identifier = (cast_expression "(uint)uVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }" if (parenthesized_expression "((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0'))" ( (binary_expression "(*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')" (parenthesized_expression "(*(char *)(iVar12 + 0x24c1) == '\0')" ( (binary_expression "*(char *)(iVar12 + 0x24c1) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x24c1)" * (cast_expression "(char *)(iVar12 + 0x24c1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24c1)" ( (binary_expression "iVar12 + 0x24c1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar12 + 0x253d) == '\0')" ( (binary_expression "*(char *)(iVar12 + 0x253d) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x253d)" * (cast_expression "(char *)(iVar12 + 0x253d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x253d)" ( (binary_expression "iVar12 + 0x253d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }" { (expression_statement "lVar29 = FUN_0015e5e0(iVar18);" (assignment_expression "lVar29 = FUN_0015e5e0(iVar18)" identifier = (call_expression "FUN_0015e5e0(iVar18)" identifier (argument_list "(iVar18)" ( identifier )))) ;) (expression_statement "uVar26 = (uint)((ulonglong)lVar29 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar29 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar29 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar29 >> 0x20)" ( (binary_expression "(ulonglong)lVar29 >> 0x20" (cast_expression "(ulonglong)lVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }" if (parenthesized_expression "(uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54))" ( (binary_expression "uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)" (binary_expression "uVar26 < local_50" identifier < identifier) || (binary_expression "uVar26 - local_50 < (uint)((uint)lVar29 < local_54)" (binary_expression "uVar26 - local_50" identifier - identifier) < (call_expression "(uint)((uint)lVar29 < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)lVar29 < local_54)" ( (binary_expression "(uint)lVar29 < local_54" (cast_expression "(uint)lVar29" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (compound_statement "{\n            lVar29 = lVar6;\n          }" { (expression_statement "lVar29 = lVar6;" (assignment_expression "lVar29 = lVar6" identifier = identifier) ;) })) (expression_statement "uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;" (assignment_expression "uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70" identifier = (binary_expression "(uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70" (binary_expression "(uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20)" (cast_expression "(uint)local_24._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_24._4_4_" identifier . field_identifier)) & (unary_expression "-(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20)" - (cast_expression "(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar29 + 0xffffffff) >> 0x20)" ( (binary_expression "(ulonglong)(lVar29 + 0xffffffff) >> 0x20" (call_expression "(ulonglong)(lVar29 + 0xffffffff)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar29 + 0xffffffff)" ( (binary_expression "lVar29 + 0xffffffff" identifier + number_literal) ))) >> number_literal) ))))) | (binary_expression "(int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70" (binary_expression "(int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0)" (binary_expression "(int)((ulonglong)lVar29 >> 0x20) + -1" (cast_expression "(int)((ulonglong)lVar29 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar29 >> 0x20)" ( (binary_expression "(ulonglong)lVar29 >> 0x20" (cast_expression "(ulonglong)lVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + number_literal) + (call_expression "(uint)((int)lVar29 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar29 != 0)" ( (binary_expression "(int)lVar29 != 0" (cast_expression "(int)lVar29" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) & identifier))) ;) (expression_statement "uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);" (assignment_expression "uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff)" identifier = (binary_expression "(uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff)" (binary_expression "(uint)(undefined *)local_24 & -(int)lVar29" (cast_expression "(uint)(undefined *)local_24" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & (unary_expression "-(int)lVar29" - (cast_expression "(int)lVar29" ( (type_descriptor "int" primitive_type) ) identifier))) | (binary_expression "local_74 & (uint)(lVar29 + 0xffffffff)" identifier & (call_expression "(uint)(lVar29 + 0xffffffff)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar29 + 0xffffffff)" ( (binary_expression "lVar29 + 0xffffffff" identifier + number_literal) )))))) ;) (expression_statement "lVar31 = CONCAT44(uVar25,uVar26);" (assignment_expression "lVar31 = CONCAT44(uVar25,uVar26)" identifier = (call_expression "CONCAT44(uVar25,uVar26)" identifier (argument_list "(uVar25,uVar26)" ( identifier , identifier )))) ;) (if_statement "if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }" if (parenthesized_expression "(uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24))" ( (binary_expression "uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)" (binary_expression "uVar25 < local_24._4_4_" identifier < (field_expression "local_24._4_4_" identifier . field_identifier)) || (binary_expression "uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)" (binary_expression "uVar25 - (int)local_24._4_4_" identifier - (cast_expression "(int)local_24._4_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_24._4_4_" identifier . field_identifier))) < (call_expression "(uint)(uVar26 < (undefined *)local_24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar26 < (undefined *)local_24)" ( (binary_expression "uVar26 < (undefined *)local_24" identifier < (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))))) )) (compound_statement "{\n            lVar31 = lVar29 + lVar31;\n          }" { (expression_statement "lVar31 = lVar29 + lVar31;" (assignment_expression "lVar31 = lVar29 + lVar31" identifier = (binary_expression "lVar29 + lVar31" identifier + identifier)) ;) })) }) (else_clause "else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }" else (compound_statement "{\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }" { (expression_statement "lVar29 = FUN_0015e5e0(iVar18);" (assignment_expression "lVar29 = FUN_0015e5e0(iVar18)" identifier = (call_expression "FUN_0015e5e0(iVar18)" identifier (argument_list "(iVar18)" ( identifier )))) ;) (expression_statement "lVar31 = local_24;" (assignment_expression "lVar31 = local_24" identifier = identifier) ;) (if_statement "if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }" if (parenthesized_expression "(lVar29 != 0)" ( (binary_expression "lVar29 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }" { (expression_statement "lVar31 = lVar29 + local_24 + -1;" (assignment_expression "lVar31 = lVar29 + local_24 + -1" identifier = (binary_expression "lVar29 + local_24 + -1" (binary_expression "lVar29 + local_24" identifier + identifier) + number_literal)) ;) (expression_statement "lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);" (assignment_expression "lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29)" identifier (argument_list "((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29)" ( (binary_expression "(uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0))" (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0))" - (parenthesized_expression "((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0))" ( (binary_expression "(int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)" (cast_expression "(int)((ulonglong)lVar29 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar29 >> 0x20)" ( (binary_expression "(ulonglong)lVar29 >> 0x20" (cast_expression "(ulonglong)lVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (call_expression "(uint)((int)lVar29 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar29 != 0)" ( (binary_expression "(int)lVar29 != 0" (cast_expression "(int)lVar29" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) )))) , (binary_expression "(uint)lVar31 & -(int)lVar29" (cast_expression "(uint)lVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar29" - (cast_expression "(int)lVar29" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) })) }))) (expression_statement "local_2d = '\0';" (assignment_expression "local_2d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar12 = *param_4;" (assignment_expression "iVar12 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "local_24 = lVar31;" (assignment_expression "local_24 = lVar31" identifier = identifier) ;) (expression_statement "uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);" (assignment_expression "uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4)" identifier = (call_expression "FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4)" identifier (argument_list "(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4)" ( (pointer_expression "*local_44" * identifier) , identifier , identifier , number_literal , identifier , (pointer_expression "&local_2c" & identifier) , (pointer_expression "&local_2d" & identifier) , (pointer_expression "&local_24" & identifier) , identifier )))) ;) (if_statement "if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9))" ( (binary_expression "((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)" (parenthesized_expression "((bVar23 == 0) && (local_2d != '\x01'))" ( (binary_expression "(bVar23 == 0) && (local_2d != '\x01')" (parenthesized_expression "(bVar23 == 0)" ( (binary_expression "bVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_2d != '\x01')" ( (binary_expression "local_2d != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(uVar8 != uVar9)" ( (binary_expression "uVar8 != uVar9" identifier != identifier) ))) )) (compound_statement "{\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }" { (expression_statement "cVar10 = FUN_001a5170(DAT_004144e8);" (assignment_expression "cVar10 = FUN_001a5170(DAT_004144e8)" identifier = (call_expression "FUN_001a5170(DAT_004144e8)" identifier (argument_list "(DAT_004144e8)" ( identifier )))) ;) (if_statement "if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }" { (expression_statement "uVar26 = local_6c - 1;" (assignment_expression "uVar26 = local_6c - 1" identifier = (binary_expression "local_6c - 1" identifier - number_literal)) ;) (expression_statement "uVar21 = (local_68 - 1) + (uint)(local_6c != 0);" (assignment_expression "uVar21 = (local_68 - 1) + (uint)(local_6c != 0)" identifier = (binary_expression "(local_68 - 1) + (uint)(local_6c != 0)" (parenthesized_expression "(local_68 - 1)" ( (binary_expression "local_68 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_6c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) ))))) ;) (expression_statement "uVar25 = local_6c - (uVar26 & (uint)local_84);" (assignment_expression "uVar25 = local_6c - (uVar26 & (uint)local_84)" identifier = (binary_expression "local_6c - (uVar26 & (uint)local_84)" identifier - (parenthesized_expression "(uVar26 & (uint)local_84)" ( (binary_expression "uVar26 & (uint)local_84" identifier & (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));" (assignment_expression "iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84))" identifier = (binary_expression "(local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84))" (parenthesized_expression "(local_68 - (uVar21 & (uint)local_80))" ( (binary_expression "local_68 - (uVar21 & (uint)local_80)" identifier - (parenthesized_expression "(uVar21 & (uint)local_80)" ( (binary_expression "uVar21 & (uint)local_80" identifier & (cast_expression "(uint)local_80" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) - (call_expression "(uint)(local_6c < (uVar26 & (uint)local_84))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_6c < (uVar26 & (uint)local_84))" ( (binary_expression "local_6c < (uVar26 & (uint)local_84)" identifier < (parenthesized_expression "(uVar26 & (uint)local_84)" ( (binary_expression "uVar26 & (uint)local_84" identifier & (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) ))))) ;) (expression_statement "uVar16 = uVar26 & (uint)uVar30;" (assignment_expression "uVar16 = uVar26 & (uint)uVar30" identifier = (binary_expression "uVar26 & (uint)uVar30" identifier & (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar24 = (uint)(uVar30 >> 0x20) & uVar21;" (assignment_expression "uVar24 = (uint)(uVar30 >> 0x20) & uVar21" identifier = (binary_expression "(uint)(uVar30 >> 0x20) & uVar21" (call_expression "(uint)(uVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar30 >> 0x20)" ( (binary_expression "uVar30 >> 0x20" identifier >> number_literal) ))) & identifier)) ;) (if_statement "if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }" if (parenthesized_expression "((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0))" ( (binary_expression "(uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)" (parenthesized_expression "(uVar25 != 0 || iVar18 != 0)" ( (binary_expression "uVar25 != 0 || iVar18 != 0" (binary_expression "uVar25 != 0" identifier != number_literal) || (binary_expression "iVar18 != 0" identifier != number_literal)) )) && (parenthesized_expression "(uVar16 != 0 || uVar24 != 0)" ( (binary_expression "uVar16 != 0 || uVar24 != 0" (binary_expression "uVar16 != 0" identifier != number_literal) || (binary_expression "uVar24 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }" { (expression_statement "uVar27 = -(local_68 + (local_6c != 0));" (assignment_expression "uVar27 = -(local_68 + (local_6c != 0))" identifier = (unary_expression "-(local_68 + (local_6c != 0))" - (parenthesized_expression "(local_68 + (local_6c != 0))" ( (binary_expression "local_68 + (local_6c != 0)" identifier + (parenthesized_expression "(local_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) ))) )))) ;) (if_statement "if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }" if (parenthesized_expression "((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24))" ( (binary_expression "(((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)" (parenthesized_expression "(((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0)" ( (binary_expression "((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0" (binary_expression "((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0" (parenthesized_expression "((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27)" ( (binary_expression "(uint)((uVar30 ^ uVar9) >> 0x20) & uVar27" (call_expression "(uint)((uVar30 ^ uVar9) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar30 ^ uVar9) >> 0x20)" ( (binary_expression "(uVar30 ^ uVar9) >> 0x20" (parenthesized_expression "(uVar30 ^ uVar9)" ( (binary_expression "uVar30 ^ uVar9" identifier ^ identifier) )) >> number_literal) ))) & identifier) )) != number_literal) || (binary_expression "((uint)(uVar30 ^ uVar9) & -local_6c) != 0" (parenthesized_expression "((uint)(uVar30 ^ uVar9) & -local_6c)" ( (binary_expression "(uint)(uVar30 ^ uVar9) & -local_6c" (call_expression "(uint)(uVar30 ^ uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar30 ^ uVar9)" ( (binary_expression "uVar30 ^ uVar9" identifier ^ identifier) ))) & (unary_expression "-local_6c" - identifier)) )) != number_literal)) )) && (parenthesized_expression "(uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)" ( (comma_expression "uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24" (assignment_expression "uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16)" identifier = (binary_expression "iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16)" (binary_expression "iVar18 + uVar24" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar25,uVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar25,uVar16)" identifier (argument_list "(uVar25,uVar16)" ( identifier , identifier )))))) , (binary_expression "uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24" (binary_expression "uVar24 <= local_68" identifier <= identifier) && (binary_expression "(uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24" (call_expression "(uint)(local_6c < uVar25 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_6c < uVar25 + uVar16)" ( (binary_expression "local_6c < uVar25 + uVar16" identifier < (binary_expression "uVar25 + uVar16" identifier + identifier)) ))) <= (binary_expression "local_68 - uVar24" identifier - identifier)))) ))) )) (compound_statement "{\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }" { (expression_statement "*param_4 = iVar12;" (assignment_expression "*param_4 = iVar12" (pointer_expression "*param_4" * identifier) = identifier) ;) (if_statement "if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }" if (parenthesized_expression "(local_68 != 0 || local_6c != 0)" ( (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "local_6c != 0" identifier != number_literal)) )) (compound_statement "{\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }" { (expression_statement "lVar31 = uVar9 + CONCAT44(uVar21,uVar26);" (assignment_expression "lVar31 = uVar9 + CONCAT44(uVar21,uVar26)" identifier = (binary_expression "uVar9 + CONCAT44(uVar21,uVar26)" identifier + (call_expression "CONCAT44(uVar21,uVar26)" identifier (argument_list "(uVar21,uVar26)" ( identifier , identifier ))))) ;) (expression_statement "uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);" (assignment_expression "uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31)" identifier (argument_list "((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31)" ( (binary_expression "(uint)((ulonglong)lVar31 >> 0x20) & uVar27" (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & identifier) , (binary_expression "-local_6c & (uint)lVar31" (unary_expression "-local_6c" - identifier) & (cast_expression "(uint)lVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) })) (expression_statement "lVar31 = FUN_0015e5e0(*local_44);" (assignment_expression "lVar31 = FUN_0015e5e0(*local_44)" identifier = (call_expression "FUN_0015e5e0(*local_44)" identifier (argument_list "(*local_44)" ( (pointer_expression "*local_44" * identifier) )))) ;) (if_statement "if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }" if (parenthesized_expression "(lVar31 != 0)" ( (binary_expression "lVar31 != 0" identifier != number_literal) )) (compound_statement "{\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }" { (expression_statement "lVar29 = lVar31 + uVar9 + -1;" (assignment_expression "lVar29 = lVar31 + uVar9 + -1" identifier = (binary_expression "lVar31 + uVar9 + -1" (binary_expression "lVar31 + uVar9" identifier + identifier) + number_literal)) ;) (expression_statement "uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);" (assignment_expression "uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31)" identifier (argument_list "((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31)" ( (binary_expression "(uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (call_expression "(uint)((ulonglong)lVar29 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar29 >> 0x20)" ( (binary_expression "(ulonglong)lVar29 >> 0x20" (cast_expression "(ulonglong)lVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" - (parenthesized_expression "((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" ( (binary_expression "(int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)" (cast_expression "(int)((ulonglong)lVar31 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (call_expression "(uint)((int)lVar31 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar31 != 0)" ( (binary_expression "(int)lVar31 != 0" (cast_expression "(int)lVar31" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) )))) , (binary_expression "(uint)lVar29 & -(int)lVar31" (cast_expression "(uint)lVar29" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar31" - (cast_expression "(int)lVar31" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) })) (expression_statement "local_80 = (undefined *)(uVar9 >> 0x20);" (assignment_expression "local_80 = (undefined *)(uVar9 >> 0x20)" identifier = (cast_expression "(undefined *)(uVar9 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 >> 0x20)" ( (binary_expression "uVar9 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_84 = (undefined *)uVar9;" (assignment_expression "local_84 = (undefined *)uVar9" identifier = (cast_expression "(undefined *)uVar9" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar26 = local_54 - 1;" (assignment_expression "uVar26 = local_54 - 1" identifier = (binary_expression "local_54 - 1" identifier - number_literal)) ;) (expression_statement "uVar25 = (local_50 - 1) + (uint)(local_54 != 0);" (assignment_expression "uVar25 = (local_50 - 1) + (uint)(local_54 != 0)" identifier = (binary_expression "(local_50 - 1) + (uint)(local_54 != 0)" (parenthesized_expression "(local_50 - 1)" ( (binary_expression "local_50 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) ))))) ;) (expression_statement "local_6c = (uint)local_84 & uVar26;" (assignment_expression "local_6c = (uint)local_84 & uVar26" identifier = (binary_expression "(uint)local_84 & uVar26" (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier)) ;) (expression_statement "local_74 = (uint)local_80 & uVar25;" (assignment_expression "local_74 = (uint)local_80 & uVar25" identifier = (binary_expression "(uint)local_80 & uVar25" (cast_expression "(uint)local_80" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier)) ;) (if_statement "if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }" if (parenthesized_expression "(local_6c != 0 || local_74 != 0)" ( (binary_expression "local_6c != 0 || local_74 != 0" (binary_expression "local_6c != 0" identifier != number_literal) || (binary_expression "local_74 != 0" identifier != number_literal)) )) (compound_statement "{\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }" { (expression_statement "lVar31 = uVar9 + lVar6;" (assignment_expression "lVar31 = uVar9 + lVar6" identifier = (binary_expression "uVar9 + lVar6" identifier + identifier)) ;) (expression_statement "uVar9 = uVar9 + lVar6;" (assignment_expression "uVar9 = uVar9 + lVar6" identifier = (binary_expression "uVar9 + lVar6" identifier + identifier)) ;) (expression_statement "local_6c = uVar26 & (uint)lVar31;" (assignment_expression "local_6c = uVar26 & (uint)lVar31" identifier = (binary_expression "uVar26 & (uint)lVar31" identifier & (cast_expression "(uint)lVar31" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);" (assignment_expression "local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20)" identifier = (binary_expression "uVar25 & (uint)((ulonglong)lVar31 >> 0x20)" identifier & (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))))) ;) })) (expression_statement "lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));" (assignment_expression "lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7))" identifier = (binary_expression "lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7))" identifier + (call_expression "CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7))" identifier (argument_list "(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7))" ( (binary_expression "uVar25 & (uint)(uVar9 - uVar7 >> 0x20)" identifier & (call_expression "(uint)(uVar9 - uVar7 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 - uVar7 >> 0x20)" ( (binary_expression "uVar9 - uVar7 >> 0x20" (binary_expression "uVar9 - uVar7" identifier - identifier) >> number_literal) )))) , (binary_expression "uVar26 & (uint)(uVar9 - uVar7)" identifier & (call_expression "(uint)(uVar9 - uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 - uVar7)" ( (binary_expression "uVar9 - uVar7" identifier - identifier) )))) ))))) ;) (expression_statement "uVar26 = (uint)lVar32;" (assignment_expression "uVar26 = (uint)lVar32" identifier = (cast_expression "(uint)lVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar25 = (uint)((ulonglong)lVar32 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar32 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar32 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar32 >> 0x20)" ( (binary_expression "(ulonglong)lVar32 >> 0x20" (cast_expression "(ulonglong)lVar32" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_dc = local_6c | -local_54 & uVar26;" (assignment_expression "local_dc = local_6c | -local_54 & uVar26" identifier = (binary_expression "local_6c | -local_54 & uVar26" identifier | (binary_expression "-local_54 & uVar26" (unary_expression "-local_54" - identifier) & identifier))) ;) (expression_statement "local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;" (assignment_expression "local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25" identifier = (binary_expression "local_74 | -(local_50 + (local_54 != 0)) & uVar25" identifier | (binary_expression "-(local_50 + (local_54 != 0)) & uVar25" (unary_expression "-(local_50 + (local_54 != 0))" - (parenthesized_expression "(local_50 + (local_54 != 0))" ( (binary_expression "local_50 + (local_54 != 0)" identifier + (parenthesized_expression "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) ))) ))) & identifier))) ;) (if_statement "if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }" if (parenthesized_expression "(local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26))" ( (binary_expression "local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)" (binary_expression "local_d8 < uVar25" identifier < identifier) || (binary_expression "local_d8 - uVar25 < (uint)(local_dc < uVar26)" (binary_expression "local_d8 - uVar25" identifier - identifier) < (call_expression "(uint)(local_dc < uVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_dc < uVar26)" ( (binary_expression "local_dc < uVar26" identifier < identifier) ))))) )) (compound_statement "{\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }" { (expression_statement "bVar28 = CARRY4(local_dc,local_54);" (assignment_expression "bVar28 = CARRY4(local_dc,local_54)" identifier = (call_expression "CARRY4(local_dc,local_54)" identifier (argument_list "(local_dc,local_54)" ( identifier , identifier )))) ;) (expression_statement "local_dc = local_dc + local_54;" (assignment_expression "local_dc = local_dc + local_54" identifier = (binary_expression "local_dc + local_54" identifier + identifier)) ;) (expression_statement "local_d8 = local_d8 + local_50 + (uint)bVar28;" (assignment_expression "local_d8 = local_d8 + local_50 + (uint)bVar28" identifier = (binary_expression "local_d8 + local_50 + (uint)bVar28" (binary_expression "local_d8 + local_50" identifier + identifier) + (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "local_24._0_4_ = (undefined *)local_dc;" (assignment_expression "local_24._0_4_ = (undefined *)local_dc" (field_expression "local_24._0_4_" identifier . field_identifier) = (cast_expression "(undefined *)local_dc" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_24._4_4_ = (undefined *)local_d8;" (assignment_expression "local_24._4_4_ = (undefined *)local_d8" (field_expression "local_24._4_4_" identifier . field_identifier) = (cast_expression "(undefined *)local_d8" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_2c = *(undefined4 *)(param_1 + 0x170);" (assignment_expression "local_2c = *(undefined4 *)(param_1 + 0x170)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x170)" * (cast_expression "(undefined4 *)(param_1 + 0x170)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }" if (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" ( (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  local_2c = 0;\n                }" { (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) })) (expression_statement "local_2d = '\0';" (assignment_expression "local_2d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);" (assignment_expression "uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4)" identifier = (call_expression "FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4)" identifier (argument_list "(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4)" ( (pointer_expression "*local_44" * identifier) , identifier , identifier , number_literal , identifier , (pointer_expression "&local_2c" & identifier) , (pointer_expression "&local_2d" & identifier) , (pointer_expression "&local_24" & identifier) , identifier )))) ;) })) })) })) })) (expression_statement "iVar18 = *local_44;" (assignment_expression "iVar18 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }" if (parenthesized_expression "((local_4c != 0) && (cVar1 != '\0'))" ( (binary_expression "(local_4c != 0) && (cVar1 != '\0')" (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) && (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }" { (expression_statement "uVar26 = *(uint *)(local_4c + 0x168);" (assignment_expression "uVar26 = *(uint *)(local_4c + 0x168)" identifier = (pointer_expression "*(uint *)(local_4c + 0x168)" * (cast_expression "(uint *)(local_4c + 0x168)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x168)" ( (binary_expression "local_4c + 0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = *(uint *)(iVar18 + 0x164);" (assignment_expression "uVar25 = *(uint *)(iVar18 + 0x164)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x164)" * (cast_expression "(uint *)(iVar18 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x164)" ( (binary_expression "iVar18 + 0x164" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = *(uint *)(iVar18 + 0x168);" (assignment_expression "uVar21 = *(uint *)(iVar18 + 0x168)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x168)" * (cast_expression "(uint *)(iVar18 + 0x168)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x168)" ( (binary_expression "iVar18 + 0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = *(uint *)(local_4c + 0x164);" (assignment_expression "uVar16 = *(uint *)(local_4c + 0x164)" identifier = (pointer_expression "*(uint *)(local_4c + 0x164)" * (cast_expression "(uint *)(local_4c + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x164)" ( (binary_expression "local_4c + 0x164" identifier + number_literal) ))))) ;) (if_statement "if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }" if (parenthesized_expression "(uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16))" ( (binary_expression "uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)" (binary_expression "uVar21 < uVar26" identifier < identifier) || (binary_expression "uVar21 - uVar26 < (uint)(uVar25 < uVar16)" (binary_expression "uVar21 - uVar26" identifier - identifier) < (call_expression "(uint)(uVar25 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar25 < uVar16)" ( (binary_expression "uVar25 < uVar16" identifier < identifier) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }" { comment (expression_statement "FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");" (call_expression "FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets")" identifier (argument_list "("../../gold/layout.cc",0xfd9,"set_segment_offsets")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") ))) ;) })) (expression_statement "uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);" (assignment_expression "uVar24 = uVar16 + *(uint *)(local_4c + 0x16c)" identifier = (binary_expression "uVar16 + *(uint *)(local_4c + 0x16c)" identifier + (pointer_expression "*(uint *)(local_4c + 0x16c)" * (cast_expression "(uint *)(local_4c + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x16c)" ( (binary_expression "local_4c + 0x16c" identifier + number_literal) )))))) ;) (expression_statement "uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));" (assignment_expression "uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c))" identifier = (binary_expression "uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c))" (binary_expression "uVar26 + *(int *)(local_4c + 0x170)" identifier + (pointer_expression "*(int *)(local_4c + 0x170)" * (cast_expression "(int *)(local_4c + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x170)" ( (binary_expression "local_4c + 0x170" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,*(uint *)(local_4c + 0x16c))" identifier (argument_list "(uVar16,*(uint *)(local_4c + 0x16c))" ( identifier , (pointer_expression "*(uint *)(local_4c + 0x16c)" * (cast_expression "(uint *)(local_4c + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x16c)" ( (binary_expression "local_4c + 0x16c" identifier + number_literal) )))) )))))) ;) (if_statement "if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }" if (parenthesized_expression "(uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24))" ( (binary_expression "uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)" (binary_expression "uVar21 < uVar27" identifier < identifier) || (binary_expression "uVar21 - uVar27 < (uint)(uVar25 < uVar24)" (binary_expression "uVar21 - uVar27" identifier - identifier) < (call_expression "(uint)(uVar25 < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar25 < uVar24)" ( (binary_expression "uVar25 < uVar24" identifier < identifier) ))))) )) (compound_statement "{\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }" { (expression_statement "uVar3 = *(uint *)(iVar18 + 0x16c);" (assignment_expression "uVar3 = *(uint *)(iVar18 + 0x16c)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x16c)" * (cast_expression "(uint *)(iVar18 + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x16c)" ( (binary_expression "iVar18 + 0x16c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(iVar18 + 0x16c);" (assignment_expression "uVar4 = *(uint *)(iVar18 + 0x16c)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x16c)" * (cast_expression "(uint *)(iVar18 + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x16c)" ( (binary_expression "iVar18 + 0x16c" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(iVar18 + 0x170);" (assignment_expression "iVar12 = *(int *)(iVar18 + 0x170)" identifier = (pointer_expression "*(int *)(iVar18 + 0x170)" * (cast_expression "(int *)(iVar18 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x170)" ( (binary_expression "iVar18 + 0x170" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");" (assignment_expression "uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]")" identifier = (call_expression "gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]")" identifier (argument_list "("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]")" ( (string_literal ""load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"" " string_content ") )))) ;) (expression_statement "FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));" (call_expression "FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3))" identifier (argument_list "(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3))" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "uVar25 + uVar4" identifier + identifier) , (binary_expression "uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3)" (binary_expression "uVar21 + iVar12" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar25,uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar25,uVar3)" identifier (argument_list "(uVar25,uVar3)" ( identifier , identifier ))))) ))) ;) (expression_statement "iVar18 = *local_44;" (assignment_expression "iVar18 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) })) })) })) (expression_statement "local_4c = iVar18;" (assignment_expression "local_4c = iVar18" identifier = identifier) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x128) != local_44)" ( (binary_expression "*(int **)(param_1 + 0x128) != local_44" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) (if_statement "if (param_3 != 0) goto LAB_00113ce7;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00113ce7;" goto statement_identifier ;)) }))) (expression_statement "piVar20 = *(int **)(param_1 + 0x124);" (assignment_expression "piVar20 = *(int **)(param_1 + 0x124)" identifier = (pointer_expression "*(int **)(param_1 + 0x124)" * (cast_expression "(int **)(param_1 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (piVar20 != local_44) {\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }" if (parenthesized_expression "(piVar20 != local_44)" ( (binary_expression "piVar20 != local_44" identifier != identifier) )) (compound_statement "{\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }" { (do_statement "do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);" do (compound_statement "{\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    }" { (expression_statement "iVar12 = *(int *)(*piVar20 + 0x194);" (assignment_expression "iVar12 = *(int *)(*piVar20 + 0x194)" identifier = (pointer_expression "*(int *)(*piVar20 + 0x194)" * (cast_expression "(int *)(*piVar20 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar20 + 0x194)" ( (binary_expression "*piVar20 + 0x194" (pointer_expression "*piVar20" * identifier) + number_literal) ))))) ;) (if_statement "if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }" if (parenthesized_expression "((iVar12 != 1) && (iVar12 != 0x6474e551))" ( (binary_expression "(iVar12 != 1) && (iVar12 != 0x6474e551)" (parenthesized_expression "(iVar12 != 1)" ( (binary_expression "iVar12 != 1" identifier != number_literal) )) && (parenthesized_expression "(iVar12 != 0x6474e551)" ( (binary_expression "iVar12 != 0x6474e551" identifier != number_literal) ))) )) (compound_statement "{\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (if_statement "if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }" if (parenthesized_expression "(iVar12 == 0x6474e552)" ( (binary_expression "iVar12 == 0x6474e552" identifier == number_literal) )) (compound_statement "{\n          uVar13 = local_2c;\n        }" { (expression_statement "uVar13 = local_2c;" (assignment_expression "uVar13 = local_2c" identifier = identifier) ;) })) (expression_statement "FUN_0015f160(*piVar20,uVar13);" (call_expression "FUN_0015f160(*piVar20,uVar13)" identifier (argument_list "(*piVar20,uVar13)" ( (pointer_expression "*piVar20" * identifier) , identifier ))) ;) })) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x128) != piVar20)" ( (binary_expression "*(int **)(param_1 + 0x128) != piVar20" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) ;) })) (labeled_statement "LAB_00113d4d:\n  if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }" statement_identifier : (if_statement "if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x164) != 0)" ( (binary_expression "*(int *)(param_1 + 0x164) != 0" (pointer_expression "*(int *)(param_1 + 0x164)" * (cast_expression "(int *)(param_1 + 0x164)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }" { (expression_statement "FUN_0015f8f0(*(int *)(param_1 + 0x164));" (call_expression "FUN_0015f8f0(*(int *)(param_1 + 0x164))" identifier (argument_list "(*(int *)(param_1 + 0x164))" ( (pointer_expression "*(int *)(param_1 + 0x164)" * (cast_expression "(int *)(param_1 + 0x164)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) )))) ))) ;) }))) (return_statement "return local_24;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: off_t set_segment_offsets(Layout * this, Target * target,\n   Output_segment * load_seg, uint * pshndx) */\n\noff_t __thiscall\ngold::Layout::set_segment_offsets(Layout *this,Target *target,Output_segment *load_seg,uint *pshndx)\n\n{\n  byte bVar1;\n  __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __first;\n  __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __last;\n  Output_segment *pOVar2;\n  Elf_Word EVar3;\n  pointer ppOVar4;\n  int iVar5;\n  longlong lVar6;\n  uint64_t uVar7;\n  longlong lVar8;\n  longlong lVar9;\n  uint64_t uVar10;\n  bool bVar11;\n  bool bVar12;\n  int iVar13;\n  Output_segment **__buffer;\n  General_options *pGVar14;\n  Output_segment *pOVar15;\n  char *format;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  int extraout_EDX;\n  byte bVar19;\n  Target_info *pTVar20;\n  Output_data *pOVar21;\n  pointer ppOVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  pointer ppOVar27;\n  bool bVar28;\n  uint64_t uVar29;\n  uint64_t uVar30;\n  Target *in_stack_ffffff14;\n  uint local_dc;\n  uint local_d8;\n  uint local_c4;\n  uint local_c0;\n  uint local_ac;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_54;\n  uint local_50;\n  Output_segment *local_4c;\n  pointer local_44;\n  int local_40;\n  bool has_relro;\n  uint increase_relro;\n  uint shndx_begin;\n  off_t off;\n  \n  __first._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_start;\n  __last._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish;\n  iVar13 = (int)__last._M_current - (int)__first._M_current;\n  if (iVar13 < 0x7ffffffd) {\n    if (0 < iVar13) {\n      local_44 = (pointer)(iVar13 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (pointer)0x1fffffff;\nLAB_00113091:\n    do {\n      __buffer = (Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow);\n      if (__buffer != (Output_segment **)0x0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n        goto LAB_001130c6;\n      }\n      local_44 = (pointer)((int)local_44 >> 1);\n    } while (local_44 != (pointer)0x0);\n  }\n                    /* try { // try from 0011347c to 00113480 has its CatchHandler @ 0011423e */\n  std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n            (__first,__last,(_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n  __buffer = (Output_segment **)0x0;\nLAB_001130c6:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);\n  pGVar14 = parameters->options_;\n  if (pGVar14 == (General_options *)0x0) goto LAB_0011413b;\n  if ((pGVar14->Ttext_).user_set_via_option == false) {\n    local_c4 = 0;\n    local_c0 = 0;\n    if (((pGVar14->shared_).value == false) && ((pGVar14->pie_).value == false)) {\n      pTVar20 = target->pti_;\n      local_c4 = (uint)pTVar20->default_text_segment_address;\n      local_c0 = *(uint *)((int)&pTVar20->default_text_segment_address + 4);\n      uVar24 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n      uVar25 = (uint)(pGVar14->max_page_size_).value;\n      if (uVar24 == 0 && uVar25 == 0) {\n        uVar25 = (uint)pTVar20->abi_pagesize;\n        uVar24 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n      }\n      if (local_c0 < uVar24 || local_c0 - uVar24 < (uint)(local_c4 < uVar25)) {\n        local_c4 = uVar25;\n        local_c0 = uVar24;\n      }\n    }\n  }\n  else {\n    local_c4 = (uint)(pGVar14->Ttext_).value;\n    local_c0 = *(uint *)((int)&(pGVar14->Ttext_).value + 4);\n  }\n  off._0_4_ = 0;\n  off._4_4_ = 0;\n  if ((load_seg == (Output_segment *)0x0) &&\n     (local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n     local_44 !=\n     (pointer)(this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish)) {\n    do {\n      uVar24 = (*((Output_data *)*local_44)->_vptr_Output_data[3])((Output_data *)*local_44);\n      if (extraout_EDX != 0 || uVar24 != 0) {\n        bVar28 = (uint)off != 0;\n        uVar25 = (uint)off - 1;\n        off._0_4_ = -uVar24 & uVar25 + uVar24;\n        off._4_4_ = -(extraout_EDX + (uint)(uVar24 != 0)) &\n                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24);\n      }\n      pOVar21 = (Output_data *)*local_44;\n      bVar1 = pOVar21->field_0x1c;\n      if ((bVar1 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(undefined4 *)&pOVar21->address_ = 0;\n      *(undefined4 *)((int)&pOVar21->address_ + 4) = 0;\n      pOVar21->field_0x1c = bVar1 | 1;\n      if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      *(uint *)&pOVar21->offset_ = (uint)off;\n      *(uint *)((int)&pOVar21->offset_ + 4) = off._4_4_;\n      pOVar21->field_0x1c = bVar1 | 5;\n      if ((bVar1 & 2) == 0) {\n        (*pOVar21->_vptr_Output_data[0xe])(pOVar21);\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar21 = (Output_data *)*local_44;\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)off,(uint)pOVar21->data_size_);\n      off._0_4_ = (uint)off + (int)pOVar21->data_size_;\n      off._4_4_ = off._4_4_ + *(int *)((int)&pOVar21->data_size_ + 4) + (uint)bVar28;\n      local_44 = local_44 + 1;\n    } while ((pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish != local_44);\n    increase_relro = this->increase_relro_;\n    pGVar14 = parameters->options_;\n    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\nLAB_0011314a:\n      increase_relro = 0;\n    }\n    if (pGVar14 == (General_options *)0x0) {\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n  }\n  else {\n    increase_relro = this->increase_relro_;\n    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) goto LAB_0011314a;\n  }\n  bVar28 = (pGVar14->check_sections_).value;\n  local_ac = *pshndx;\n  local_44 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;\n  shndx_begin = local_ac;\n  if (local_44 ==\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\n    lVar8 = off;\n    if (load_seg == (Output_segment *)0x0) goto LAB_00113d4d;\nLAB_00113ce7:\n    off._4_4_ = (uint)((ulonglong)lVar8 >> 0x20);\n    off._0_4_ = (uint)lVar8;\n    pTVar20 = target->pti_;\n    if (pTVar20->isolate_execinstr != false) {\n      pGVar14 = parameters->options_;\n      if (pGVar14 == (General_options *)0x0) {\n        off = lVar8;\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(in_stack_ffffff14);\n      }\n      local_40 = *(int *)((int)&(pGVar14->max_page_size_).value + 4);\n      local_44 = (pointer)(pGVar14->max_page_size_).value;\n      if (local_40 == 0 && local_44 == (pointer)0x0) {\n        local_40 = *(int *)((int)&pTVar20->abi_pagesize + 4);\n        local_44 = (pointer)pTVar20->abi_pagesize;\n      }\n      uVar24 = (uint)off & -(int)local_44;\n      uVar25 = off._4_4_ & -(local_40 + (uint)(local_44 != (pointer)0x0));\n      if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n        bVar28 = CARRY4(uVar24,(uint)local_44);\n        uVar24 = uVar24 + (int)local_44;\n        uVar25 = uVar25 + local_40 + (uint)bVar28;\n      }\n      ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      off._0_4_ = uVar24;\n      off._4_4_ = uVar25;\n      if (ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish) {\n        do {\n          pOVar21 = *ppOVar22;\n          if (pOVar21 != (Output_data *)0x0) {\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }\n          ppOVar22 = ppOVar22 + 1;\n        } while ((this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish != ppOVar22);\n        ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_start;\n        if (ppOVar22 != ppOVar4) {\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4;\n        }\n      }\n      local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                 _M_impl._M_start;\n      pOVar15 = *local_44;\n      while (pOVar15 != load_seg) {\n        local_44 = local_44 + 1;\n        if (pOVar15->type_ == 1) {\n          uVar24 = (uint)pOVar15->vaddr_;\n          iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);\n          has_relro = false;\n          uVar29 = pOVar15->memsz_;\n          uVar10 = pOVar15->memsz_;\n          iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);\n          uVar30 = Output_segment::set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin);\n          if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }\n        }\n        pOVar15 = *local_44;\n      }\n      lVar8 = CONCAT44(off._4_4_,(uint)off);\n      if (shndx_begin != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0x1009,"set_segment_offsets");\n      }\n    }\n    off = lVar8;\n    local_44 = (this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish;\n  }\n  else {\n    local_4c = (Output_segment *)0x0;\n    uVar29 = CONCAT44(local_c0,local_c4);\n    do {\n      pOVar15 = *local_44;\n      pOVar2 = local_4c;\n      if (pOVar15->type_ == 1) {\n        bVar12 = target->pti_->isolate_execinstr;\n        if (bVar12 == false) {\n          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          load_seg = (Output_segment *)0x0;\n        }\n        else if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }\n        bVar19 = (byte)pOVar15->field_0x19c >> 1;\n        pGVar14 = parameters->options_;\n        bVar1 = bVar19 & 1;\n        if ((bVar19 & 1) == 0) {\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar11 = (pGVar14->Ttext_).user_set_via_option;\n          uVar10 = uVar29;\n          lVar8 = off;\n          if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }\n        }\n        else {\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = (uint)(pGVar14->max_page_size_).value;\n        local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n        local_6c = (uint)(pGVar14->common_page_size_).value;\n        local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4);\n        if (local_50 == 0 && local_54 == 0) {\n          pTVar20 = target->pti_;\n          local_54 = (uint)pTVar20->abi_pagesize;\n          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar9 = CONCAT44(local_50,local_54);\n        if ((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))\n        {\n          *(uint *)&pOVar15->min_p_align_ = local_54;\n          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;\n        }\n        off = lVar8;\n        if (bVar19 == 0) {\n          uVar29 = Output_segment::maximum_alignment(*local_44);\n          uVar25 = (uint)(uVar29 >> 0x20);\n          uVar24 = (uint)uVar29;\n          if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }\n          local_84 = (uint)uVar30;\n          local_80 = (uint)(uVar30 >> 0x20);\n          uVar7 = uVar30;\n          if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }\n          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);\n          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }\n          pOVar15 = load_seg;\n          uVar30 = uVar7;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }\n        }\n        else {\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }\n        local_80 = (uint)(uVar30 >> 0x20);\n        local_84 = (uint)uVar30;\n        local_70 = (uint)(uVar7 >> 0x20);\n        local_74 = (uint)uVar7;\n        if (((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          uVar24 = (uint)(uVar29 >> 0x20);\n          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }\n          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;\n          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);\n          lVar6 = CONCAT44(uVar25,uVar24);\n          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }\n        }\n        else {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }\n        has_relro = false;\n        uVar24 = *pshndx;\n        off = lVar6;\n        uVar29 = Output_segment::set_section_addresses\n                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           );\n        if (((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)) {\n          bVar12 = Parameters::incremental(parameters);\n          if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }\n        }\n        pOVar2 = *local_44;\n        if ((local_4c != (Output_segment *)0x0) && (bVar28 != false)) {\n          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);\n          uVar25 = (uint)pOVar2->paddr_;\n          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);\n          uVar17 = (uint)local_4c->paddr_;\n          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar23 = uVar17 + (int)local_4c->memsz_;\n          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);\n          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }\n        }\n      }\n      local_4c = pOVar2;\n      local_44 = local_44 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_44);\n    lVar8 = off;\n    if (load_seg != (Output_segment *)0x0) goto LAB_00113ce7;\n  }\n  ppOVar27 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;\n  if (ppOVar27 != local_44) {\n    do {\n      EVar3 = (*ppOVar27)->type_;\n      if ((EVar3 != 1) && (EVar3 != 0x6474e551)) {\n        uVar24 = 0;\n        if (EVar3 == 0x6474e552) {\n          uVar24 = increase_relro;\n        }\n        Output_segment::set_offset(*ppOVar27,uVar24);\n      }\n      ppOVar27 = ppOVar27 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar27);\n  }\nLAB_00113d4d:\n  if (this->tls_segment_ != (Output_segment *)0x0) {\n    Output_segment::set_tls_offsets(this->tls_segment_);\n  }\n  return off;\n}\n\n" comment comment comment comment (function_definition "off_t __thiscall\ngold::Layout::set_segment_offsets(Layout *this,Target *target,Output_segment *load_seg,uint *pshndx)\n\n{\n  byte bVar1;\n  __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __first;\n  __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __last;\n  Output_segment *pOVar2;\n  Elf_Word EVar3;\n  pointer ppOVar4;\n  int iVar5;\n  longlong lVar6;\n  uint64_t uVar7;\n  longlong lVar8;\n  longlong lVar9;\n  uint64_t uVar10;\n  bool bVar11;\n  bool bVar12;\n  int iVar13;\n  Output_segment **__buffer;\n  General_options *pGVar14;\n  Output_segment *pOVar15;\n  char *format;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  int extraout_EDX;\n  byte bVar19;\n  Target_info *pTVar20;\n  Output_data *pOVar21;\n  pointer ppOVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  pointer ppOVar27;\n  bool bVar28;\n  uint64_t uVar29;\n  uint64_t uVar30;\n  Target *in_stack_ffffff14;\n  uint local_dc;\n  uint local_d8;\n  uint local_c4;\n  uint local_c0;\n  uint local_ac;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_54;\n  uint local_50;\n  Output_segment *local_4c;\n  pointer local_44;\n  int local_40;\n  bool has_relro;\n  uint increase_relro;\n  uint shndx_begin;\n  off_t off;\n  \n  __first._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_start;\n  __last._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish;\n  iVar13 = (int)__last._M_current - (int)__first._M_current;\n  if (iVar13 < 0x7ffffffd) {\n    if (0 < iVar13) {\n      local_44 = (pointer)(iVar13 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (pointer)0x1fffffff;\nLAB_00113091:\n    do {\n      __buffer = (Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow);\n      if (__buffer != (Output_segment **)0x0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n        goto LAB_001130c6;\n      }\n      local_44 = (pointer)((int)local_44 >> 1);\n    } while (local_44 != (pointer)0x0);\n  }\n                    /* try { // try from 0011347c to 00113480 has its CatchHandler @ 0011423e */\n  std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n            (__first,__last,(_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n  __buffer = (Output_segment **)0x0;\nLAB_001130c6:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);\n  pGVar14 = parameters->options_;\n  if (pGVar14 == (General_options *)0x0) goto LAB_0011413b;\n  if ((pGVar14->Ttext_).user_set_via_option == false) {\n    local_c4 = 0;\n    local_c0 = 0;\n    if (((pGVar14->shared_).value == false) && ((pGVar14->pie_).value == false)) {\n      pTVar20 = target->pti_;\n      local_c4 = (uint)pTVar20->default_text_segment_address;\n      local_c0 = *(uint *)((int)&pTVar20->default_text_segment_address + 4);\n      uVar24 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n      uVar25 = (uint)(pGVar14->max_page_size_).value;\n      if (uVar24 == 0 && uVar25 == 0) {\n        uVar25 = (uint)pTVar20->abi_pagesize;\n        uVar24 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n      }\n      if (local_c0 < uVar24 || local_c0 - uVar24 < (uint)(local_c4 < uVar25)) {\n        local_c4 = uVar25;\n        local_c0 = uVar24;\n      }\n    }\n  }\n  else {\n    local_c4 = (uint)(pGVar14->Ttext_).value;\n    local_c0 = *(uint *)((int)&(pGVar14->Ttext_).value + 4);\n  }\n  off._0_4_ = 0;\n  off._4_4_ = 0;\n  if ((load_seg == (Output_segment *)0x0) &&\n     (local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n     local_44 !=\n     (pointer)(this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish)) {\n    do {\n      uVar24 = (*((Output_data *)*local_44)->_vptr_Output_data[3])((Output_data *)*local_44);\n      if (extraout_EDX != 0 || uVar24 != 0) {\n        bVar28 = (uint)off != 0;\n        uVar25 = (uint)off - 1;\n        off._0_4_ = -uVar24 & uVar25 + uVar24;\n        off._4_4_ = -(extraout_EDX + (uint)(uVar24 != 0)) &\n                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24);\n      }\n      pOVar21 = (Output_data *)*local_44;\n      bVar1 = pOVar21->field_0x1c;\n      if ((bVar1 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(undefined4 *)&pOVar21->address_ = 0;\n      *(undefined4 *)((int)&pOVar21->address_ + 4) = 0;\n      pOVar21->field_0x1c = bVar1 | 1;\n      if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      *(uint *)&pOVar21->offset_ = (uint)off;\n      *(uint *)((int)&pOVar21->offset_ + 4) = off._4_4_;\n      pOVar21->field_0x1c = bVar1 | 5;\n      if ((bVar1 & 2) == 0) {\n        (*pOVar21->_vptr_Output_data[0xe])(pOVar21);\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar21 = (Output_data *)*local_44;\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)off,(uint)pOVar21->data_size_);\n      off._0_4_ = (uint)off + (int)pOVar21->data_size_;\n      off._4_4_ = off._4_4_ + *(int *)((int)&pOVar21->data_size_ + 4) + (uint)bVar28;\n      local_44 = local_44 + 1;\n    } while ((pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish != local_44);\n    increase_relro = this->increase_relro_;\n    pGVar14 = parameters->options_;\n    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\nLAB_0011314a:\n      increase_relro = 0;\n    }\n    if (pGVar14 == (General_options *)0x0) {\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n  }\n  else {\n    increase_relro = this->increase_relro_;\n    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) goto LAB_0011314a;\n  }\n  bVar28 = (pGVar14->check_sections_).value;\n  local_ac = *pshndx;\n  local_44 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;\n  shndx_begin = local_ac;\n  if (local_44 ==\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\n    lVar8 = off;\n    if (load_seg == (Output_segment *)0x0) goto LAB_00113d4d;\nLAB_00113ce7:\n    off._4_4_ = (uint)((ulonglong)lVar8 >> 0x20);\n    off._0_4_ = (uint)lVar8;\n    pTVar20 = target->pti_;\n    if (pTVar20->isolate_execinstr != false) {\n      pGVar14 = parameters->options_;\n      if (pGVar14 == (General_options *)0x0) {\n        off = lVar8;\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(in_stack_ffffff14);\n      }\n      local_40 = *(int *)((int)&(pGVar14->max_page_size_).value + 4);\n      local_44 = (pointer)(pGVar14->max_page_size_).value;\n      if (local_40 == 0 && local_44 == (pointer)0x0) {\n        local_40 = *(int *)((int)&pTVar20->abi_pagesize + 4);\n        local_44 = (pointer)pTVar20->abi_pagesize;\n      }\n      uVar24 = (uint)off & -(int)local_44;\n      uVar25 = off._4_4_ & -(local_40 + (uint)(local_44 != (pointer)0x0));\n      if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n        bVar28 = CARRY4(uVar24,(uint)local_44);\n        uVar24 = uVar24 + (int)local_44;\n        uVar25 = uVar25 + local_40 + (uint)bVar28;\n      }\n      ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      off._0_4_ = uVar24;\n      off._4_4_ = uVar25;\n      if (ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish) {\n        do {\n          pOVar21 = *ppOVar22;\n          if (pOVar21 != (Output_data *)0x0) {\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }\n          ppOVar22 = ppOVar22 + 1;\n        } while ((this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish != ppOVar22);\n        ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_start;\n        if (ppOVar22 != ppOVar4) {\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4;\n        }\n      }\n      local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                 _M_impl._M_start;\n      pOVar15 = *local_44;\n      while (pOVar15 != load_seg) {\n        local_44 = local_44 + 1;\n        if (pOVar15->type_ == 1) {\n          uVar24 = (uint)pOVar15->vaddr_;\n          iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);\n          has_relro = false;\n          uVar29 = pOVar15->memsz_;\n          uVar10 = pOVar15->memsz_;\n          iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);\n          uVar30 = Output_segment::set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin);\n          if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }\n        }\n        pOVar15 = *local_44;\n      }\n      lVar8 = CONCAT44(off._4_4_,(uint)off);\n      if (shndx_begin != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0x1009,"set_segment_offsets");\n      }\n    }\n    off = lVar8;\n    local_44 = (this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish;\n  }\n  else {\n    local_4c = (Output_segment *)0x0;\n    uVar29 = CONCAT44(local_c0,local_c4);\n    do {\n      pOVar15 = *local_44;\n      pOVar2 = local_4c;\n      if (pOVar15->type_ == 1) {\n        bVar12 = target->pti_->isolate_execinstr;\n        if (bVar12 == false) {\n          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          load_seg = (Output_segment *)0x0;\n        }\n        else if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }\n        bVar19 = (byte)pOVar15->field_0x19c >> 1;\n        pGVar14 = parameters->options_;\n        bVar1 = bVar19 & 1;\n        if ((bVar19 & 1) == 0) {\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar11 = (pGVar14->Ttext_).user_set_via_option;\n          uVar10 = uVar29;\n          lVar8 = off;\n          if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }\n        }\n        else {\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = (uint)(pGVar14->max_page_size_).value;\n        local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n        local_6c = (uint)(pGVar14->common_page_size_).value;\n        local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4);\n        if (local_50 == 0 && local_54 == 0) {\n          pTVar20 = target->pti_;\n          local_54 = (uint)pTVar20->abi_pagesize;\n          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar9 = CONCAT44(local_50,local_54);\n        if ((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))\n        {\n          *(uint *)&pOVar15->min_p_align_ = local_54;\n          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;\n        }\n        off = lVar8;\n        if (bVar19 == 0) {\n          uVar29 = Output_segment::maximum_alignment(*local_44);\n          uVar25 = (uint)(uVar29 >> 0x20);\n          uVar24 = (uint)uVar29;\n          if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }\n          local_84 = (uint)uVar30;\n          local_80 = (uint)(uVar30 >> 0x20);\n          uVar7 = uVar30;\n          if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }\n          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);\n          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }\n          pOVar15 = load_seg;\n          uVar30 = uVar7;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }\n        }\n        else {\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }\n        local_80 = (uint)(uVar30 >> 0x20);\n        local_84 = (uint)uVar30;\n        local_70 = (uint)(uVar7 >> 0x20);\n        local_74 = (uint)uVar7;\n        if (((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          uVar24 = (uint)(uVar29 >> 0x20);\n          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }\n          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;\n          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);\n          lVar6 = CONCAT44(uVar25,uVar24);\n          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }\n        }\n        else {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }\n        has_relro = false;\n        uVar24 = *pshndx;\n        off = lVar6;\n        uVar29 = Output_segment::set_section_addresses\n                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           );\n        if (((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)) {\n          bVar12 = Parameters::incremental(parameters);\n          if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }\n        }\n        pOVar2 = *local_44;\n        if ((local_4c != (Output_segment *)0x0) && (bVar28 != false)) {\n          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);\n          uVar25 = (uint)pOVar2->paddr_;\n          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);\n          uVar17 = (uint)local_4c->paddr_;\n          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar23 = uVar17 + (int)local_4c->memsz_;\n          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);\n          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }\n        }\n      }\n      local_4c = pOVar2;\n      local_44 = local_44 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_44);\n    lVar8 = off;\n    if (load_seg != (Output_segment *)0x0) goto LAB_00113ce7;\n  }\n  ppOVar27 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;\n  if (ppOVar27 != local_44) {\n    do {\n      EVar3 = (*ppOVar27)->type_;\n      if ((EVar3 != 1) && (EVar3 != 0x6474e551)) {\n        uVar24 = 0;\n        if (EVar3 == 0x6474e552) {\n          uVar24 = increase_relro;\n        }\n        Output_segment::set_offset(*ppOVar27,uVar24);\n      }\n      ppOVar27 = ppOVar27 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar27);\n  }\nLAB_00113d4d:\n  if (this->tls_segment_ != (Output_segment *)0x0) {\n    Output_segment::set_tls_offsets(this->tls_segment_);\n  }\n  return off;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "set_segment_offsets(Layout *this,Target *target,Output_segment *load_seg,uint *pshndx)" identifier (parameter_list "(Layout *this,Target *target,Output_segment *load_seg,uint *pshndx)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Target *target" type_identifier (pointer_declarator "*target" * identifier)) , (parameter_declaration "Output_segment *load_seg" type_identifier (pointer_declarator "*load_seg" * identifier)) , (parameter_declaration "uint *pshndx" type_identifier (pointer_declarator "*pshndx" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __first;\n  __normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __last;\n  Output_segment *pOVar2;\n  Elf_Word EVar3;\n  pointer ppOVar4;\n  int iVar5;\n  longlong lVar6;\n  uint64_t uVar7;\n  longlong lVar8;\n  longlong lVar9;\n  uint64_t uVar10;\n  bool bVar11;\n  bool bVar12;\n  int iVar13;\n  Output_segment **__buffer;\n  General_options *pGVar14;\n  Output_segment *pOVar15;\n  char *format;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  int extraout_EDX;\n  byte bVar19;\n  Target_info *pTVar20;\n  Output_data *pOVar21;\n  pointer ppOVar22;\n  uint uVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  pointer ppOVar27;\n  bool bVar28;\n  uint64_t uVar29;\n  uint64_t uVar30;\n  Target *in_stack_ffffff14;\n  uint local_dc;\n  uint local_d8;\n  uint local_c4;\n  uint local_c0;\n  uint local_ac;\n  uint local_84;\n  uint local_80;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_54;\n  uint local_50;\n  Output_segment *local_4c;\n  pointer local_44;\n  int local_40;\n  bool has_relro;\n  uint increase_relro;\n  uint shndx_begin;\n  off_t off;\n  \n  __first._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_start;\n  __last._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish;\n  iVar13 = (int)__last._M_current - (int)__first._M_current;\n  if (iVar13 < 0x7ffffffd) {\n    if (0 < iVar13) {\n      local_44 = (pointer)(iVar13 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (pointer)0x1fffffff;\nLAB_00113091:\n    do {\n      __buffer = (Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow);\n      if (__buffer != (Output_segment **)0x0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n        goto LAB_001130c6;\n      }\n      local_44 = (pointer)((int)local_44 >> 1);\n    } while (local_44 != (pointer)0x0);\n  }\n                    /* try { // try from 0011347c to 00113480 has its CatchHandler @ 0011423e */\n  std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n            (__first,__last,(_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n  __buffer = (Output_segment **)0x0;\nLAB_001130c6:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);\n  pGVar14 = parameters->options_;\n  if (pGVar14 == (General_options *)0x0) goto LAB_0011413b;\n  if ((pGVar14->Ttext_).user_set_via_option == false) {\n    local_c4 = 0;\n    local_c0 = 0;\n    if (((pGVar14->shared_).value == false) && ((pGVar14->pie_).value == false)) {\n      pTVar20 = target->pti_;\n      local_c4 = (uint)pTVar20->default_text_segment_address;\n      local_c0 = *(uint *)((int)&pTVar20->default_text_segment_address + 4);\n      uVar24 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n      uVar25 = (uint)(pGVar14->max_page_size_).value;\n      if (uVar24 == 0 && uVar25 == 0) {\n        uVar25 = (uint)pTVar20->abi_pagesize;\n        uVar24 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n      }\n      if (local_c0 < uVar24 || local_c0 - uVar24 < (uint)(local_c4 < uVar25)) {\n        local_c4 = uVar25;\n        local_c0 = uVar24;\n      }\n    }\n  }\n  else {\n    local_c4 = (uint)(pGVar14->Ttext_).value;\n    local_c0 = *(uint *)((int)&(pGVar14->Ttext_).value + 4);\n  }\n  off._0_4_ = 0;\n  off._4_4_ = 0;\n  if ((load_seg == (Output_segment *)0x0) &&\n     (local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n     local_44 !=\n     (pointer)(this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish)) {\n    do {\n      uVar24 = (*((Output_data *)*local_44)->_vptr_Output_data[3])((Output_data *)*local_44);\n      if (extraout_EDX != 0 || uVar24 != 0) {\n        bVar28 = (uint)off != 0;\n        uVar25 = (uint)off - 1;\n        off._0_4_ = -uVar24 & uVar25 + uVar24;\n        off._4_4_ = -(extraout_EDX + (uint)(uVar24 != 0)) &\n                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24);\n      }\n      pOVar21 = (Output_data *)*local_44;\n      bVar1 = pOVar21->field_0x1c;\n      if ((bVar1 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(undefined4 *)&pOVar21->address_ = 0;\n      *(undefined4 *)((int)&pOVar21->address_ + 4) = 0;\n      pOVar21->field_0x1c = bVar1 | 1;\n      if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      *(uint *)&pOVar21->offset_ = (uint)off;\n      *(uint *)((int)&pOVar21->offset_ + 4) = off._4_4_;\n      pOVar21->field_0x1c = bVar1 | 5;\n      if ((bVar1 & 2) == 0) {\n        (*pOVar21->_vptr_Output_data[0xe])(pOVar21);\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar21 = (Output_data *)*local_44;\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)off,(uint)pOVar21->data_size_);\n      off._0_4_ = (uint)off + (int)pOVar21->data_size_;\n      off._4_4_ = off._4_4_ + *(int *)((int)&pOVar21->data_size_ + 4) + (uint)bVar28;\n      local_44 = local_44 + 1;\n    } while ((pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish != local_44);\n    increase_relro = this->increase_relro_;\n    pGVar14 = parameters->options_;\n    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\nLAB_0011314a:\n      increase_relro = 0;\n    }\n    if (pGVar14 == (General_options *)0x0) {\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n  }\n  else {\n    increase_relro = this->increase_relro_;\n    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) goto LAB_0011314a;\n  }\n  bVar28 = (pGVar14->check_sections_).value;\n  local_ac = *pshndx;\n  local_44 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;\n  shndx_begin = local_ac;\n  if (local_44 ==\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\n    lVar8 = off;\n    if (load_seg == (Output_segment *)0x0) goto LAB_00113d4d;\nLAB_00113ce7:\n    off._4_4_ = (uint)((ulonglong)lVar8 >> 0x20);\n    off._0_4_ = (uint)lVar8;\n    pTVar20 = target->pti_;\n    if (pTVar20->isolate_execinstr != false) {\n      pGVar14 = parameters->options_;\n      if (pGVar14 == (General_options *)0x0) {\n        off = lVar8;\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(in_stack_ffffff14);\n      }\n      local_40 = *(int *)((int)&(pGVar14->max_page_size_).value + 4);\n      local_44 = (pointer)(pGVar14->max_page_size_).value;\n      if (local_40 == 0 && local_44 == (pointer)0x0) {\n        local_40 = *(int *)((int)&pTVar20->abi_pagesize + 4);\n        local_44 = (pointer)pTVar20->abi_pagesize;\n      }\n      uVar24 = (uint)off & -(int)local_44;\n      uVar25 = off._4_4_ & -(local_40 + (uint)(local_44 != (pointer)0x0));\n      if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n        bVar28 = CARRY4(uVar24,(uint)local_44);\n        uVar24 = uVar24 + (int)local_44;\n        uVar25 = uVar25 + local_40 + (uint)bVar28;\n      }\n      ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      off._0_4_ = uVar24;\n      off._4_4_ = uVar25;\n      if (ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish) {\n        do {\n          pOVar21 = *ppOVar22;\n          if (pOVar21 != (Output_data *)0x0) {\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }\n          ppOVar22 = ppOVar22 + 1;\n        } while ((this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish != ppOVar22);\n        ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_start;\n        if (ppOVar22 != ppOVar4) {\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4;\n        }\n      }\n      local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                 _M_impl._M_start;\n      pOVar15 = *local_44;\n      while (pOVar15 != load_seg) {\n        local_44 = local_44 + 1;\n        if (pOVar15->type_ == 1) {\n          uVar24 = (uint)pOVar15->vaddr_;\n          iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);\n          has_relro = false;\n          uVar29 = pOVar15->memsz_;\n          uVar10 = pOVar15->memsz_;\n          iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);\n          uVar30 = Output_segment::set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin);\n          if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }\n        }\n        pOVar15 = *local_44;\n      }\n      lVar8 = CONCAT44(off._4_4_,(uint)off);\n      if (shndx_begin != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0x1009,"set_segment_offsets");\n      }\n    }\n    off = lVar8;\n    local_44 = (this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish;\n  }\n  else {\n    local_4c = (Output_segment *)0x0;\n    uVar29 = CONCAT44(local_c0,local_c4);\n    do {\n      pOVar15 = *local_44;\n      pOVar2 = local_4c;\n      if (pOVar15->type_ == 1) {\n        bVar12 = target->pti_->isolate_execinstr;\n        if (bVar12 == false) {\n          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          load_seg = (Output_segment *)0x0;\n        }\n        else if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }\n        bVar19 = (byte)pOVar15->field_0x19c >> 1;\n        pGVar14 = parameters->options_;\n        bVar1 = bVar19 & 1;\n        if ((bVar19 & 1) == 0) {\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar11 = (pGVar14->Ttext_).user_set_via_option;\n          uVar10 = uVar29;\n          lVar8 = off;\n          if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }\n        }\n        else {\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = (uint)(pGVar14->max_page_size_).value;\n        local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n        local_6c = (uint)(pGVar14->common_page_size_).value;\n        local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4);\n        if (local_50 == 0 && local_54 == 0) {\n          pTVar20 = target->pti_;\n          local_54 = (uint)pTVar20->abi_pagesize;\n          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar9 = CONCAT44(local_50,local_54);\n        if ((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))\n        {\n          *(uint *)&pOVar15->min_p_align_ = local_54;\n          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;\n        }\n        off = lVar8;\n        if (bVar19 == 0) {\n          uVar29 = Output_segment::maximum_alignment(*local_44);\n          uVar25 = (uint)(uVar29 >> 0x20);\n          uVar24 = (uint)uVar29;\n          if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }\n          local_84 = (uint)uVar30;\n          local_80 = (uint)(uVar30 >> 0x20);\n          uVar7 = uVar30;\n          if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }\n          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);\n          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }\n          pOVar15 = load_seg;\n          uVar30 = uVar7;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }\n        }\n        else {\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }\n        local_80 = (uint)(uVar30 >> 0x20);\n        local_84 = (uint)uVar30;\n        local_70 = (uint)(uVar7 >> 0x20);\n        local_74 = (uint)uVar7;\n        if (((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          uVar24 = (uint)(uVar29 >> 0x20);\n          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }\n          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;\n          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);\n          lVar6 = CONCAT44(uVar25,uVar24);\n          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }\n        }\n        else {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }\n        has_relro = false;\n        uVar24 = *pshndx;\n        off = lVar6;\n        uVar29 = Output_segment::set_section_addresses\n                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           );\n        if (((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)) {\n          bVar12 = Parameters::incremental(parameters);\n          if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }\n        }\n        pOVar2 = *local_44;\n        if ((local_4c != (Output_segment *)0x0) && (bVar28 != false)) {\n          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);\n          uVar25 = (uint)pOVar2->paddr_;\n          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);\n          uVar17 = (uint)local_4c->paddr_;\n          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar23 = uVar17 + (int)local_4c->memsz_;\n          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);\n          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }\n        }\n      }\n      local_4c = pOVar2;\n      local_44 = local_44 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_44);\n    lVar8 = off;\n    if (load_seg != (Output_segment *)0x0) goto LAB_00113ce7;\n  }\n  ppOVar27 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;\n  if (ppOVar27 != local_44) {\n    do {\n      EVar3 = (*ppOVar27)->type_;\n      if ((EVar3 != 1) && (EVar3 != 0x6474e551)) {\n        uVar24 = 0;\n        if (EVar3 == 0x6474e552) {\n          uVar24 = increase_relro;\n        }\n        Output_segment::set_offset(*ppOVar27,uVar24);\n      }\n      ppOVar27 = ppOVar27 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar27);\n  }\nLAB_00113d4d:\n  if (this->tls_segment_ != (Output_segment *)0x0) {\n    Output_segment::set_tls_offsets(this->tls_segment_);\n  }\n  return off;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (expression_statement "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __first;" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __first" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_segment**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_segment" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) > identifier) > identifier) ;) (expression_statement "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __last;" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_>\n  __last" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*,_std" (binary_expression "__normal_iterator<gold::Output_segment**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_segment**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_segment" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) > identifier) > identifier) ;) (declaration "Output_segment *pOVar2;" type_identifier (pointer_declarator "*pOVar2" * identifier) ;) (declaration "Elf_Word EVar3;" type_identifier identifier ;) (declaration "pointer ppOVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "longlong lVar6;" type_identifier identifier ;) (declaration "uint64_t uVar7;" primitive_type identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "uint64_t uVar10;" primitive_type identifier ;) (declaration "bool bVar11;" primitive_type identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "Output_segment **__buffer;" type_identifier (pointer_declarator "**__buffer" * (pointer_declarator "*__buffer" * identifier)) ;) (declaration "General_options *pGVar14;" type_identifier (pointer_declarator "*pGVar14" * identifier) ;) (declaration "Output_segment *pOVar15;" type_identifier (pointer_declarator "*pOVar15" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int extraout_EDX;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "Target_info *pTVar20;" type_identifier (pointer_declarator "*pTVar20" * identifier) ;) (declaration "Output_data *pOVar21;" type_identifier (pointer_declarator "*pOVar21" * identifier) ;) (declaration "pointer ppOVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "pointer ppOVar27;" type_identifier identifier ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "uint64_t uVar29;" primitive_type identifier ;) (declaration "uint64_t uVar30;" primitive_type identifier ;) (declaration "Target *in_stack_ffffff14;" type_identifier (pointer_declarator "*in_stack_ffffff14" * identifier) ;) (declaration "uint local_dc;" type_identifier identifier ;) (declaration "uint local_d8;" type_identifier identifier ;) (declaration "uint local_c4;" type_identifier identifier ;) (declaration "uint local_c0;" type_identifier identifier ;) (declaration "uint local_ac;" type_identifier identifier ;) (declaration "uint local_84;" type_identifier identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "Output_segment *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "pointer local_44;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "bool has_relro;" primitive_type identifier ;) (declaration "uint increase_relro;" type_identifier identifier ;) (declaration "uint shndx_begin;" type_identifier identifier ;) (declaration "off_t off;" type_identifier identifier ;) (expression_statement "__first._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_start;" (field_expression "__first._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_start" (field_expression "__first._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl" (binary_expression "__first._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "__first._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "__first._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std" (assignment_expression "__first._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold" (field_expression "__first._M_current" identifier . field_identifier) = (binary_expression "(this->segment_list_).\n       super__Vector_base<gold" (field_expression "(this->segment_list_).\n       super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "__last._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish;" (field_expression "__last._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish" (field_expression "__last._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl" (binary_expression "__last._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "__last._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "__last._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std" (assignment_expression "__last._M_current =\n       (this->segment_list_).\n       super__Vector_base<gold" (field_expression "__last._M_current" identifier . field_identifier) = (binary_expression "(this->segment_list_).\n       super__Vector_base<gold" (field_expression "(this->segment_list_).\n       super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "iVar13 = (int)__last._M_current - (int)__first._M_current;" (assignment_expression "iVar13 = (int)__last._M_current - (int)__first._M_current" identifier = (binary_expression "(int)__last._M_current - (int)__first._M_current" (cast_expression "(int)__last._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__last._M_current" identifier . field_identifier)) - (cast_expression "(int)__first._M_current" ( (type_descriptor "int" primitive_type) ) (field_expression "__first._M_current" identifier . field_identifier)))) ;) (if_statement "if (iVar13 < 0x7ffffffd) {\n    if (0 < iVar13) {\n      local_44 = (pointer)(iVar13 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (pointer)0x1fffffff;\nLAB_00113091:\n    do {\n      __buffer = (Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow);\n      if (__buffer != (Output_segment **)0x0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n        goto LAB_001130c6;\n      }\n      local_44 = (pointer)((int)local_44 >> 1);\n    } while (local_44 != (pointer)0x0);\n  }" if (parenthesized_expression "(iVar13 < 0x7ffffffd)" ( (binary_expression "iVar13 < 0x7ffffffd" identifier < number_literal) )) (compound_statement "{\n    if (0 < iVar13) {\n      local_44 = (pointer)(iVar13 >> 2);\n      goto LAB_00113091;\n    }\n  }" { (if_statement "if (0 < iVar13) {\n      local_44 = (pointer)(iVar13 >> 2);\n      goto LAB_00113091;\n    }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n      local_44 = (pointer)(iVar13 >> 2);\n      goto LAB_00113091;\n    }" { (expression_statement "local_44 = (pointer)(iVar13 >> 2);" (assignment_expression "local_44 = (pointer)(iVar13 >> 2)" identifier = (call_expression "(pointer)(iVar13 >> 2)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(iVar13 >> 2)" ( (binary_expression "iVar13 >> 2" identifier >> number_literal) )))) ;) (goto_statement "goto LAB_00113091;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_44 = (pointer)0x1fffffff;\nLAB_00113091:\n    do {\n      __buffer = (Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow);\n      if (__buffer != (Output_segment **)0x0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n        goto LAB_001130c6;\n      }\n      local_44 = (pointer)((int)local_44 >> 1);\n    } while (local_44 != (pointer)0x0);\n  }" else (compound_statement "{\n    local_44 = (pointer)0x1fffffff;\nLAB_00113091:\n    do {\n      __buffer = (Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow);\n      if (__buffer != (Output_segment **)0x0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n        goto LAB_001130c6;\n      }\n      local_44 = (pointer)((int)local_44 >> 1);\n    } while (local_44 != (pointer)0x0);\n  }" { (expression_statement "local_44 = (pointer)0x1fffffff;" (assignment_expression "local_44 = (pointer)0x1fffffff" identifier = (cast_expression "(pointer)0x1fffffff" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (labeled_statement "LAB_00113091:\n    do {\n      __buffer = (Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow);\n      if (__buffer != (Output_segment **)0x0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n        goto LAB_001130c6;\n      }\n      local_44 = (pointer)((int)local_44 >> 1);\n    } while (local_44 != (pointer)0x0);" statement_identifier : (do_statement "do {\n      __buffer = (Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow);\n      if (__buffer != (Output_segment **)0x0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n        goto LAB_001130c6;\n      }\n      local_44 = (pointer)((int)local_44 >> 1);\n    } while (local_44 != (pointer)0x0);" do (compound_statement "{\n      __buffer = (Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow);\n      if (__buffer != (Output_segment **)0x0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n        goto LAB_001130c6;\n      }\n      local_44 = (pointer)((int)local_44 >> 1);\n    }" { (expression_statement "__buffer = (Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow);" (assignment_expression "__buffer = (Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow)" identifier = (cast_expression "(Output_segment **)operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow)" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "operator_new((int)local_44 << 2,(nothrow_t *)&std::nothrow)" identifier (argument_list "((int)local_44 << 2,(nothrow_t *)&std::nothrow)" ( (binary_expression "(int)local_44 << 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) , (cast_expression "(nothrow_t *)&std" ( (type_descriptor "nothrow_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&std" & identifier)) (ERROR "::nothrow" : : identifier) ))))) ;) (if_statement "if (__buffer != (Output_segment **)0x0) {\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n        goto LAB_001130c6;\n      }" if (parenthesized_expression "(__buffer != (Output_segment **)0x0)" ( (binary_expression "__buffer != (Output_segment **)0x0" identifier != (cast_expression "(Output_segment **)0x0" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */\n        std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);\n        goto LAB_001130c6;\n      }" { comment (ERROR "std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::" (comma_expression "std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int,___gnu_cxx" (binary_expression "std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold::Output_segment**,_int" (binary_expression "std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,_gold" (binary_expression "std::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_" identifier (ERROR "::\n        __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*" : : (binary_expression "__stable_sort_adaptive<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (binary_expression "Output_segment**,_std" identifier * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) > identifier) > (ERROR "," ,) identifier) (ERROR "::Output_segment" : : identifier) * (pointer_expression "*,_int" * (ERROR "," ,) identifier)) , identifier) : : identifier : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (labeled_statement "Layout::Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);" statement_identifier : (ERROR ":" :) (expression_statement "Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this);" (binary_expression "Compare_segments>_>\n                  (__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this)" (binary_expression "Compare_segments>_" identifier > identifier) > (parenthesized_expression "(__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this)" ( (comma_expression "__first,__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this)" identifier , (comma_expression "__last,__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this)" identifier , (comma_expression "__buffer,(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this)" identifier , (comma_expression "(int)local_44,\n                   (_Iter_comp_iter<gold::Layout::Compare_segments>)this)" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) , (parenthesized_expression "(_Iter_comp_iter<gold::Layout::Compare_segments>)this)" ( (binary_expression "_Iter_comp_iter<gold::Layout::Compare_segments>)this" (binary_expression "_Iter_comp_iter<gold" identifier < identifier) (ERROR "::Layout::Compare_segments" : : identifier : : identifier) > (ERROR ")" )) identifier) )))))) ))) ;)) (goto_statement "goto LAB_001130c6;" goto statement_identifier ;) })) (expression_statement "local_44 = (pointer)((int)local_44 >> 1);" (assignment_expression "local_44 = (pointer)((int)local_44 >> 1)" identifier = (call_expression "(pointer)((int)local_44 >> 1)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)local_44 >> 1)" ( (binary_expression "(int)local_44 >> 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(local_44 != (pointer)0x0)" ( (binary_expression "local_44 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) ;)) }))) comment (expression_statement "std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n            (__first,__last,(_Iter_comp_iter<gold::Layout::Compare_segments>)this);" (binary_expression "std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_>\n            (__first,__last,(_Iter_comp_iter<gold::Layout::Compare_segments>)this)" (binary_expression "std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Layout::Compare_segments>_" (binary_expression "std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold" (binary_expression "std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_>,___gnu_cxx" (binary_expression "std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*>_" identifier (ERROR "::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_segment**,_std::vector<gold::Output_segment*" : : (binary_expression "__inplace_stable_sort<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (binary_expression "Output_segment**,_std" identifier * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) > identifier) > (ERROR "," ,) identifier) (ERROR "::__ops::_Iter_comp_iter" : : identifier : : identifier) < identifier) (ERROR "::Layout::Compare_segments" : : identifier : : identifier) > identifier) > (parenthesized_expression "(__first,__last,(_Iter_comp_iter<gold::Layout::Compare_segments>)this)" ( (comma_expression "__first,__last,(_Iter_comp_iter<gold::Layout::Compare_segments>)this)" identifier , (comma_expression "__last,(_Iter_comp_iter<gold::Layout::Compare_segments>)this)" identifier , (parenthesized_expression "(_Iter_comp_iter<gold::Layout::Compare_segments>)this)" ( (binary_expression "_Iter_comp_iter<gold::Layout::Compare_segments>)this" (binary_expression "_Iter_comp_iter<gold" identifier < identifier) (ERROR "::Layout::Compare_segments" : : identifier : : identifier) > (ERROR ")" )) identifier) )))) ))) ;) (expression_statement "__buffer = (Output_segment **)0x0;" (assignment_expression "__buffer = (Output_segment **)0x0" identifier = (cast_expression "(Output_segment **)0x0" ( (type_descriptor "Output_segment **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (labeled_statement "LAB_001130c6:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);" statement_identifier : (expression_statement "operator_delete(__buffer,(nothrow_t *)&std::nothrow);" (call_expression "operator_delete(__buffer,(nothrow_t *)&std::nothrow)" identifier (argument_list "(__buffer,(nothrow_t *)&std::nothrow)" ( identifier , (cast_expression "(nothrow_t *)&std" ( (type_descriptor "nothrow_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&std" & identifier)) (ERROR "::nothrow" : : identifier) ))) ;)) (expression_statement "pGVar14 = parameters->options_;" (assignment_expression "pGVar14 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar14 == (General_options *)0x0) goto LAB_0011413b;" if (parenthesized_expression "(pGVar14 == (General_options *)0x0)" ( (binary_expression "pGVar14 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0011413b;" goto statement_identifier ;)) (if_statement "if ((pGVar14->Ttext_).user_set_via_option == false) {\n    local_c4 = 0;\n    local_c0 = 0;\n    if (((pGVar14->shared_).value == false) && ((pGVar14->pie_).value == false)) {\n      pTVar20 = target->pti_;\n      local_c4 = (uint)pTVar20->default_text_segment_address;\n      local_c0 = *(uint *)((int)&pTVar20->default_text_segment_address + 4);\n      uVar24 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n      uVar25 = (uint)(pGVar14->max_page_size_).value;\n      if (uVar24 == 0 && uVar25 == 0) {\n        uVar25 = (uint)pTVar20->abi_pagesize;\n        uVar24 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n      }\n      if (local_c0 < uVar24 || local_c0 - uVar24 < (uint)(local_c4 < uVar25)) {\n        local_c4 = uVar25;\n        local_c0 = uVar24;\n      }\n    }\n  }\n  else {\n    local_c4 = (uint)(pGVar14->Ttext_).value;\n    local_c0 = *(uint *)((int)&(pGVar14->Ttext_).value + 4);\n  }" if (parenthesized_expression "((pGVar14->Ttext_).user_set_via_option == false)" ( (binary_expression "(pGVar14->Ttext_).user_set_via_option == false" (field_expression "(pGVar14->Ttext_).user_set_via_option" (parenthesized_expression "(pGVar14->Ttext_)" ( (field_expression "pGVar14->Ttext_" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n    local_c4 = 0;\n    local_c0 = 0;\n    if (((pGVar14->shared_).value == false) && ((pGVar14->pie_).value == false)) {\n      pTVar20 = target->pti_;\n      local_c4 = (uint)pTVar20->default_text_segment_address;\n      local_c0 = *(uint *)((int)&pTVar20->default_text_segment_address + 4);\n      uVar24 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n      uVar25 = (uint)(pGVar14->max_page_size_).value;\n      if (uVar24 == 0 && uVar25 == 0) {\n        uVar25 = (uint)pTVar20->abi_pagesize;\n        uVar24 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n      }\n      if (local_c0 < uVar24 || local_c0 - uVar24 < (uint)(local_c4 < uVar25)) {\n        local_c4 = uVar25;\n        local_c0 = uVar24;\n      }\n    }\n  }" { (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (if_statement "if (((pGVar14->shared_).value == false) && ((pGVar14->pie_).value == false)) {\n      pTVar20 = target->pti_;\n      local_c4 = (uint)pTVar20->default_text_segment_address;\n      local_c0 = *(uint *)((int)&pTVar20->default_text_segment_address + 4);\n      uVar24 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n      uVar25 = (uint)(pGVar14->max_page_size_).value;\n      if (uVar24 == 0 && uVar25 == 0) {\n        uVar25 = (uint)pTVar20->abi_pagesize;\n        uVar24 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n      }\n      if (local_c0 < uVar24 || local_c0 - uVar24 < (uint)(local_c4 < uVar25)) {\n        local_c4 = uVar25;\n        local_c0 = uVar24;\n      }\n    }" if (parenthesized_expression "(((pGVar14->shared_).value == false) && ((pGVar14->pie_).value == false))" ( (binary_expression "((pGVar14->shared_).value == false) && ((pGVar14->pie_).value == false)" (parenthesized_expression "((pGVar14->shared_).value == false)" ( (binary_expression "(pGVar14->shared_).value == false" (field_expression "(pGVar14->shared_).value" (parenthesized_expression "(pGVar14->shared_)" ( (field_expression "pGVar14->shared_" identifier -> field_identifier) )) . field_identifier) == false) )) && (parenthesized_expression "((pGVar14->pie_).value == false)" ( (binary_expression "(pGVar14->pie_).value == false" (field_expression "(pGVar14->pie_).value" (parenthesized_expression "(pGVar14->pie_)" ( (field_expression "pGVar14->pie_" identifier -> field_identifier) )) . field_identifier) == false) ))) )) (compound_statement "{\n      pTVar20 = target->pti_;\n      local_c4 = (uint)pTVar20->default_text_segment_address;\n      local_c0 = *(uint *)((int)&pTVar20->default_text_segment_address + 4);\n      uVar24 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n      uVar25 = (uint)(pGVar14->max_page_size_).value;\n      if (uVar24 == 0 && uVar25 == 0) {\n        uVar25 = (uint)pTVar20->abi_pagesize;\n        uVar24 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n      }\n      if (local_c0 < uVar24 || local_c0 - uVar24 < (uint)(local_c4 < uVar25)) {\n        local_c4 = uVar25;\n        local_c0 = uVar24;\n      }\n    }" { (expression_statement "pTVar20 = target->pti_;" (assignment_expression "pTVar20 = target->pti_" identifier = (field_expression "target->pti_" identifier -> field_identifier)) ;) (expression_statement "local_c4 = (uint)pTVar20->default_text_segment_address;" (assignment_expression "local_c4 = (uint)pTVar20->default_text_segment_address" identifier = (cast_expression "(uint)pTVar20->default_text_segment_address" ( (type_descriptor "uint" type_identifier) ) (field_expression "pTVar20->default_text_segment_address" identifier -> field_identifier))) ;) (expression_statement "local_c0 = *(uint *)((int)&pTVar20->default_text_segment_address + 4);" (assignment_expression "local_c0 = *(uint *)((int)&pTVar20->default_text_segment_address + 4)" identifier = (pointer_expression "*(uint *)((int)&pTVar20->default_text_segment_address + 4)" * (cast_expression "(uint *)((int)&pTVar20->default_text_segment_address + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar20->default_text_segment_address + 4)" ( (binary_expression "(int)&pTVar20->default_text_segment_address + 4" (cast_expression "(int)&pTVar20->default_text_segment_address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar20->default_text_segment_address" & (field_expression "pTVar20->default_text_segment_address" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar24 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);" (assignment_expression "uVar24 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4)" identifier = (pointer_expression "*(uint *)((int)&(pGVar14->max_page_size_).value + 4)" * (cast_expression "(uint *)((int)&(pGVar14->max_page_size_).value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pGVar14->max_page_size_).value + 4)" ( (binary_expression "(int)&(pGVar14->max_page_size_).value + 4" (cast_expression "(int)&(pGVar14->max_page_size_).value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pGVar14->max_page_size_).value" & (field_expression "(pGVar14->max_page_size_).value" (parenthesized_expression "(pGVar14->max_page_size_)" ( (field_expression "pGVar14->max_page_size_" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar25 = (uint)(pGVar14->max_page_size_).value;" (assignment_expression "uVar25 = (uint)(pGVar14->max_page_size_).value" identifier = (field_expression "(uint)(pGVar14->max_page_size_).value" (call_expression "(uint)(pGVar14->max_page_size_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pGVar14->max_page_size_)" ( (field_expression "pGVar14->max_page_size_" identifier -> field_identifier) ))) . field_identifier)) ;) (if_statement "if (uVar24 == 0 && uVar25 == 0) {\n        uVar25 = (uint)pTVar20->abi_pagesize;\n        uVar24 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n      }" if (parenthesized_expression "(uVar24 == 0 && uVar25 == 0)" ( (binary_expression "uVar24 == 0 && uVar25 == 0" (binary_expression "uVar24 == 0" identifier == number_literal) && (binary_expression "uVar25 == 0" identifier == number_literal)) )) (compound_statement "{\n        uVar25 = (uint)pTVar20->abi_pagesize;\n        uVar24 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n      }" { (expression_statement "uVar25 = (uint)pTVar20->abi_pagesize;" (assignment_expression "uVar25 = (uint)pTVar20->abi_pagesize" identifier = (cast_expression "(uint)pTVar20->abi_pagesize" ( (type_descriptor "uint" type_identifier) ) (field_expression "pTVar20->abi_pagesize" identifier -> field_identifier))) ;) (expression_statement "uVar24 = *(uint *)((int)&pTVar20->abi_pagesize + 4);" (assignment_expression "uVar24 = *(uint *)((int)&pTVar20->abi_pagesize + 4)" identifier = (pointer_expression "*(uint *)((int)&pTVar20->abi_pagesize + 4)" * (cast_expression "(uint *)((int)&pTVar20->abi_pagesize + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar20->abi_pagesize + 4)" ( (binary_expression "(int)&pTVar20->abi_pagesize + 4" (cast_expression "(int)&pTVar20->abi_pagesize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar20->abi_pagesize" & (field_expression "pTVar20->abi_pagesize" identifier -> field_identifier))) + number_literal) ))))) ;) })) (if_statement "if (local_c0 < uVar24 || local_c0 - uVar24 < (uint)(local_c4 < uVar25)) {\n        local_c4 = uVar25;\n        local_c0 = uVar24;\n      }" if (parenthesized_expression "(local_c0 < uVar24 || local_c0 - uVar24 < (uint)(local_c4 < uVar25))" ( (binary_expression "local_c0 < uVar24 || local_c0 - uVar24 < (uint)(local_c4 < uVar25)" (binary_expression "local_c0 < uVar24" identifier < identifier) || (binary_expression "local_c0 - uVar24 < (uint)(local_c4 < uVar25)" (binary_expression "local_c0 - uVar24" identifier - identifier) < (call_expression "(uint)(local_c4 < uVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_c4 < uVar25)" ( (binary_expression "local_c4 < uVar25" identifier < identifier) ))))) )) (compound_statement "{\n        local_c4 = uVar25;\n        local_c0 = uVar24;\n      }" { (expression_statement "local_c4 = uVar25;" (assignment_expression "local_c4 = uVar25" identifier = identifier) ;) (expression_statement "local_c0 = uVar24;" (assignment_expression "local_c0 = uVar24" identifier = identifier) ;) })) })) }) (else_clause "else {\n    local_c4 = (uint)(pGVar14->Ttext_).value;\n    local_c0 = *(uint *)((int)&(pGVar14->Ttext_).value + 4);\n  }" else (compound_statement "{\n    local_c4 = (uint)(pGVar14->Ttext_).value;\n    local_c0 = *(uint *)((int)&(pGVar14->Ttext_).value + 4);\n  }" { (expression_statement "local_c4 = (uint)(pGVar14->Ttext_).value;" (assignment_expression "local_c4 = (uint)(pGVar14->Ttext_).value" identifier = (field_expression "(uint)(pGVar14->Ttext_).value" (call_expression "(uint)(pGVar14->Ttext_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pGVar14->Ttext_)" ( (field_expression "pGVar14->Ttext_" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "local_c0 = *(uint *)((int)&(pGVar14->Ttext_).value + 4);" (assignment_expression "local_c0 = *(uint *)((int)&(pGVar14->Ttext_).value + 4)" identifier = (pointer_expression "*(uint *)((int)&(pGVar14->Ttext_).value + 4)" * (cast_expression "(uint *)((int)&(pGVar14->Ttext_).value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pGVar14->Ttext_).value + 4)" ( (binary_expression "(int)&(pGVar14->Ttext_).value + 4" (cast_expression "(int)&(pGVar14->Ttext_).value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pGVar14->Ttext_).value" & (field_expression "(pGVar14->Ttext_).value" (parenthesized_expression "(pGVar14->Ttext_)" ( (field_expression "pGVar14->Ttext_" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) }))) (expression_statement "off._0_4_ = 0;" (assignment_expression "off._0_4_ = 0" (field_expression "off._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "off._4_4_ = 0;" (assignment_expression "off._4_4_ = 0" (field_expression "off._4_4_" identifier . field_identifier) = number_literal) ;) (if_statement "if ((load_seg == (Output_segment *)0x0) &&\n     (local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n     local_44 !=\n     (pointer)(this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish)) {\n    do {\n      uVar24 = (*((Output_data *)*local_44)->_vptr_Output_data[3])((Output_data *)*local_44);\n      if (extraout_EDX != 0 || uVar24 != 0) {\n        bVar28 = (uint)off != 0;\n        uVar25 = (uint)off - 1;\n        off._0_4_ = -uVar24 & uVar25 + uVar24;\n        off._4_4_ = -(extraout_EDX + (uint)(uVar24 != 0)) &\n                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24);\n      }\n      pOVar21 = (Output_data *)*local_44;\n      bVar1 = pOVar21->field_0x1c;\n      if ((bVar1 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(undefined4 *)&pOVar21->address_ = 0;\n      *(undefined4 *)((int)&pOVar21->address_ + 4) = 0;\n      pOVar21->field_0x1c = bVar1 | 1;\n      if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      *(uint *)&pOVar21->offset_ = (uint)off;\n      *(uint *)((int)&pOVar21->offset_ + 4) = off._4_4_;\n      pOVar21->field_0x1c = bVar1 | 5;\n      if ((bVar1 & 2) == 0) {\n        (*pOVar21->_vptr_Output_data[0xe])(pOVar21);\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar21 = (Output_data *)*local_44;\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)off,(uint)pOVar21->data_size_);\n      off._0_4_ = (uint)off + (int)pOVar21->data_size_;\n      off._4_4_ = off._4_4_ + *(int *)((int)&pOVar21->data_size_ + 4) + (uint)bVar28;\n      local_44 = local_44 + 1;\n    } while ((pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish != local_44);\n    increase_relro = this->increase_relro_;\n    pGVar14 = parameters->options_;\n    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\nLAB_0011314a:\n      increase_relro = 0;\n    }\n    if (pGVar14 == (General_options *)0x0) {\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n  }\n  else {\n    increase_relro = this->increase_relro_;\n    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) goto LAB_0011314a;\n  }" if (parenthesized_expression "((load_seg == (Output_segment *)0x0) &&\n     (local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n     local_44 !=\n     (pointer)(this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish))" ( (binary_expression "(load_seg == (Output_segment *)0x0) &&\n     (local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n     local_44 !=\n     (pointer)(this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish)" (parenthesized_expression "(load_seg == (Output_segment *)0x0)" ( (binary_expression "load_seg == (Output_segment *)0x0" identifier == (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n     local_44 !=\n     (pointer)(this->special_output_list_).\n              super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish)" ( (comma_expression "local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start,\n     local_44 !=\n     (pointer)(this->special_output_list_).\n              super__Vector_base<gold" (field_expression "local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl._M_start" (field_expression "local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                          ._M_impl" (binary_expression "local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold::Output_data*,_std" (assignment_expression "local_44 = (pointer)(this->special_output_list_).\n                          super__Vector_base<gold" identifier = (binary_expression "(pointer)(this->special_output_list_).\n                          super__Vector_base<gold" (field_expression "(pointer)(this->special_output_list_).\n                          super__Vector_base" (call_expression "(pointer)(this->special_output_list_)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(this->special_output_list_)" ( (field_expression "this->special_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 "local_44 !=\n     (pointer)(this->special_output_list_).\n              super__Vector_base<gold" identifier != (binary_expression "(pointer)(this->special_output_list_).\n              super__Vector_base<gold" (field_expression "(pointer)(this->special_output_list_).\n              super__Vector_base" (call_expression "(pointer)(this->special_output_list_)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(this->special_output_list_)" ( (field_expression "this->special_output_list_" identifier -> field_identifier) ))) . field_identifier) < identifier))) (ERROR "::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n              _M_finish" : : identifier * , identifier : : identifier < identifier : : identifier * > identifier > . identifier . identifier) ))) )) (compound_statement "{\n    do {\n      uVar24 = (*((Output_data *)*local_44)->_vptr_Output_data[3])((Output_data *)*local_44);\n      if (extraout_EDX != 0 || uVar24 != 0) {\n        bVar28 = (uint)off != 0;\n        uVar25 = (uint)off - 1;\n        off._0_4_ = -uVar24 & uVar25 + uVar24;\n        off._4_4_ = -(extraout_EDX + (uint)(uVar24 != 0)) &\n                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24);\n      }\n      pOVar21 = (Output_data *)*local_44;\n      bVar1 = pOVar21->field_0x1c;\n      if ((bVar1 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(undefined4 *)&pOVar21->address_ = 0;\n      *(undefined4 *)((int)&pOVar21->address_ + 4) = 0;\n      pOVar21->field_0x1c = bVar1 | 1;\n      if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      *(uint *)&pOVar21->offset_ = (uint)off;\n      *(uint *)((int)&pOVar21->offset_ + 4) = off._4_4_;\n      pOVar21->field_0x1c = bVar1 | 5;\n      if ((bVar1 & 2) == 0) {\n        (*pOVar21->_vptr_Output_data[0xe])(pOVar21);\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar21 = (Output_data *)*local_44;\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)off,(uint)pOVar21->data_size_);\n      off._0_4_ = (uint)off + (int)pOVar21->data_size_;\n      off._4_4_ = off._4_4_ + *(int *)((int)&pOVar21->data_size_ + 4) + (uint)bVar28;\n      local_44 = local_44 + 1;\n    } while ((pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish != local_44);\n    increase_relro = this->increase_relro_;\n    pGVar14 = parameters->options_;\n    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\nLAB_0011314a:\n      increase_relro = 0;\n    }\n    if (pGVar14 == (General_options *)0x0) {\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }\n  }" { (do_statement "do {\n      uVar24 = (*((Output_data *)*local_44)->_vptr_Output_data[3])((Output_data *)*local_44);\n      if (extraout_EDX != 0 || uVar24 != 0) {\n        bVar28 = (uint)off != 0;\n        uVar25 = (uint)off - 1;\n        off._0_4_ = -uVar24 & uVar25 + uVar24;\n        off._4_4_ = -(extraout_EDX + (uint)(uVar24 != 0)) &\n                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24);\n      }\n      pOVar21 = (Output_data *)*local_44;\n      bVar1 = pOVar21->field_0x1c;\n      if ((bVar1 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(undefined4 *)&pOVar21->address_ = 0;\n      *(undefined4 *)((int)&pOVar21->address_ + 4) = 0;\n      pOVar21->field_0x1c = bVar1 | 1;\n      if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      *(uint *)&pOVar21->offset_ = (uint)off;\n      *(uint *)((int)&pOVar21->offset_ + 4) = off._4_4_;\n      pOVar21->field_0x1c = bVar1 | 5;\n      if ((bVar1 & 2) == 0) {\n        (*pOVar21->_vptr_Output_data[0xe])(pOVar21);\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar21 = (Output_data *)*local_44;\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)off,(uint)pOVar21->data_size_);\n      off._0_4_ = (uint)off + (int)pOVar21->data_size_;\n      off._4_4_ = off._4_4_ + *(int *)((int)&pOVar21->data_size_ + 4) + (uint)bVar28;\n      local_44 = local_44 + 1;\n    } while ((pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish != local_44);" do (compound_statement "{\n      uVar24 = (*((Output_data *)*local_44)->_vptr_Output_data[3])((Output_data *)*local_44);\n      if (extraout_EDX != 0 || uVar24 != 0) {\n        bVar28 = (uint)off != 0;\n        uVar25 = (uint)off - 1;\n        off._0_4_ = -uVar24 & uVar25 + uVar24;\n        off._4_4_ = -(extraout_EDX + (uint)(uVar24 != 0)) &\n                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24);\n      }\n      pOVar21 = (Output_data *)*local_44;\n      bVar1 = pOVar21->field_0x1c;\n      if ((bVar1 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }\n      *(undefined4 *)&pOVar21->address_ = 0;\n      *(undefined4 *)((int)&pOVar21->address_ + 4) = 0;\n      pOVar21->field_0x1c = bVar1 | 1;\n      if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      *(uint *)&pOVar21->offset_ = (uint)off;\n      *(uint *)((int)&pOVar21->offset_ + 4) = off._4_4_;\n      pOVar21->field_0x1c = bVar1 | 5;\n      if ((bVar1 & 2) == 0) {\n        (*pOVar21->_vptr_Output_data[0xe])(pOVar21);\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar21 = (Output_data *)*local_44;\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)off,(uint)pOVar21->data_size_);\n      off._0_4_ = (uint)off + (int)pOVar21->data_size_;\n      off._4_4_ = off._4_4_ + *(int *)((int)&pOVar21->data_size_ + 4) + (uint)bVar28;\n      local_44 = local_44 + 1;\n    }" { (expression_statement "uVar24 = (*((Output_data *)*local_44)->_vptr_Output_data[3])((Output_data *)*local_44);" (assignment_expression "uVar24 = (*((Output_data *)*local_44)->_vptr_Output_data[3])((Output_data *)*local_44)" identifier = (call_expression "(*((Output_data *)*local_44)->_vptr_Output_data[3])((Output_data *)*local_44)" (parenthesized_expression "(*((Output_data *)*local_44)->_vptr_Output_data[3])" ( (pointer_expression "*((Output_data *)*local_44)->_vptr_Output_data[3]" * (subscript_expression "((Output_data *)*local_44)->_vptr_Output_data[3]" (field_expression "((Output_data *)*local_44)->_vptr_Output_data" (parenthesized_expression "((Output_data *)*local_44)" ( (cast_expression "(Output_data *)*local_44" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier)) )) -> field_identifier) [ number_literal ])) )) (argument_list "((Output_data *)*local_44)" ( (cast_expression "(Output_data *)*local_44" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier)) )))) ;) (if_statement "if (extraout_EDX != 0 || uVar24 != 0) {\n        bVar28 = (uint)off != 0;\n        uVar25 = (uint)off - 1;\n        off._0_4_ = -uVar24 & uVar25 + uVar24;\n        off._4_4_ = -(extraout_EDX + (uint)(uVar24 != 0)) &\n                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24);\n      }" if (parenthesized_expression "(extraout_EDX != 0 || uVar24 != 0)" ( (binary_expression "extraout_EDX != 0 || uVar24 != 0" (binary_expression "extraout_EDX != 0" identifier != number_literal) || (binary_expression "uVar24 != 0" identifier != number_literal)) )) (compound_statement "{\n        bVar28 = (uint)off != 0;\n        uVar25 = (uint)off - 1;\n        off._0_4_ = -uVar24 & uVar25 + uVar24;\n        off._4_4_ = -(extraout_EDX + (uint)(uVar24 != 0)) &\n                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24);\n      }" { (expression_statement "bVar28 = (uint)off != 0;" (assignment_expression "bVar28 = (uint)off != 0" identifier = (binary_expression "(uint)off != 0" (cast_expression "(uint)off" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal)) ;) (expression_statement "uVar25 = (uint)off - 1;" (assignment_expression "uVar25 = (uint)off - 1" identifier = (binary_expression "(uint)off - 1" (cast_expression "(uint)off" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal)) ;) (expression_statement "off._0_4_ = -uVar24 & uVar25 + uVar24;" (assignment_expression "off._0_4_ = -uVar24 & uVar25 + uVar24" (field_expression "off._0_4_" identifier . field_identifier) = (binary_expression "-uVar24 & uVar25 + uVar24" (unary_expression "-uVar24" - identifier) & (binary_expression "uVar25 + uVar24" identifier + identifier))) ;) (expression_statement "off._4_4_ = -(extraout_EDX + (uint)(uVar24 != 0)) &\n                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24);" (assignment_expression "off._4_4_ = -(extraout_EDX + (uint)(uVar24 != 0)) &\n                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24)" (field_expression "off._4_4_" identifier . field_identifier) = (binary_expression "-(extraout_EDX + (uint)(uVar24 != 0)) &\n                    (off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24)" (unary_expression "-(extraout_EDX + (uint)(uVar24 != 0))" - (parenthesized_expression "(extraout_EDX + (uint)(uVar24 != 0))" ( (binary_expression "extraout_EDX + (uint)(uVar24 != 0)" identifier + (call_expression "(uint)(uVar24 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 != 0)" ( (binary_expression "uVar24 != 0" identifier != number_literal) )))) ))) & (binary_expression "(off._4_4_ - 1) + (uint)bVar28 + extraout_EDX + (uint)CARRY4(uVar25,uVar24)" (binary_expression "(off._4_4_ - 1) + (uint)bVar28 + extraout_EDX" (binary_expression "(off._4_4_ - 1) + (uint)bVar28" (parenthesized_expression "(off._4_4_ - 1)" ( (binary_expression "off._4_4_ - 1" (field_expression "off._4_4_" identifier . field_identifier) - number_literal) )) + (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) + identifier) + (cast_expression "(uint)CARRY4(uVar25,uVar24)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar25,uVar24)" identifier (argument_list "(uVar25,uVar24)" ( identifier , identifier ))))))) ;) })) (expression_statement "pOVar21 = (Output_data *)*local_44;" (assignment_expression "pOVar21 = (Output_data *)*local_44" identifier = (cast_expression "(Output_data *)*local_44" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "bVar1 = pOVar21->field_0x1c;" (assignment_expression "bVar1 = pOVar21->field_0x1c" identifier = (field_expression "pOVar21->field_0x1c" identifier -> field_identifier)) ;) (if_statement "if ((bVar1 & 1) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }" if (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x142,"set_address");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x142,"set_address");" (call_expression "do_gold_unreachable("../../gold/output.h",0x142,"set_address")" identifier (argument_list "("../../gold/output.h",0x142,"set_address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_address"" " string_content ") ))) ;) })) (expression_statement "*(undefined4 *)&pOVar21->address_ = 0;" (assignment_expression "*(undefined4 *)&pOVar21->address_ = 0" (pointer_expression "*(undefined4 *)&pOVar21->address_" * (cast_expression "(undefined4 *)&pOVar21->address_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar21->address_" & (field_expression "pOVar21->address_" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&pOVar21->address_ + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pOVar21->address_ + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pOVar21->address_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar21->address_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar21->address_ + 4)" ( (binary_expression "(int)&pOVar21->address_ + 4" (cast_expression "(int)&pOVar21->address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar21->address_" & (field_expression "pOVar21->address_" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar21->field_0x1c = bVar1 | 1;" (assignment_expression "pOVar21->field_0x1c = bVar1 | 1" (field_expression "pOVar21->field_0x1c" identifier -> field_identifier) = (binary_expression "bVar1 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 4) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n      }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0x14b,"set_file_offset")" identifier (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_file_offset"" " string_content ") ))) ;) })) (expression_statement "*(uint *)&pOVar21->offset_ = (uint)off;" (assignment_expression "*(uint *)&pOVar21->offset_ = (uint)off" (pointer_expression "*(uint *)&pOVar21->offset_" * (cast_expression "(uint *)&pOVar21->offset_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar21->offset_" & (field_expression "pOVar21->offset_" identifier -> field_identifier)))) = (cast_expression "(uint)off" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((int)&pOVar21->offset_ + 4) = off._4_4_;" (assignment_expression "*(uint *)((int)&pOVar21->offset_ + 4) = off._4_4_" (pointer_expression "*(uint *)((int)&pOVar21->offset_ + 4)" * (cast_expression "(uint *)((int)&pOVar21->offset_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar21->offset_ + 4)" ( (binary_expression "(int)&pOVar21->offset_ + 4" (cast_expression "(int)&pOVar21->offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar21->offset_" & (field_expression "pOVar21->offset_" identifier -> field_identifier))) + number_literal) )))) = (field_expression "off._4_4_" identifier . field_identifier)) ;) (expression_statement "pOVar21->field_0x1c = bVar1 | 5;" (assignment_expression "pOVar21->field_0x1c = bVar1 | 5" (field_expression "pOVar21->field_0x1c" identifier -> field_identifier) = (binary_expression "bVar1 | 5" identifier | number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n        (*pOVar21->_vptr_Output_data[0xe])(pOVar21);\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar21 = (Output_data *)*local_44;\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n      }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        (*pOVar21->_vptr_Output_data[0xe])(pOVar21);\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        pOVar21 = (Output_data *)*local_44;\n        if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }\n      }" { (expression_statement "(*pOVar21->_vptr_Output_data[0xe])(pOVar21);" (call_expression "(*pOVar21->_vptr_Output_data[0xe])(pOVar21)" (parenthesized_expression "(*pOVar21->_vptr_Output_data[0xe])" ( (pointer_expression "*pOVar21->_vptr_Output_data[0xe]" * (subscript_expression "pOVar21->_vptr_Output_data[0xe]" (field_expression "pOVar21->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar21)" ( identifier ))) ;) (if_statement "if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }" if (parenthesized_expression "((pOVar21->field_0x1c & 2) == 0)" ( (binary_expression "(pOVar21->field_0x1c & 2) == 0" (parenthesized_expression "(pOVar21->field_0x1c & 2)" ( (binary_expression "pOVar21->field_0x1c & 2" (field_expression "pOVar21->field_0x1c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;) })) (expression_statement "pOVar21 = (Output_data *)*local_44;" (assignment_expression "pOVar21 = (Output_data *)*local_44" identifier = (cast_expression "(Output_data *)*local_44" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) ;) (if_statement "if ((pOVar21->field_0x1c & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }" if (parenthesized_expression "((pOVar21->field_0x1c & 2) == 0)" ( (binary_expression "(pOVar21->field_0x1c & 2) == 0" (parenthesized_expression "(pOVar21->field_0x1c & 2)" ( (binary_expression "pOVar21->field_0x1c & 2" (field_expression "pOVar21->field_0x1c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) })) (expression_statement "bVar28 = CARRY4((uint)off,(uint)pOVar21->data_size_);" (assignment_expression "bVar28 = CARRY4((uint)off,(uint)pOVar21->data_size_)" identifier = (call_expression "CARRY4((uint)off,(uint)pOVar21->data_size_)" identifier (argument_list "((uint)off,(uint)pOVar21->data_size_)" ( (cast_expression "(uint)off" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)pOVar21->data_size_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar21->data_size_" identifier -> field_identifier)) )))) ;) (expression_statement "off._0_4_ = (uint)off + (int)pOVar21->data_size_;" (assignment_expression "off._0_4_ = (uint)off + (int)pOVar21->data_size_" (field_expression "off._0_4_" identifier . field_identifier) = (binary_expression "(uint)off + (int)pOVar21->data_size_" (cast_expression "(uint)off" ( (type_descriptor "uint" type_identifier) ) identifier) + (cast_expression "(int)pOVar21->data_size_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar21->data_size_" identifier -> field_identifier)))) ;) (expression_statement "off._4_4_ = off._4_4_ + *(int *)((int)&pOVar21->data_size_ + 4) + (uint)bVar28;" (assignment_expression "off._4_4_ = off._4_4_ + *(int *)((int)&pOVar21->data_size_ + 4) + (uint)bVar28" (field_expression "off._4_4_" identifier . field_identifier) = (binary_expression "off._4_4_ + *(int *)((int)&pOVar21->data_size_ + 4) + (uint)bVar28" (binary_expression "off._4_4_ + *(int *)((int)&pOVar21->data_size_ + 4)" (field_expression "off._4_4_" identifier . field_identifier) + (pointer_expression "*(int *)((int)&pOVar21->data_size_ + 4)" * (cast_expression "(int *)((int)&pOVar21->data_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar21->data_size_ + 4)" ( (binary_expression "(int)&pOVar21->data_size_ + 4" (cast_expression "(int)&pOVar21->data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar21->data_size_" & (field_expression "pOVar21->data_size_" identifier -> field_identifier))) + number_literal) ))))) + (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish != local_44)" ( (binary_expression "(pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish != local_44" (field_expression "(pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl._M_finish" (field_expression "(pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                      _M_impl" (binary_expression "(pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(pointer)(this->special_output_list_).\n                      super__Vector_base<gold::Output_data*,_std" (binary_expression "(pointer)(this->special_output_list_).\n                      super__Vector_base<gold" (field_expression "(pointer)(this->special_output_list_).\n                      super__Vector_base" (call_expression "(pointer)(this->special_output_list_)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(this->special_output_list_)" ( (field_expression "this->special_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) != identifier) )) ;) (expression_statement "increase_relro = this->increase_relro_;" (assignment_expression "increase_relro = this->increase_relro_" identifier = (field_expression "this->increase_relro_" identifier -> field_identifier)) ;) (expression_statement "pGVar14 = parameters->options_;" (assignment_expression "pGVar14 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\nLAB_0011314a:\n      increase_relro = 0;\n    }" if (parenthesized_expression "((this->script_options_->script_sections_).saw_sections_clause_ != false)" ( (binary_expression "(this->script_options_->script_sections_).saw_sections_clause_ != false" (field_expression "(this->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\nLAB_0011314a:\n      increase_relro = 0;\n    }" { (labeled_statement "LAB_0011314a:\n      increase_relro = 0;" statement_identifier : (expression_statement "increase_relro = 0;" (assignment_expression "increase_relro = 0" identifier = number_literal) ;)) })) (if_statement "if (pGVar14 == (General_options *)0x0) {\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }" if (parenthesized_expression "(pGVar14 == (General_options *)0x0)" ( (binary_expression "pGVar14 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n    }" { (labeled_statement "LAB_0011413b:\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) }) (else_clause "else {\n    increase_relro = this->increase_relro_;\n    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) goto LAB_0011314a;\n  }" else (compound_statement "{\n    increase_relro = this->increase_relro_;\n    if ((this->script_options_->script_sections_).saw_sections_clause_ != false) goto LAB_0011314a;\n  }" { (expression_statement "increase_relro = this->increase_relro_;" (assignment_expression "increase_relro = this->increase_relro_" identifier = (field_expression "this->increase_relro_" identifier -> field_identifier)) ;) (if_statement "if ((this->script_options_->script_sections_).saw_sections_clause_ != false) goto LAB_0011314a;" if (parenthesized_expression "((this->script_options_->script_sections_).saw_sections_clause_ != false)" ( (binary_expression "(this->script_options_->script_sections_).saw_sections_clause_ != false" (field_expression "(this->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (goto_statement "goto LAB_0011314a;" goto statement_identifier ;)) }))) (expression_statement "bVar28 = (pGVar14->check_sections_).value;" (assignment_expression "bVar28 = (pGVar14->check_sections_).value" identifier = (field_expression "(pGVar14->check_sections_).value" (parenthesized_expression "(pGVar14->check_sections_)" ( (field_expression "pGVar14->check_sections_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_ac = *pshndx;" (assignment_expression "local_ac = *pshndx" identifier = (pointer_expression "*pshndx" * identifier)) ;) (expression_statement "local_44 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;" (field_expression "local_44 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start" (field_expression "local_44 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl" (binary_expression "local_44 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "local_44 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "local_44 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std" (assignment_expression "local_44 = (this->segment_list_).\n             super__Vector_base<gold" identifier = (binary_expression "(this->segment_list_).\n             super__Vector_base<gold" (field_expression "(this->segment_list_).\n             super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "shndx_begin = local_ac;" (assignment_expression "shndx_begin = local_ac" identifier = identifier) ;) (if_statement "if (local_44 ==\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\n    lVar8 = off;\n    if (load_seg == (Output_segment *)0x0) goto LAB_00113d4d;\nLAB_00113ce7:\n    off._4_4_ = (uint)((ulonglong)lVar8 >> 0x20);\n    off._0_4_ = (uint)lVar8;\n    pTVar20 = target->pti_;\n    if (pTVar20->isolate_execinstr != false) {\n      pGVar14 = parameters->options_;\n      if (pGVar14 == (General_options *)0x0) {\n        off = lVar8;\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(in_stack_ffffff14);\n      }\n      local_40 = *(int *)((int)&(pGVar14->max_page_size_).value + 4);\n      local_44 = (pointer)(pGVar14->max_page_size_).value;\n      if (local_40 == 0 && local_44 == (pointer)0x0) {\n        local_40 = *(int *)((int)&pTVar20->abi_pagesize + 4);\n        local_44 = (pointer)pTVar20->abi_pagesize;\n      }\n      uVar24 = (uint)off & -(int)local_44;\n      uVar25 = off._4_4_ & -(local_40 + (uint)(local_44 != (pointer)0x0));\n      if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n        bVar28 = CARRY4(uVar24,(uint)local_44);\n        uVar24 = uVar24 + (int)local_44;\n        uVar25 = uVar25 + local_40 + (uint)bVar28;\n      }\n      ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      off._0_4_ = uVar24;\n      off._4_4_ = uVar25;\n      if (ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish) {\n        do {\n          pOVar21 = *ppOVar22;\n          if (pOVar21 != (Output_data *)0x0) {\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }\n          ppOVar22 = ppOVar22 + 1;\n        } while ((this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish != ppOVar22);\n        ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_start;\n        if (ppOVar22 != ppOVar4) {\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4;\n        }\n      }\n      local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                 _M_impl._M_start;\n      pOVar15 = *local_44;\n      while (pOVar15 != load_seg) {\n        local_44 = local_44 + 1;\n        if (pOVar15->type_ == 1) {\n          uVar24 = (uint)pOVar15->vaddr_;\n          iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);\n          has_relro = false;\n          uVar29 = pOVar15->memsz_;\n          uVar10 = pOVar15->memsz_;\n          iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);\n          uVar30 = Output_segment::set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin);\n          if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }\n        }\n        pOVar15 = *local_44;\n      }\n      lVar8 = CONCAT44(off._4_4_,(uint)off);\n      if (shndx_begin != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0x1009,"set_segment_offsets");\n      }\n    }\n    off = lVar8;\n    local_44 = (this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish;\n  }\n  else {\n    local_4c = (Output_segment *)0x0;\n    uVar29 = CONCAT44(local_c0,local_c4);\n    do {\n      pOVar15 = *local_44;\n      pOVar2 = local_4c;\n      if (pOVar15->type_ == 1) {\n        bVar12 = target->pti_->isolate_execinstr;\n        if (bVar12 == false) {\n          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          load_seg = (Output_segment *)0x0;\n        }\n        else if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }\n        bVar19 = (byte)pOVar15->field_0x19c >> 1;\n        pGVar14 = parameters->options_;\n        bVar1 = bVar19 & 1;\n        if ((bVar19 & 1) == 0) {\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar11 = (pGVar14->Ttext_).user_set_via_option;\n          uVar10 = uVar29;\n          lVar8 = off;\n          if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }\n        }\n        else {\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = (uint)(pGVar14->max_page_size_).value;\n        local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n        local_6c = (uint)(pGVar14->common_page_size_).value;\n        local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4);\n        if (local_50 == 0 && local_54 == 0) {\n          pTVar20 = target->pti_;\n          local_54 = (uint)pTVar20->abi_pagesize;\n          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar9 = CONCAT44(local_50,local_54);\n        if ((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))\n        {\n          *(uint *)&pOVar15->min_p_align_ = local_54;\n          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;\n        }\n        off = lVar8;\n        if (bVar19 == 0) {\n          uVar29 = Output_segment::maximum_alignment(*local_44);\n          uVar25 = (uint)(uVar29 >> 0x20);\n          uVar24 = (uint)uVar29;\n          if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }\n          local_84 = (uint)uVar30;\n          local_80 = (uint)(uVar30 >> 0x20);\n          uVar7 = uVar30;\n          if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }\n          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);\n          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }\n          pOVar15 = load_seg;\n          uVar30 = uVar7;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }\n        }\n        else {\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }\n        local_80 = (uint)(uVar30 >> 0x20);\n        local_84 = (uint)uVar30;\n        local_70 = (uint)(uVar7 >> 0x20);\n        local_74 = (uint)uVar7;\n        if (((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          uVar24 = (uint)(uVar29 >> 0x20);\n          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }\n          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;\n          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);\n          lVar6 = CONCAT44(uVar25,uVar24);\n          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }\n        }\n        else {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }\n        has_relro = false;\n        uVar24 = *pshndx;\n        off = lVar6;\n        uVar29 = Output_segment::set_section_addresses\n                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           );\n        if (((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)) {\n          bVar12 = Parameters::incremental(parameters);\n          if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }\n        }\n        pOVar2 = *local_44;\n        if ((local_4c != (Output_segment *)0x0) && (bVar28 != false)) {\n          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);\n          uVar25 = (uint)pOVar2->paddr_;\n          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);\n          uVar17 = (uint)local_4c->paddr_;\n          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar23 = uVar17 + (int)local_4c->memsz_;\n          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);\n          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }\n        }\n      }\n      local_4c = pOVar2;\n      local_44 = local_44 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_44);\n    lVar8 = off;\n    if (load_seg != (Output_segment *)0x0) goto LAB_00113ce7;\n  }" if (parenthesized_expression "(local_44 ==\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish)" ( (field_expression "local_44 ==\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish" (field_expression "local_44 ==\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl" (binary_expression "local_44 ==\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "local_44 ==\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "local_44 ==\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std" (binary_expression "local_44 ==\n      (this->segment_list_).\n      super__Vector_base<gold" identifier == (binary_expression "(this->segment_list_).\n      super__Vector_base<gold" (field_expression "(this->segment_list_).\n      super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    lVar8 = off;\n    if (load_seg == (Output_segment *)0x0) goto LAB_00113d4d;\nLAB_00113ce7:\n    off._4_4_ = (uint)((ulonglong)lVar8 >> 0x20);\n    off._0_4_ = (uint)lVar8;\n    pTVar20 = target->pti_;\n    if (pTVar20->isolate_execinstr != false) {\n      pGVar14 = parameters->options_;\n      if (pGVar14 == (General_options *)0x0) {\n        off = lVar8;\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(in_stack_ffffff14);\n      }\n      local_40 = *(int *)((int)&(pGVar14->max_page_size_).value + 4);\n      local_44 = (pointer)(pGVar14->max_page_size_).value;\n      if (local_40 == 0 && local_44 == (pointer)0x0) {\n        local_40 = *(int *)((int)&pTVar20->abi_pagesize + 4);\n        local_44 = (pointer)pTVar20->abi_pagesize;\n      }\n      uVar24 = (uint)off & -(int)local_44;\n      uVar25 = off._4_4_ & -(local_40 + (uint)(local_44 != (pointer)0x0));\n      if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n        bVar28 = CARRY4(uVar24,(uint)local_44);\n        uVar24 = uVar24 + (int)local_44;\n        uVar25 = uVar25 + local_40 + (uint)bVar28;\n      }\n      ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      off._0_4_ = uVar24;\n      off._4_4_ = uVar25;\n      if (ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish) {\n        do {\n          pOVar21 = *ppOVar22;\n          if (pOVar21 != (Output_data *)0x0) {\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }\n          ppOVar22 = ppOVar22 + 1;\n        } while ((this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish != ppOVar22);\n        ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_start;\n        if (ppOVar22 != ppOVar4) {\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4;\n        }\n      }\n      local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                 _M_impl._M_start;\n      pOVar15 = *local_44;\n      while (pOVar15 != load_seg) {\n        local_44 = local_44 + 1;\n        if (pOVar15->type_ == 1) {\n          uVar24 = (uint)pOVar15->vaddr_;\n          iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);\n          has_relro = false;\n          uVar29 = pOVar15->memsz_;\n          uVar10 = pOVar15->memsz_;\n          iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);\n          uVar30 = Output_segment::set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin);\n          if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }\n        }\n        pOVar15 = *local_44;\n      }\n      lVar8 = CONCAT44(off._4_4_,(uint)off);\n      if (shndx_begin != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0x1009,"set_segment_offsets");\n      }\n    }\n    off = lVar8;\n    local_44 = (this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish;\n  }" { (expression_statement "lVar8 = off;" (assignment_expression "lVar8 = off" identifier = identifier) ;) (if_statement "if (load_seg == (Output_segment *)0x0) goto LAB_00113d4d;" if (parenthesized_expression "(load_seg == (Output_segment *)0x0)" ( (binary_expression "load_seg == (Output_segment *)0x0" identifier == (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00113d4d;" goto statement_identifier ;)) (labeled_statement "LAB_00113ce7:\n    off._4_4_ = (uint)((ulonglong)lVar8 >> 0x20);" statement_identifier : (expression_statement "off._4_4_ = (uint)((ulonglong)lVar8 >> 0x20);" (assignment_expression "off._4_4_ = (uint)((ulonglong)lVar8 >> 0x20)" (field_expression "off._4_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)lVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "off._0_4_ = (uint)lVar8;" (assignment_expression "off._0_4_ = (uint)lVar8" (field_expression "off._0_4_" identifier . field_identifier) = (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pTVar20 = target->pti_;" (assignment_expression "pTVar20 = target->pti_" identifier = (field_expression "target->pti_" identifier -> field_identifier)) ;) (if_statement "if (pTVar20->isolate_execinstr != false) {\n      pGVar14 = parameters->options_;\n      if (pGVar14 == (General_options *)0x0) {\n        off = lVar8;\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(in_stack_ffffff14);\n      }\n      local_40 = *(int *)((int)&(pGVar14->max_page_size_).value + 4);\n      local_44 = (pointer)(pGVar14->max_page_size_).value;\n      if (local_40 == 0 && local_44 == (pointer)0x0) {\n        local_40 = *(int *)((int)&pTVar20->abi_pagesize + 4);\n        local_44 = (pointer)pTVar20->abi_pagesize;\n      }\n      uVar24 = (uint)off & -(int)local_44;\n      uVar25 = off._4_4_ & -(local_40 + (uint)(local_44 != (pointer)0x0));\n      if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n        bVar28 = CARRY4(uVar24,(uint)local_44);\n        uVar24 = uVar24 + (int)local_44;\n        uVar25 = uVar25 + local_40 + (uint)bVar28;\n      }\n      ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      off._0_4_ = uVar24;\n      off._4_4_ = uVar25;\n      if (ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish) {\n        do {\n          pOVar21 = *ppOVar22;\n          if (pOVar21 != (Output_data *)0x0) {\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }\n          ppOVar22 = ppOVar22 + 1;\n        } while ((this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish != ppOVar22);\n        ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_start;\n        if (ppOVar22 != ppOVar4) {\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4;\n        }\n      }\n      local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                 _M_impl._M_start;\n      pOVar15 = *local_44;\n      while (pOVar15 != load_seg) {\n        local_44 = local_44 + 1;\n        if (pOVar15->type_ == 1) {\n          uVar24 = (uint)pOVar15->vaddr_;\n          iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);\n          has_relro = false;\n          uVar29 = pOVar15->memsz_;\n          uVar10 = pOVar15->memsz_;\n          iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);\n          uVar30 = Output_segment::set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin);\n          if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }\n        }\n        pOVar15 = *local_44;\n      }\n      lVar8 = CONCAT44(off._4_4_,(uint)off);\n      if (shndx_begin != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0x1009,"set_segment_offsets");\n      }\n    }" if (parenthesized_expression "(pTVar20->isolate_execinstr != false)" ( (binary_expression "pTVar20->isolate_execinstr != false" (field_expression "pTVar20->isolate_execinstr" identifier -> field_identifier) != false) )) (compound_statement "{\n      pGVar14 = parameters->options_;\n      if (pGVar14 == (General_options *)0x0) {\n        off = lVar8;\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(in_stack_ffffff14);\n      }\n      local_40 = *(int *)((int)&(pGVar14->max_page_size_).value + 4);\n      local_44 = (pointer)(pGVar14->max_page_size_).value;\n      if (local_40 == 0 && local_44 == (pointer)0x0) {\n        local_40 = *(int *)((int)&pTVar20->abi_pagesize + 4);\n        local_44 = (pointer)pTVar20->abi_pagesize;\n      }\n      uVar24 = (uint)off & -(int)local_44;\n      uVar25 = off._4_4_ & -(local_40 + (uint)(local_44 != (pointer)0x0));\n      if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n        bVar28 = CARRY4(uVar24,(uint)local_44);\n        uVar24 = uVar24 + (int)local_44;\n        uVar25 = uVar25 + local_40 + (uint)bVar28;\n      }\n      ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;\n      off._0_4_ = uVar24;\n      off._4_4_ = uVar25;\n      if (ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish) {\n        do {\n          pOVar21 = *ppOVar22;\n          if (pOVar21 != (Output_data *)0x0) {\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }\n          ppOVar22 = ppOVar22 + 1;\n        } while ((this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish != ppOVar22);\n        ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_start;\n        if (ppOVar22 != ppOVar4) {\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4;\n        }\n      }\n      local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                 _M_impl._M_start;\n      pOVar15 = *local_44;\n      while (pOVar15 != load_seg) {\n        local_44 = local_44 + 1;\n        if (pOVar15->type_ == 1) {\n          uVar24 = (uint)pOVar15->vaddr_;\n          iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);\n          has_relro = false;\n          uVar29 = pOVar15->memsz_;\n          uVar10 = pOVar15->memsz_;\n          iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);\n          uVar30 = Output_segment::set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin);\n          if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }\n        }\n        pOVar15 = *local_44;\n      }\n      lVar8 = CONCAT44(off._4_4_,(uint)off);\n      if (shndx_begin != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0x1009,"set_segment_offsets");\n      }\n    }" { (expression_statement "pGVar14 = parameters->options_;" (assignment_expression "pGVar14 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar14 == (General_options *)0x0) {\n        off = lVar8;\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(in_stack_ffffff14);\n      }" if (parenthesized_expression "(pGVar14 == (General_options *)0x0)" ( (binary_expression "pGVar14 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        off = lVar8;\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(in_stack_ffffff14);\n      }" { (expression_statement "off = lVar8;" (assignment_expression "off = lVar8" identifier = identifier) ;) comment (labeled_statement "Target::abi_pagesize(in_stack_ffffff14);" statement_identifier : (ERROR ":" :) (expression_statement "abi_pagesize(in_stack_ffffff14);" (call_expression "abi_pagesize(in_stack_ffffff14)" identifier (argument_list "(in_stack_ffffff14)" ( identifier ))) ;)) })) (expression_statement "local_40 = *(int *)((int)&(pGVar14->max_page_size_).value + 4);" (assignment_expression "local_40 = *(int *)((int)&(pGVar14->max_page_size_).value + 4)" identifier = (pointer_expression "*(int *)((int)&(pGVar14->max_page_size_).value + 4)" * (cast_expression "(int *)((int)&(pGVar14->max_page_size_).value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pGVar14->max_page_size_).value + 4)" ( (binary_expression "(int)&(pGVar14->max_page_size_).value + 4" (cast_expression "(int)&(pGVar14->max_page_size_).value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pGVar14->max_page_size_).value" & (field_expression "(pGVar14->max_page_size_).value" (parenthesized_expression "(pGVar14->max_page_size_)" ( (field_expression "pGVar14->max_page_size_" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "local_44 = (pointer)(pGVar14->max_page_size_).value;" (assignment_expression "local_44 = (pointer)(pGVar14->max_page_size_).value" identifier = (field_expression "(pointer)(pGVar14->max_page_size_).value" (call_expression "(pointer)(pGVar14->max_page_size_)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(pGVar14->max_page_size_)" ( (field_expression "pGVar14->max_page_size_" identifier -> field_identifier) ))) . field_identifier)) ;) (if_statement "if (local_40 == 0 && local_44 == (pointer)0x0) {\n        local_40 = *(int *)((int)&pTVar20->abi_pagesize + 4);\n        local_44 = (pointer)pTVar20->abi_pagesize;\n      }" if (parenthesized_expression "(local_40 == 0 && local_44 == (pointer)0x0)" ( (binary_expression "local_40 == 0 && local_44 == (pointer)0x0" (binary_expression "local_40 == 0" identifier == number_literal) && (binary_expression "local_44 == (pointer)0x0" identifier == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal))) )) (compound_statement "{\n        local_40 = *(int *)((int)&pTVar20->abi_pagesize + 4);\n        local_44 = (pointer)pTVar20->abi_pagesize;\n      }" { (expression_statement "local_40 = *(int *)((int)&pTVar20->abi_pagesize + 4);" (assignment_expression "local_40 = *(int *)((int)&pTVar20->abi_pagesize + 4)" identifier = (pointer_expression "*(int *)((int)&pTVar20->abi_pagesize + 4)" * (cast_expression "(int *)((int)&pTVar20->abi_pagesize + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar20->abi_pagesize + 4)" ( (binary_expression "(int)&pTVar20->abi_pagesize + 4" (cast_expression "(int)&pTVar20->abi_pagesize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar20->abi_pagesize" & (field_expression "pTVar20->abi_pagesize" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "local_44 = (pointer)pTVar20->abi_pagesize;" (assignment_expression "local_44 = (pointer)pTVar20->abi_pagesize" identifier = (cast_expression "(pointer)pTVar20->abi_pagesize" ( (type_descriptor "pointer" type_identifier) ) (field_expression "pTVar20->abi_pagesize" identifier -> field_identifier))) ;) })) (expression_statement "uVar24 = (uint)off & -(int)local_44;" (assignment_expression "uVar24 = (uint)off & -(int)local_44" identifier = (binary_expression "(uint)off & -(int)local_44" (cast_expression "(uint)off" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)local_44" - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar25 = off._4_4_ & -(local_40 + (uint)(local_44 != (pointer)0x0));" (assignment_expression "uVar25 = off._4_4_ & -(local_40 + (uint)(local_44 != (pointer)0x0))" identifier = (binary_expression "off._4_4_ & -(local_40 + (uint)(local_44 != (pointer)0x0))" (field_expression "off._4_4_" identifier . field_identifier) & (unary_expression "-(local_40 + (uint)(local_44 != (pointer)0x0))" - (parenthesized_expression "(local_40 + (uint)(local_44 != (pointer)0x0))" ( (binary_expression "local_40 + (uint)(local_44 != (pointer)0x0)" identifier + (call_expression "(uint)(local_44 != (pointer)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 != (pointer)0x0)" ( (binary_expression "local_44 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )))) ))))) ;) (if_statement "if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n        bVar28 = CARRY4(uVar24,(uint)local_44);\n        uVar24 = uVar24 + (int)local_44;\n        uVar25 = uVar25 + local_40 + (uint)bVar28;\n      }" if (parenthesized_expression "(uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off))" ( (binary_expression "uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)" (binary_expression "uVar25 < off._4_4_" identifier < (field_expression "off._4_4_" identifier . field_identifier)) || (binary_expression "uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)" (binary_expression "uVar25 - off._4_4_" identifier - (field_expression "off._4_4_" identifier . field_identifier)) < (call_expression "(uint)(uVar24 < (uint)off)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 < (uint)off)" ( (binary_expression "uVar24 < (uint)off" identifier < (cast_expression "(uint)off" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n        bVar28 = CARRY4(uVar24,(uint)local_44);\n        uVar24 = uVar24 + (int)local_44;\n        uVar25 = uVar25 + local_40 + (uint)bVar28;\n      }" { (expression_statement "bVar28 = CARRY4(uVar24,(uint)local_44);" (assignment_expression "bVar28 = CARRY4(uVar24,(uint)local_44)" identifier = (call_expression "CARRY4(uVar24,(uint)local_44)" identifier (argument_list "(uVar24,(uint)local_44)" ( identifier , (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "uVar24 = uVar24 + (int)local_44;" (assignment_expression "uVar24 = uVar24 + (int)local_44" identifier = (binary_expression "uVar24 + (int)local_44" identifier + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar25 = uVar25 + local_40 + (uint)bVar28;" (assignment_expression "uVar25 = uVar25 + local_40 + (uint)bVar28" identifier = (binary_expression "uVar25 + local_40 + (uint)bVar28" (binary_expression "uVar25 + local_40" identifier + identifier) + (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start;" (field_expression "ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_start" (field_expression "ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar22 = (this->relax_output_list_).\n                 super__Vector_base<gold" identifier = (binary_expression "(this->relax_output_list_).\n                 super__Vector_base<gold" (field_expression "(this->relax_output_list_).\n                 super__Vector_base" (parenthesized_expression "(this->relax_output_list_)" ( (field_expression "this->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 "off._0_4_ = uVar24;" (assignment_expression "off._0_4_ = uVar24" (field_expression "off._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "off._4_4_ = uVar25;" (assignment_expression "off._4_4_ = uVar25" (field_expression "off._4_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish) {\n        do {\n          pOVar21 = *ppOVar22;\n          if (pOVar21 != (Output_data *)0x0) {\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }\n          ppOVar22 = ppOVar22 + 1;\n        } while ((this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish != ppOVar22);\n        ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_start;\n        if (ppOVar22 != ppOVar4) {\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4;\n        }\n      }" if (parenthesized_expression "(ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish)" ( (field_expression "ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish" (field_expression "ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std" (binary_expression "ppOVar22 !=\n          (this->relax_output_list_).\n          super__Vector_base<gold" identifier != (binary_expression "(this->relax_output_list_).\n          super__Vector_base<gold" (field_expression "(this->relax_output_list_).\n          super__Vector_base" (parenthesized_expression "(this->relax_output_list_)" ( (field_expression "this->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) )) (compound_statement "{\n        do {\n          pOVar21 = *ppOVar22;\n          if (pOVar21 != (Output_data *)0x0) {\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }\n          ppOVar22 = ppOVar22 + 1;\n        } while ((this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish != ppOVar22);\n        ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_start;\n        if (ppOVar22 != ppOVar4) {\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4;\n        }\n      }" { (do_statement "do {\n          pOVar21 = *ppOVar22;\n          if (pOVar21 != (Output_data *)0x0) {\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }\n          ppOVar22 = ppOVar22 + 1;\n        } while ((this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish != ppOVar22);" do (compound_statement "{\n          pOVar21 = *ppOVar22;\n          if (pOVar21 != (Output_data *)0x0) {\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }\n          ppOVar22 = ppOVar22 + 1;\n        }" { (expression_statement "pOVar21 = *ppOVar22;" (assignment_expression "pOVar21 = *ppOVar22" identifier = (pointer_expression "*ppOVar22" * identifier)) ;) (if_statement "if (pOVar21 != (Output_data *)0x0) {\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }" if (parenthesized_expression "(pOVar21 != (Output_data *)0x0)" ( (binary_expression "pOVar21 != (Output_data *)0x0" identifier != (cast_expression "(Output_data *)0x0" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (*pOVar21->_vptr_Output_data[1])(pOVar21);\n          }" { (expression_statement "(*pOVar21->_vptr_Output_data[1])(pOVar21);" (call_expression "(*pOVar21->_vptr_Output_data[1])(pOVar21)" (parenthesized_expression "(*pOVar21->_vptr_Output_data[1])" ( (pointer_expression "*pOVar21->_vptr_Output_data[1]" * (subscript_expression "pOVar21->_vptr_Output_data[1]" (field_expression "pOVar21->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar21)" ( identifier ))) ;) })) (expression_statement "ppOVar22 = ppOVar22 + 1;" (assignment_expression "ppOVar22 = ppOVar22 + 1" identifier = (binary_expression "ppOVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish != ppOVar22)" ( (binary_expression "(this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish != ppOVar22" (field_expression "(this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl\n                 ._M_finish" (field_expression "(this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(this->relax_output_list_).\n                 super__Vector_base<gold::Output_data*,_std" (binary_expression "(this->relax_output_list_).\n                 super__Vector_base<gold" (field_expression "(this->relax_output_list_).\n                 super__Vector_base" (parenthesized_expression "(this->relax_output_list_)" ( (field_expression "this->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) != identifier) )) ;) (expression_statement "ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_start;" (field_expression "ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl._M_start" (field_expression "ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                  _M_impl" (binary_expression "ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar4 = (this->relax_output_list_).\n                  super__Vector_base<gold" identifier = (binary_expression "(this->relax_output_list_).\n                  super__Vector_base<gold" (field_expression "(this->relax_output_list_).\n                  super__Vector_base" (parenthesized_expression "(this->relax_output_list_)" ( (field_expression "this->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) ;) (if_statement "if (ppOVar22 != ppOVar4) {\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4;\n        }" if (parenthesized_expression "(ppOVar22 != ppOVar4)" ( (binary_expression "ppOVar22 != ppOVar4" identifier != identifier) )) (compound_statement "{\n          (this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4;\n        }" { (expression_statement "(this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4;" (assignment_expression "(this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish = ppOVar4" (field_expression "(this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl.\n          _M_finish" (field_expression "(this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>._M_impl" (binary_expression "(this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(this->relax_output_list_).\n          super__Vector_base<gold::Output_data*,_std" (binary_expression "(this->relax_output_list_).\n          super__Vector_base<gold" (field_expression "(this->relax_output_list_).\n          super__Vector_base" (parenthesized_expression "(this->relax_output_list_)" ( (field_expression "this->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) = identifier) ;) })) })) (expression_statement "local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                 _M_impl._M_start;" (field_expression "local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                 _M_impl._M_start" (field_expression "local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n                 _M_impl" (binary_expression "local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "local_44 = (this->segment_list_).\n                 super__Vector_base<gold::Output_segment*,_std" (assignment_expression "local_44 = (this->segment_list_).\n                 super__Vector_base<gold" identifier = (binary_expression "(this->segment_list_).\n                 super__Vector_base<gold" (field_expression "(this->segment_list_).\n                 super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "pOVar15 = *local_44;" (assignment_expression "pOVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (while_statement "while (pOVar15 != load_seg) {\n        local_44 = local_44 + 1;\n        if (pOVar15->type_ == 1) {\n          uVar24 = (uint)pOVar15->vaddr_;\n          iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);\n          has_relro = false;\n          uVar29 = pOVar15->memsz_;\n          uVar10 = pOVar15->memsz_;\n          iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);\n          uVar30 = Output_segment::set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin);\n          if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }\n        }\n        pOVar15 = *local_44;\n      }" while (parenthesized_expression "(pOVar15 != load_seg)" ( (binary_expression "pOVar15 != load_seg" identifier != identifier) )) (compound_statement "{\n        local_44 = local_44 + 1;\n        if (pOVar15->type_ == 1) {\n          uVar24 = (uint)pOVar15->vaddr_;\n          iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);\n          has_relro = false;\n          uVar29 = pOVar15->memsz_;\n          uVar10 = pOVar15->memsz_;\n          iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);\n          uVar30 = Output_segment::set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin);\n          if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }\n        }\n        pOVar15 = *local_44;\n      }" { (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (if_statement "if (pOVar15->type_ == 1) {\n          uVar24 = (uint)pOVar15->vaddr_;\n          iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);\n          has_relro = false;\n          uVar29 = pOVar15->memsz_;\n          uVar10 = pOVar15->memsz_;\n          iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);\n          uVar30 = Output_segment::set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin);\n          if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }\n        }" if (parenthesized_expression "(pOVar15->type_ == 1)" ( (binary_expression "pOVar15->type_ == 1" (field_expression "pOVar15->type_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          uVar24 = (uint)pOVar15->vaddr_;\n          iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);\n          has_relro = false;\n          uVar29 = pOVar15->memsz_;\n          uVar10 = pOVar15->memsz_;\n          iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);\n          uVar30 = Output_segment::set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin);\n          if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }\n        }" { (expression_statement "uVar24 = (uint)pOVar15->vaddr_;" (assignment_expression "uVar24 = (uint)pOVar15->vaddr_" identifier = (cast_expression "(uint)pOVar15->vaddr_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar15->vaddr_" identifier -> field_identifier))) ;) (expression_statement "iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4);" (assignment_expression "iVar13 = *(int *)((int)&pOVar15->vaddr_ + 4)" identifier = (pointer_expression "*(int *)((int)&pOVar15->vaddr_ + 4)" * (cast_expression "(int *)((int)&pOVar15->vaddr_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar15->vaddr_ + 4)" ( (binary_expression "(int)&pOVar15->vaddr_ + 4" (cast_expression "(int)&pOVar15->vaddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar15->vaddr_" & (field_expression "pOVar15->vaddr_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "has_relro = false;" (assignment_expression "has_relro = false" identifier = false) ;) (expression_statement "uVar29 = pOVar15->memsz_;" (assignment_expression "uVar29 = pOVar15->memsz_" identifier = (field_expression "pOVar15->memsz_" identifier -> field_identifier)) ;) (expression_statement "uVar10 = pOVar15->memsz_;" (assignment_expression "uVar10 = pOVar15->memsz_" identifier = (field_expression "pOVar15->memsz_" identifier -> field_identifier)) ;) (expression_statement "iVar5 = *(int *)((int)&pOVar15->memsz_ + 4);" (assignment_expression "iVar5 = *(int *)((int)&pOVar15->memsz_ + 4)" identifier = (pointer_expression "*(int *)((int)&pOVar15->memsz_ + 4)" * (cast_expression "(int *)((int)&pOVar15->memsz_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar15->memsz_ + 4)" ( (binary_expression "(int)&pOVar15->memsz_ + 4" (cast_expression "(int)&pOVar15->memsz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar15->memsz_" & (field_expression "pOVar15->memsz_" identifier -> field_identifier))) + number_literal) ))))) ;) (ERROR "uVar30 = Output_segment::" (assignment_expression "uVar30 = Output_segment" identifier = identifier) : :) (expression_statement "set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin);" (call_expression "set_section_addresses\n                             (pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin)" identifier (argument_list "(pOVar15,target,this,true,pOVar15->vaddr_,&increase_relro,&has_relro,\n                              &off,&shndx_begin)" ( identifier , identifier , identifier , true , (field_expression "pOVar15->vaddr_" identifier -> field_identifier) , (pointer_expression "&increase_relro" & identifier) , (pointer_expression "&has_relro" & identifier) , (pointer_expression "&off" & identifier) , (pointer_expression "&shndx_begin" & identifier) ))) ;) (if_statement "if (uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }" if (parenthesized_expression "(uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10))" ( (binary_expression "uVar30 != CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)" identifier != (call_expression "CONCAT44(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)" identifier (argument_list "(iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29),\n                                 uVar24 + (int)uVar10)" ( (binary_expression "iVar13 + iVar5 + (uint)CARRY4(uVar24,(uint)uVar29)" (binary_expression "iVar13 + iVar5" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar24,(uint)uVar29)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar24,(uint)uVar29)" identifier (argument_list "(uVar24,(uint)uVar29)" ( identifier , (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) , (binary_expression "uVar24 + (int)uVar10" identifier + (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x1005,"set_segment_offsets")" identifier (argument_list "("../../gold/layout.cc",0x1005,"set_segment_offsets")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") ))) ;) })) })) (expression_statement "pOVar15 = *local_44;" (assignment_expression "pOVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) })) (expression_statement "lVar8 = CONCAT44(off._4_4_,(uint)off);" (assignment_expression "lVar8 = CONCAT44(off._4_4_,(uint)off)" identifier = (call_expression "CONCAT44(off._4_4_,(uint)off)" identifier (argument_list "(off._4_4_,(uint)off)" ( (field_expression "off._4_4_" identifier . field_identifier) , (cast_expression "(uint)off" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if (shndx_begin != local_ac) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0x1009,"set_segment_offsets");\n      }" if (parenthesized_expression "(shndx_begin != local_ac)" ( (binary_expression "shndx_begin != local_ac" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0x1009,"set_segment_offsets");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x1009,"set_segment_offsets");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x1009,"set_segment_offsets")" identifier (argument_list "("../../gold/layout.cc",0x1009,"set_segment_offsets")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") ))) ;) })) })) (expression_statement "off = lVar8;" (assignment_expression "off = lVar8" identifier = identifier) ;) (expression_statement "local_44 = (this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish;" (field_expression "local_44 = (this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish" (field_expression "local_44 = (this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl" (binary_expression "local_44 = (this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "local_44 = (this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "local_44 = (this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std" (assignment_expression "local_44 = (this->segment_list_).\n               super__Vector_base<gold" identifier = (binary_expression "(this->segment_list_).\n               super__Vector_base<gold" (field_expression "(this->segment_list_).\n               super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) }) (else_clause "else {\n    local_4c = (Output_segment *)0x0;\n    uVar29 = CONCAT44(local_c0,local_c4);\n    do {\n      pOVar15 = *local_44;\n      pOVar2 = local_4c;\n      if (pOVar15->type_ == 1) {\n        bVar12 = target->pti_->isolate_execinstr;\n        if (bVar12 == false) {\n          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          load_seg = (Output_segment *)0x0;\n        }\n        else if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }\n        bVar19 = (byte)pOVar15->field_0x19c >> 1;\n        pGVar14 = parameters->options_;\n        bVar1 = bVar19 & 1;\n        if ((bVar19 & 1) == 0) {\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar11 = (pGVar14->Ttext_).user_set_via_option;\n          uVar10 = uVar29;\n          lVar8 = off;\n          if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }\n        }\n        else {\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = (uint)(pGVar14->max_page_size_).value;\n        local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n        local_6c = (uint)(pGVar14->common_page_size_).value;\n        local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4);\n        if (local_50 == 0 && local_54 == 0) {\n          pTVar20 = target->pti_;\n          local_54 = (uint)pTVar20->abi_pagesize;\n          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar9 = CONCAT44(local_50,local_54);\n        if ((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))\n        {\n          *(uint *)&pOVar15->min_p_align_ = local_54;\n          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;\n        }\n        off = lVar8;\n        if (bVar19 == 0) {\n          uVar29 = Output_segment::maximum_alignment(*local_44);\n          uVar25 = (uint)(uVar29 >> 0x20);\n          uVar24 = (uint)uVar29;\n          if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }\n          local_84 = (uint)uVar30;\n          local_80 = (uint)(uVar30 >> 0x20);\n          uVar7 = uVar30;\n          if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }\n          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);\n          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }\n          pOVar15 = load_seg;\n          uVar30 = uVar7;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }\n        }\n        else {\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }\n        local_80 = (uint)(uVar30 >> 0x20);\n        local_84 = (uint)uVar30;\n        local_70 = (uint)(uVar7 >> 0x20);\n        local_74 = (uint)uVar7;\n        if (((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          uVar24 = (uint)(uVar29 >> 0x20);\n          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }\n          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;\n          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);\n          lVar6 = CONCAT44(uVar25,uVar24);\n          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }\n        }\n        else {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }\n        has_relro = false;\n        uVar24 = *pshndx;\n        off = lVar6;\n        uVar29 = Output_segment::set_section_addresses\n                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           );\n        if (((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)) {\n          bVar12 = Parameters::incremental(parameters);\n          if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }\n        }\n        pOVar2 = *local_44;\n        if ((local_4c != (Output_segment *)0x0) && (bVar28 != false)) {\n          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);\n          uVar25 = (uint)pOVar2->paddr_;\n          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);\n          uVar17 = (uint)local_4c->paddr_;\n          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar23 = uVar17 + (int)local_4c->memsz_;\n          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);\n          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }\n        }\n      }\n      local_4c = pOVar2;\n      local_44 = local_44 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_44);\n    lVar8 = off;\n    if (load_seg != (Output_segment *)0x0) goto LAB_00113ce7;\n  }" else (compound_statement "{\n    local_4c = (Output_segment *)0x0;\n    uVar29 = CONCAT44(local_c0,local_c4);\n    do {\n      pOVar15 = *local_44;\n      pOVar2 = local_4c;\n      if (pOVar15->type_ == 1) {\n        bVar12 = target->pti_->isolate_execinstr;\n        if (bVar12 == false) {\n          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          load_seg = (Output_segment *)0x0;\n        }\n        else if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }\n        bVar19 = (byte)pOVar15->field_0x19c >> 1;\n        pGVar14 = parameters->options_;\n        bVar1 = bVar19 & 1;\n        if ((bVar19 & 1) == 0) {\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar11 = (pGVar14->Ttext_).user_set_via_option;\n          uVar10 = uVar29;\n          lVar8 = off;\n          if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }\n        }\n        else {\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = (uint)(pGVar14->max_page_size_).value;\n        local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n        local_6c = (uint)(pGVar14->common_page_size_).value;\n        local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4);\n        if (local_50 == 0 && local_54 == 0) {\n          pTVar20 = target->pti_;\n          local_54 = (uint)pTVar20->abi_pagesize;\n          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar9 = CONCAT44(local_50,local_54);\n        if ((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))\n        {\n          *(uint *)&pOVar15->min_p_align_ = local_54;\n          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;\n        }\n        off = lVar8;\n        if (bVar19 == 0) {\n          uVar29 = Output_segment::maximum_alignment(*local_44);\n          uVar25 = (uint)(uVar29 >> 0x20);\n          uVar24 = (uint)uVar29;\n          if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }\n          local_84 = (uint)uVar30;\n          local_80 = (uint)(uVar30 >> 0x20);\n          uVar7 = uVar30;\n          if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }\n          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);\n          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }\n          pOVar15 = load_seg;\n          uVar30 = uVar7;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }\n        }\n        else {\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }\n        local_80 = (uint)(uVar30 >> 0x20);\n        local_84 = (uint)uVar30;\n        local_70 = (uint)(uVar7 >> 0x20);\n        local_74 = (uint)uVar7;\n        if (((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          uVar24 = (uint)(uVar29 >> 0x20);\n          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }\n          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;\n          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);\n          lVar6 = CONCAT44(uVar25,uVar24);\n          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }\n        }\n        else {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }\n        has_relro = false;\n        uVar24 = *pshndx;\n        off = lVar6;\n        uVar29 = Output_segment::set_section_addresses\n                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           );\n        if (((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)) {\n          bVar12 = Parameters::incremental(parameters);\n          if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }\n        }\n        pOVar2 = *local_44;\n        if ((local_4c != (Output_segment *)0x0) && (bVar28 != false)) {\n          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);\n          uVar25 = (uint)pOVar2->paddr_;\n          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);\n          uVar17 = (uint)local_4c->paddr_;\n          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar23 = uVar17 + (int)local_4c->memsz_;\n          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);\n          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }\n        }\n      }\n      local_4c = pOVar2;\n      local_44 = local_44 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_44);\n    lVar8 = off;\n    if (load_seg != (Output_segment *)0x0) goto LAB_00113ce7;\n  }" { (expression_statement "local_4c = (Output_segment *)0x0;" (assignment_expression "local_4c = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar29 = CONCAT44(local_c0,local_c4);" (assignment_expression "uVar29 = CONCAT44(local_c0,local_c4)" identifier = (call_expression "CONCAT44(local_c0,local_c4)" identifier (argument_list "(local_c0,local_c4)" ( identifier , identifier )))) ;) (do_statement "do {\n      pOVar15 = *local_44;\n      pOVar2 = local_4c;\n      if (pOVar15->type_ == 1) {\n        bVar12 = target->pti_->isolate_execinstr;\n        if (bVar12 == false) {\n          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          load_seg = (Output_segment *)0x0;\n        }\n        else if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }\n        bVar19 = (byte)pOVar15->field_0x19c >> 1;\n        pGVar14 = parameters->options_;\n        bVar1 = bVar19 & 1;\n        if ((bVar19 & 1) == 0) {\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar11 = (pGVar14->Ttext_).user_set_via_option;\n          uVar10 = uVar29;\n          lVar8 = off;\n          if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }\n        }\n        else {\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = (uint)(pGVar14->max_page_size_).value;\n        local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n        local_6c = (uint)(pGVar14->common_page_size_).value;\n        local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4);\n        if (local_50 == 0 && local_54 == 0) {\n          pTVar20 = target->pti_;\n          local_54 = (uint)pTVar20->abi_pagesize;\n          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar9 = CONCAT44(local_50,local_54);\n        if ((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))\n        {\n          *(uint *)&pOVar15->min_p_align_ = local_54;\n          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;\n        }\n        off = lVar8;\n        if (bVar19 == 0) {\n          uVar29 = Output_segment::maximum_alignment(*local_44);\n          uVar25 = (uint)(uVar29 >> 0x20);\n          uVar24 = (uint)uVar29;\n          if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }\n          local_84 = (uint)uVar30;\n          local_80 = (uint)(uVar30 >> 0x20);\n          uVar7 = uVar30;\n          if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }\n          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);\n          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }\n          pOVar15 = load_seg;\n          uVar30 = uVar7;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }\n        }\n        else {\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }\n        local_80 = (uint)(uVar30 >> 0x20);\n        local_84 = (uint)uVar30;\n        local_70 = (uint)(uVar7 >> 0x20);\n        local_74 = (uint)uVar7;\n        if (((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          uVar24 = (uint)(uVar29 >> 0x20);\n          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }\n          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;\n          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);\n          lVar6 = CONCAT44(uVar25,uVar24);\n          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }\n        }\n        else {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }\n        has_relro = false;\n        uVar24 = *pshndx;\n        off = lVar6;\n        uVar29 = Output_segment::set_section_addresses\n                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           );\n        if (((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)) {\n          bVar12 = Parameters::incremental(parameters);\n          if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }\n        }\n        pOVar2 = *local_44;\n        if ((local_4c != (Output_segment *)0x0) && (bVar28 != false)) {\n          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);\n          uVar25 = (uint)pOVar2->paddr_;\n          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);\n          uVar17 = (uint)local_4c->paddr_;\n          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar23 = uVar17 + (int)local_4c->memsz_;\n          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);\n          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }\n        }\n      }\n      local_4c = pOVar2;\n      local_44 = local_44 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_44);" do (compound_statement "{\n      pOVar15 = *local_44;\n      pOVar2 = local_4c;\n      if (pOVar15->type_ == 1) {\n        bVar12 = target->pti_->isolate_execinstr;\n        if (bVar12 == false) {\n          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          load_seg = (Output_segment *)0x0;\n        }\n        else if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }\n        bVar19 = (byte)pOVar15->field_0x19c >> 1;\n        pGVar14 = parameters->options_;\n        bVar1 = bVar19 & 1;\n        if ((bVar19 & 1) == 0) {\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar11 = (pGVar14->Ttext_).user_set_via_option;\n          uVar10 = uVar29;\n          lVar8 = off;\n          if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }\n        }\n        else {\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = (uint)(pGVar14->max_page_size_).value;\n        local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n        local_6c = (uint)(pGVar14->common_page_size_).value;\n        local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4);\n        if (local_50 == 0 && local_54 == 0) {\n          pTVar20 = target->pti_;\n          local_54 = (uint)pTVar20->abi_pagesize;\n          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar9 = CONCAT44(local_50,local_54);\n        if ((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))\n        {\n          *(uint *)&pOVar15->min_p_align_ = local_54;\n          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;\n        }\n        off = lVar8;\n        if (bVar19 == 0) {\n          uVar29 = Output_segment::maximum_alignment(*local_44);\n          uVar25 = (uint)(uVar29 >> 0x20);\n          uVar24 = (uint)uVar29;\n          if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }\n          local_84 = (uint)uVar30;\n          local_80 = (uint)(uVar30 >> 0x20);\n          uVar7 = uVar30;\n          if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }\n          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);\n          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }\n          pOVar15 = load_seg;\n          uVar30 = uVar7;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }\n        }\n        else {\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }\n        local_80 = (uint)(uVar30 >> 0x20);\n        local_84 = (uint)uVar30;\n        local_70 = (uint)(uVar7 >> 0x20);\n        local_74 = (uint)uVar7;\n        if (((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          uVar24 = (uint)(uVar29 >> 0x20);\n          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }\n          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;\n          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);\n          lVar6 = CONCAT44(uVar25,uVar24);\n          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }\n        }\n        else {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }\n        has_relro = false;\n        uVar24 = *pshndx;\n        off = lVar6;\n        uVar29 = Output_segment::set_section_addresses\n                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           );\n        if (((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)) {\n          bVar12 = Parameters::incremental(parameters);\n          if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }\n        }\n        pOVar2 = *local_44;\n        if ((local_4c != (Output_segment *)0x0) && (bVar28 != false)) {\n          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);\n          uVar25 = (uint)pOVar2->paddr_;\n          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);\n          uVar17 = (uint)local_4c->paddr_;\n          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar23 = uVar17 + (int)local_4c->memsz_;\n          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);\n          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }\n        }\n      }\n      local_4c = pOVar2;\n      local_44 = local_44 + 1;\n    }" { (expression_statement "pOVar15 = *local_44;" (assignment_expression "pOVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (expression_statement "pOVar2 = local_4c;" (assignment_expression "pOVar2 = local_4c" identifier = identifier) ;) (if_statement "if (pOVar15->type_ == 1) {\n        bVar12 = target->pti_->isolate_execinstr;\n        if (bVar12 == false) {\n          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          load_seg = (Output_segment *)0x0;\n        }\n        else if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }\n        bVar19 = (byte)pOVar15->field_0x19c >> 1;\n        pGVar14 = parameters->options_;\n        bVar1 = bVar19 & 1;\n        if ((bVar19 & 1) == 0) {\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar11 = (pGVar14->Ttext_).user_set_via_option;\n          uVar10 = uVar29;\n          lVar8 = off;\n          if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }\n        }\n        else {\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = (uint)(pGVar14->max_page_size_).value;\n        local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n        local_6c = (uint)(pGVar14->common_page_size_).value;\n        local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4);\n        if (local_50 == 0 && local_54 == 0) {\n          pTVar20 = target->pti_;\n          local_54 = (uint)pTVar20->abi_pagesize;\n          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar9 = CONCAT44(local_50,local_54);\n        if ((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))\n        {\n          *(uint *)&pOVar15->min_p_align_ = local_54;\n          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;\n        }\n        off = lVar8;\n        if (bVar19 == 0) {\n          uVar29 = Output_segment::maximum_alignment(*local_44);\n          uVar25 = (uint)(uVar29 >> 0x20);\n          uVar24 = (uint)uVar29;\n          if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }\n          local_84 = (uint)uVar30;\n          local_80 = (uint)(uVar30 >> 0x20);\n          uVar7 = uVar30;\n          if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }\n          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);\n          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }\n          pOVar15 = load_seg;\n          uVar30 = uVar7;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }\n        }\n        else {\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }\n        local_80 = (uint)(uVar30 >> 0x20);\n        local_84 = (uint)uVar30;\n        local_70 = (uint)(uVar7 >> 0x20);\n        local_74 = (uint)uVar7;\n        if (((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          uVar24 = (uint)(uVar29 >> 0x20);\n          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }\n          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;\n          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);\n          lVar6 = CONCAT44(uVar25,uVar24);\n          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }\n        }\n        else {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }\n        has_relro = false;\n        uVar24 = *pshndx;\n        off = lVar6;\n        uVar29 = Output_segment::set_section_addresses\n                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           );\n        if (((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)) {\n          bVar12 = Parameters::incremental(parameters);\n          if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }\n        }\n        pOVar2 = *local_44;\n        if ((local_4c != (Output_segment *)0x0) && (bVar28 != false)) {\n          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);\n          uVar25 = (uint)pOVar2->paddr_;\n          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);\n          uVar17 = (uint)local_4c->paddr_;\n          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar23 = uVar17 + (int)local_4c->memsz_;\n          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);\n          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }\n        }\n      }" if (parenthesized_expression "(pOVar15->type_ == 1)" ( (binary_expression "pOVar15->type_ == 1" (field_expression "pOVar15->type_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        bVar12 = target->pti_->isolate_execinstr;\n        if (bVar12 == false) {\n          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          load_seg = (Output_segment *)0x0;\n        }\n        else if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }\n        bVar19 = (byte)pOVar15->field_0x19c >> 1;\n        pGVar14 = parameters->options_;\n        bVar1 = bVar19 & 1;\n        if ((bVar19 & 1) == 0) {\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar11 = (pGVar14->Ttext_).user_set_via_option;\n          uVar10 = uVar29;\n          lVar8 = off;\n          if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }\n        }\n        else {\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = (uint)(pGVar14->max_page_size_).value;\n        local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);\n        local_6c = (uint)(pGVar14->common_page_size_).value;\n        local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4);\n        if (local_50 == 0 && local_54 == 0) {\n          pTVar20 = target->pti_;\n          local_54 = (uint)pTVar20->abi_pagesize;\n          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar9 = CONCAT44(local_50,local_54);\n        if ((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))\n        {\n          *(uint *)&pOVar15->min_p_align_ = local_54;\n          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;\n        }\n        off = lVar8;\n        if (bVar19 == 0) {\n          uVar29 = Output_segment::maximum_alignment(*local_44);\n          uVar25 = (uint)(uVar29 >> 0x20);\n          uVar24 = (uint)uVar29;\n          if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }\n          local_84 = (uint)uVar30;\n          local_80 = (uint)(uVar30 >> 0x20);\n          uVar7 = uVar30;\n          if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }\n          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);\n          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }\n          pOVar15 = load_seg;\n          uVar30 = uVar7;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }\n        }\n        else {\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }\n        local_80 = (uint)(uVar30 >> 0x20);\n        local_84 = (uint)uVar30;\n        local_70 = (uint)(uVar7 >> 0x20);\n        local_74 = (uint)uVar7;\n        if (((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          uVar24 = (uint)(uVar29 >> 0x20);\n          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }\n          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;\n          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);\n          lVar6 = CONCAT44(uVar25,uVar24);\n          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }\n        }\n        else {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }\n        has_relro = false;\n        uVar24 = *pshndx;\n        off = lVar6;\n        uVar29 = Output_segment::set_section_addresses\n                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           );\n        if (((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)) {\n          bVar12 = Parameters::incremental(parameters);\n          if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }\n        }\n        pOVar2 = *local_44;\n        if ((local_4c != (Output_segment *)0x0) && (bVar28 != false)) {\n          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);\n          uVar25 = (uint)pOVar2->paddr_;\n          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);\n          uVar17 = (uint)local_4c->paddr_;\n          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar23 = uVar17 + (int)local_4c->memsz_;\n          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);\n          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }\n        }\n      }" { (expression_statement "bVar12 = target->pti_->isolate_execinstr;" (assignment_expression "bVar12 = target->pti_->isolate_execinstr" identifier = (field_expression "target->pti_->isolate_execinstr" (field_expression "target->pti_" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (bVar12 == false) {\n          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          load_seg = (Output_segment *)0x0;\n        }\n        else if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }" if (parenthesized_expression "(bVar12 == false)" ( (binary_expression "bVar12 == false" identifier == false) )) (compound_statement "{\n          if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          load_seg = (Output_segment *)0x0;\n        }" { (if_statement "if ((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }" if (parenthesized_expression "((pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0))" ( (binary_expression "(pOVar15 != load_seg) && (load_seg != (Output_segment *)0x0)" (parenthesized_expression "(pOVar15 != load_seg)" ( (binary_expression "pOVar15 != load_seg" identifier != identifier) )) && (parenthesized_expression "(load_seg != (Output_segment *)0x0)" ( (binary_expression "load_seg != (Output_segment *)0x0" identifier != (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0xf2b,"set_segment_offsets")" identifier (argument_list "("../../gold/layout.cc",0xf2b,"set_segment_offsets")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") ))) ;) })) (labeled_statement "LAB_00113530:\n          load_seg = (Output_segment *)0x0;" statement_identifier : (expression_statement "load_seg = (Output_segment *)0x0;" (assignment_expression "load_seg = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }" else (if_statement "if (pOVar15 == load_seg) {\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }" if (parenthesized_expression "(pOVar15 == load_seg)" ( (binary_expression "pOVar15 == load_seg" identifier == identifier) )) (compound_statement "{\n          if (off == 0) goto LAB_00113530;\n          off = 0;\n          local_ac = *pshndx;\n        }" { (if_statement "if (off == 0) goto LAB_00113530;" if (parenthesized_expression "(off == 0)" ( (binary_expression "off == 0" identifier == number_literal) )) (goto_statement "goto LAB_00113530;" goto statement_identifier ;)) (expression_statement "off = 0;" (assignment_expression "off = 0" identifier = number_literal) ;) (expression_statement "local_ac = *pshndx;" (assignment_expression "local_ac = *pshndx" identifier = (pointer_expression "*pshndx" * identifier)) ;) })))) (expression_statement "bVar19 = (byte)pOVar15->field_0x19c >> 1;" (assignment_expression "bVar19 = (byte)pOVar15->field_0x19c >> 1" identifier = (binary_expression "(byte)pOVar15->field_0x19c >> 1" (cast_expression "(byte)pOVar15->field_0x19c" ( (type_descriptor "byte" type_identifier) ) (field_expression "pOVar15->field_0x19c" identifier -> field_identifier)) >> number_literal)) ;) (expression_statement "pGVar14 = parameters->options_;" (assignment_expression "pGVar14 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (expression_statement "bVar1 = bVar19 & 1;" (assignment_expression "bVar1 = bVar19 & 1" identifier = (binary_expression "bVar19 & 1" identifier & number_literal)) ;) (if_statement "if ((bVar19 & 1) == 0) {\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar11 = (pGVar14->Ttext_).user_set_via_option;\n          uVar10 = uVar29;\n          lVar8 = off;\n          if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }\n        }\n        else {\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }" if (parenthesized_expression "((bVar19 & 1) == 0)" ( (binary_expression "(bVar19 & 1) == 0" (parenthesized_expression "(bVar19 & 1)" ( (binary_expression "bVar19 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar11 = (pGVar14->Ttext_).user_set_via_option;\n          uVar10 = uVar29;\n          lVar8 = off;\n          if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }\n        }" { (if_statement "if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(pGVar14 == (General_options *)0x0)" ( (binary_expression "pGVar14 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "bVar11 = (pGVar14->Ttext_).user_set_via_option;" (assignment_expression "bVar11 = (pGVar14->Ttext_).user_set_via_option" identifier = (field_expression "(pGVar14->Ttext_).user_set_via_option" (parenthesized_expression "(pGVar14->Ttext_)" ( (field_expression "pGVar14->Ttext_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar10 = uVar29;" (assignment_expression "uVar10 = uVar29" identifier = identifier) ;) (expression_statement "lVar8 = off;" (assignment_expression "lVar8 = off" identifier = identifier) ;) (if_statement "if ((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))) {\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }" if (parenthesized_expression "((bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false))))))))" ( (binary_expression "(bVar11 == false) ||\n             ((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))" (parenthesized_expression "(bVar11 == false)" ( (binary_expression "bVar11 == false" identifier == false) )) || (parenthesized_expression "((bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))))" ( (parenthesized_expression "(bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false))))))" ( (comma_expression "bVar19 = (pGVar14->omagic_).value, (bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))" (assignment_expression "bVar19 = (pGVar14->omagic_).value" identifier = (field_expression "(pGVar14->omagic_).value" (parenthesized_expression "(pGVar14->omagic_)" ( (field_expression "pGVar14->omagic_" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(bool)bVar19 == false &&\n              (((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))" (binary_expression "(bool)bVar19 == false" (cast_expression "(bool)bVar19" ( (type_descriptor "bool" primitive_type) ) identifier) == false) && (parenthesized_expression "(((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))))" ( (parenthesized_expression "((pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false))))" ( (binary_expression "(pOVar15->flags_ & 2) != 0 ||\n               ((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))" (binary_expression "(pOVar15->flags_ & 2) != 0" (parenthesized_expression "(pOVar15->flags_ & 2)" ( (binary_expression "pOVar15->flags_ & 2" (field_expression "pOVar15->flags_" identifier -> field_identifier) & number_literal) )) != number_literal) || (parenthesized_expression "((bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)))" ( (parenthesized_expression "(bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false))" ( (comma_expression "bVar19 = bVar11, (pOVar15->flags_ & 1) == 0 && (bVar12 != false)" (assignment_expression "bVar19 = bVar11" identifier = identifier) , (binary_expression "(pOVar15->flags_ & 1) == 0 && (bVar12 != false)" (binary_expression "(pOVar15->flags_ & 1) == 0" (parenthesized_expression "(pOVar15->flags_ & 1)" ( (binary_expression "pOVar15->flags_ & 1" (field_expression "pOVar15->flags_" identifier -> field_identifier) & number_literal) )) == number_literal) && (parenthesized_expression "(bVar12 != false)" ( (binary_expression "bVar12 != false" identifier != false) )))) )) ))) )) )))) )) ))) )) (compound_statement "{\n            bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;\n            if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }\n          }" { (expression_statement "bVar19 = (pGVar14->Trodata_segment_).user_set_via_option;" (assignment_expression "bVar19 = (pGVar14->Trodata_segment_).user_set_via_option" identifier = (field_expression "(pGVar14->Trodata_segment_).user_set_via_option" (parenthesized_expression "(pGVar14->Trodata_segment_)" ( (field_expression "pGVar14->Trodata_segment_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)) {\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }\n            else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }" if (parenthesized_expression "(((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0))" ( (binary_expression "((bool)bVar19 == false) || ((pOVar15->flags_ & 3) != 0)" (parenthesized_expression "((bool)bVar19 == false)" ( (binary_expression "(bool)bVar19 == false" (cast_expression "(bool)bVar19" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) || (parenthesized_expression "((pOVar15->flags_ & 3) != 0)" ( (binary_expression "(pOVar15->flags_ & 3) != 0" (parenthesized_expression "(pOVar15->flags_ & 3)" ( (binary_expression "pOVar15->flags_ & 3" (field_expression "pOVar15->flags_" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              bVar12 = (pGVar14->Tdata_).user_set_via_option;\n              bVar19 = (pGVar14->Tbss_).user_set_via_option;\n              if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }\n            }" { (expression_statement "bVar12 = (pGVar14->Tdata_).user_set_via_option;" (assignment_expression "bVar12 = (pGVar14->Tdata_).user_set_via_option" identifier = (field_expression "(pGVar14->Tdata_).user_set_via_option" (parenthesized_expression "(pGVar14->Tdata_)" ( (field_expression "pGVar14->Tdata_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "bVar19 = (pGVar14->Tbss_).user_set_via_option;" (assignment_expression "bVar19 = (pGVar14->Tbss_).user_set_via_option" identifier = (field_expression "(pGVar14->Tbss_).user_set_via_option" (parenthesized_expression "(pGVar14->Tbss_)" ( (field_expression "pGVar14->Tbss_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (bVar12 == false) {\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }\n              else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }" if (parenthesized_expression "(bVar12 == false)" ( (binary_expression "bVar12 == false" identifier == false) )) (compound_statement "{\nLAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }\n              }" { (labeled_statement "LAB_001139b0:\n                if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }" statement_identifier : (if_statement "if ((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)) {\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }\n                else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }" if (parenthesized_expression "((bVar19 == 0) || (((*local_44)->flags_ & 2) == 0))" ( (binary_expression "(bVar19 == 0) || (((*local_44)->flags_ & 2) == 0)" (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) || (parenthesized_expression "(((*local_44)->flags_ & 2) == 0)" ( (binary_expression "((*local_44)->flags_ & 2) == 0" (parenthesized_expression "((*local_44)->flags_ & 2)" ( (binary_expression "(*local_44)->flags_ & 2" (field_expression "(*local_44)->flags_" (parenthesized_expression "(*local_44)" ( (pointer_expression "*local_44" * identifier) )) -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_00113930:\n                  pGVar14 = parameters->options_;\n                  lVar8 = off;\n                  bVar19 = bVar1;\n                }" { (labeled_statement "LAB_00113930:\n                  pGVar14 = parameters->options_;" statement_identifier : (expression_statement "pGVar14 = parameters->options_;" (assignment_expression "pGVar14 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;)) (expression_statement "lVar8 = off;" (assignment_expression "lVar8 = off" identifier = identifier) ;) (expression_statement "bVar19 = bVar1;" (assignment_expression "bVar19 = bVar1" identifier = identifier) ;) }) (else_clause "else {\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }" else (compound_statement "{\n                  bVar12 = Output_segment::has_any_data_sections(*local_44);\n                  pGVar14 = parameters->options_;\n                  if (bVar12) goto LAB_00113231;\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                  uVar10 = (pGVar14->Tbss_).value;\n                  lVar8 = off;\n                }" { (ERROR "bVar12 = Output_segment::" (assignment_expression "bVar12 = Output_segment" identifier = identifier) : :) (expression_statement "has_any_data_sections(*local_44);" (call_expression "has_any_data_sections(*local_44)" identifier (argument_list "(*local_44)" ( (pointer_expression "*local_44" * identifier) ))) ;) (expression_statement "pGVar14 = parameters->options_;" (assignment_expression "pGVar14 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (bVar12) goto LAB_00113231;" if (parenthesized_expression "(bVar12)" ( identifier )) (goto_statement "goto LAB_00113231;" goto statement_identifier ;)) (if_statement "if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }" if (parenthesized_expression "(pGVar14 == (General_options *)0x0)" ( (binary_expression "pGVar14 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "uVar10 = (pGVar14->Tbss_).value;" (assignment_expression "uVar10 = (pGVar14->Tbss_).value" identifier = (field_expression "(pGVar14->Tbss_).value" (parenthesized_expression "(pGVar14->Tbss_)" ( (field_expression "pGVar14->Tbss_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "lVar8 = off;" (assignment_expression "lVar8 = off" identifier = identifier) ;) })))) }) (else_clause "else {\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }" else (compound_statement "{\n                if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;\n                if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }\n                uVar10 = (pGVar14->Tdata_).value;\n                lVar8 = off;\n                bVar19 = bVar12;\n              }" { (if_statement "if ((pOVar15->flags_ & 2) == 0) goto LAB_00113930;" if (parenthesized_expression "((pOVar15->flags_ & 2) == 0)" ( (binary_expression "(pOVar15->flags_ & 2) == 0" (parenthesized_expression "(pOVar15->flags_ & 2)" ( (binary_expression "pOVar15->flags_ & 2" (field_expression "pOVar15->flags_" identifier -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00113930;" goto statement_identifier ;)) (if_statement "if ((bool)bVar19 != false) {\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }" if (parenthesized_expression "((bool)bVar19 != false)" ( (binary_expression "(bool)bVar19 != false" (cast_expression "(bool)bVar19" ( (type_descriptor "bool" primitive_type) ) identifier) != false) )) (compound_statement "{\n                  bVar11 = Output_segment::has_any_data_sections(pOVar15);\n                  pGVar14 = parameters->options_;\n                  if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }\n                  if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }\n                }" { (ERROR "bVar11 = Output_segment::" (assignment_expression "bVar11 = Output_segment" identifier = identifier) : :) (expression_statement "has_any_data_sections(pOVar15);" (call_expression "has_any_data_sections(pOVar15)" identifier (argument_list "(pOVar15)" ( identifier ))) ;) (expression_statement "pGVar14 = parameters->options_;" (assignment_expression "pGVar14 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (!bVar11) {\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }" if (parenthesized_expression "(!bVar11)" ( (unary_expression "!bVar11" ! identifier) )) (compound_statement "{\n                    if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar19 = (pGVar14->Tbss_).user_set_via_option;\n                    goto LAB_001139b0;\n                  }" { (if_statement "if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }" if (parenthesized_expression "(pGVar14 == (General_options *)0x0)" ( (binary_expression "pGVar14 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                      do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                    }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "bVar19 = (pGVar14->Tbss_).user_set_via_option;" (assignment_expression "bVar19 = (pGVar14->Tbss_).user_set_via_option" identifier = (field_expression "(pGVar14->Tbss_).user_set_via_option" (parenthesized_expression "(pGVar14->Tbss_)" ( (field_expression "pGVar14->Tbss_" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_001139b0;" goto statement_identifier ;) })) (if_statement "if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }" if (parenthesized_expression "(pGVar14 == (General_options *)0x0)" ( (binary_expression "pGVar14 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) })) (expression_statement "uVar10 = (pGVar14->Tdata_).value;" (assignment_expression "uVar10 = (pGVar14->Tdata_).value" identifier = (field_expression "(pGVar14->Tdata_).value" (parenthesized_expression "(pGVar14->Tdata_)" ( (field_expression "pGVar14->Tdata_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "lVar8 = off;" (assignment_expression "lVar8 = off" identifier = identifier) ;) (expression_statement "bVar19 = bVar12;" (assignment_expression "bVar19 = bVar12" identifier = identifier) ;) }))) }) (else_clause "else {\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }" else (compound_statement "{\n              uVar10 = (pGVar14->Trodata_segment_).value;\n            }" { (expression_statement "uVar10 = (pGVar14->Trodata_segment_).value;" (assignment_expression "uVar10 = (pGVar14->Trodata_segment_).value" identifier = (field_expression "(pGVar14->Trodata_segment_).value" (parenthesized_expression "(pGVar14->Trodata_segment_)" ( (field_expression "pGVar14->Trodata_segment_" identifier -> field_identifier) )) . field_identifier)) ;) }))) })) }) (else_clause "else {\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }" else (compound_statement "{\n          uVar29 = pOVar15->paddr_;\nLAB_00113231:\n          uVar10 = uVar29;\n          lVar8 = off;\n          bVar19 = bVar1;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n        }" { (expression_statement "uVar29 = pOVar15->paddr_;" (assignment_expression "uVar29 = pOVar15->paddr_" identifier = (field_expression "pOVar15->paddr_" identifier -> field_identifier)) ;) (labeled_statement "LAB_00113231:\n          uVar10 = uVar29;" statement_identifier : (expression_statement "uVar10 = uVar29;" (assignment_expression "uVar10 = uVar29" identifier = identifier) ;)) (expression_statement "lVar8 = off;" (assignment_expression "lVar8 = off" identifier = identifier) ;) (expression_statement "bVar19 = bVar1;" (assignment_expression "bVar19 = bVar1" identifier = identifier) ;) (if_statement "if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(pGVar14 == (General_options *)0x0)" ( (binary_expression "pGVar14 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) }))) (expression_statement "local_54 = (uint)(pGVar14->max_page_size_).value;" (assignment_expression "local_54 = (uint)(pGVar14->max_page_size_).value" identifier = (field_expression "(uint)(pGVar14->max_page_size_).value" (call_expression "(uint)(pGVar14->max_page_size_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pGVar14->max_page_size_)" ( (field_expression "pGVar14->max_page_size_" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4);" (assignment_expression "local_50 = *(uint *)((int)&(pGVar14->max_page_size_).value + 4)" identifier = (pointer_expression "*(uint *)((int)&(pGVar14->max_page_size_).value + 4)" * (cast_expression "(uint *)((int)&(pGVar14->max_page_size_).value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pGVar14->max_page_size_).value + 4)" ( (binary_expression "(int)&(pGVar14->max_page_size_).value + 4" (cast_expression "(int)&(pGVar14->max_page_size_).value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pGVar14->max_page_size_).value" & (field_expression "(pGVar14->max_page_size_).value" (parenthesized_expression "(pGVar14->max_page_size_)" ( (field_expression "pGVar14->max_page_size_" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "local_6c = (uint)(pGVar14->common_page_size_).value;" (assignment_expression "local_6c = (uint)(pGVar14->common_page_size_).value" identifier = (field_expression "(uint)(pGVar14->common_page_size_).value" (call_expression "(uint)(pGVar14->common_page_size_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pGVar14->common_page_size_)" ( (field_expression "pGVar14->common_page_size_" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4);" (assignment_expression "local_68 = *(uint *)((int)&(pGVar14->common_page_size_).value + 4)" identifier = (pointer_expression "*(uint *)((int)&(pGVar14->common_page_size_).value + 4)" * (cast_expression "(uint *)((int)&(pGVar14->common_page_size_).value + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pGVar14->common_page_size_).value + 4)" ( (binary_expression "(int)&(pGVar14->common_page_size_).value + 4" (cast_expression "(int)&(pGVar14->common_page_size_).value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pGVar14->common_page_size_).value" & (field_expression "(pGVar14->common_page_size_).value" (parenthesized_expression "(pGVar14->common_page_size_)" ( (field_expression "pGVar14->common_page_size_" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (if_statement "if (local_50 == 0 && local_54 == 0) {\n          pTVar20 = target->pti_;\n          local_54 = (uint)pTVar20->abi_pagesize;\n          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }" if (parenthesized_expression "(local_50 == 0 && local_54 == 0)" ( (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" identifier == number_literal) && (binary_expression "local_54 == 0" identifier == number_literal)) )) (compound_statement "{\n          pTVar20 = target->pti_;\n          local_54 = (uint)pTVar20->abi_pagesize;\n          local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);\n          if (local_68 == 0 && local_6c == 0) goto LAB_00113289;\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }" { (expression_statement "pTVar20 = target->pti_;" (assignment_expression "pTVar20 = target->pti_" identifier = (field_expression "target->pti_" identifier -> field_identifier)) ;) (expression_statement "local_54 = (uint)pTVar20->abi_pagesize;" (assignment_expression "local_54 = (uint)pTVar20->abi_pagesize" identifier = (cast_expression "(uint)pTVar20->abi_pagesize" ( (type_descriptor "uint" type_identifier) ) (field_expression "pTVar20->abi_pagesize" identifier -> field_identifier))) ;) (expression_statement "local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4);" (assignment_expression "local_50 = *(uint *)((int)&pTVar20->abi_pagesize + 4)" identifier = (pointer_expression "*(uint *)((int)&pTVar20->abi_pagesize + 4)" * (cast_expression "(uint *)((int)&pTVar20->abi_pagesize + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar20->abi_pagesize + 4)" ( (binary_expression "(int)&pTVar20->abi_pagesize + 4" (cast_expression "(int)&pTVar20->abi_pagesize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar20->abi_pagesize" & (field_expression "pTVar20->abi_pagesize" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (local_68 == 0 && local_6c == 0) goto LAB_00113289;" if (parenthesized_expression "(local_68 == 0 && local_6c == 0)" ( (binary_expression "local_68 == 0 && local_6c == 0" (binary_expression "local_68 == 0" identifier == number_literal) && (binary_expression "local_6c == 0" identifier == number_literal)) )) (goto_statement "goto LAB_00113289;" goto statement_identifier ;)) (labeled_statement "LAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }" statement_identifier : (if_statement "if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }" if (parenthesized_expression "(local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))" ( (binary_expression "local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 < local_68" identifier < identifier) || (binary_expression "local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 - local_68" identifier - identifier) < (call_expression "(uint)(local_54 < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < local_6c)" ( (binary_expression "local_54 < local_6c" identifier < identifier) ))))) )) (compound_statement "{\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }" { (labeled_statement "LAB_001132a7:\n            local_6c = local_54;" statement_identifier : (expression_statement "local_6c = local_54;" (assignment_expression "local_6c = local_54" identifier = identifier) ;)) (expression_statement "local_68 = local_50;" (assignment_expression "local_68 = local_50" identifier = identifier) ;) }))) }) (else_clause "else {\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }" else (compound_statement "{\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\n          pTVar20 = target->pti_;\nLAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;\n          local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }" { (if_statement "if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;" if (parenthesized_expression "(local_68 != 0 || local_6c != 0)" ( (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "local_6c != 0" identifier != number_literal)) )) (goto_statement "goto LAB_001135dc;" goto statement_identifier ;)) (expression_statement "pTVar20 = target->pti_;" (assignment_expression "pTVar20 = target->pti_" identifier = (field_expression "target->pti_" identifier -> field_identifier)) ;) (labeled_statement "LAB_00113289:\n          local_6c = (uint)pTVar20->common_pagesize;" statement_identifier : (expression_statement "local_6c = (uint)pTVar20->common_pagesize;" (assignment_expression "local_6c = (uint)pTVar20->common_pagesize" identifier = (cast_expression "(uint)pTVar20->common_pagesize" ( (type_descriptor "uint" type_identifier) ) (field_expression "pTVar20->common_pagesize" identifier -> field_identifier))) ;)) (expression_statement "local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4);" (assignment_expression "local_68 = *(uint *)((int)&pTVar20->common_pagesize + 4)" identifier = (pointer_expression "*(uint *)((int)&pTVar20->common_pagesize + 4)" * (cast_expression "(uint *)((int)&pTVar20->common_pagesize + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTVar20->common_pagesize + 4)" ( (binary_expression "(int)&pTVar20->common_pagesize + 4" (cast_expression "(int)&pTVar20->common_pagesize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTVar20->common_pagesize" & (field_expression "pTVar20->common_pagesize" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;" if (parenthesized_expression "(local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))" ( (binary_expression "local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 < local_68" identifier < identifier) || (binary_expression "local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 - local_68" identifier - identifier) < (call_expression "(uint)(local_54 < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < local_6c)" ( (binary_expression "local_54 < local_6c" identifier < identifier) ))))) )) (goto_statement "goto LAB_001132a7;" goto statement_identifier ;)) }))) (expression_statement "lVar9 = CONCAT44(local_50,local_54);" (assignment_expression "lVar9 = CONCAT44(local_50,local_54)" identifier = (call_expression "CONCAT44(local_50,local_54)" identifier (argument_list "(local_50,local_54)" ( identifier , identifier )))) ;) (if_statement "if ((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))\n        {\n          *(uint *)&pOVar15->min_p_align_ = local_54;\n          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;\n        }" if (parenthesized_expression "((((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)))" ( (binary_expression "(((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) &&\n           (pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54))" (parenthesized_expression "(((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false))" ( (binary_expression "((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)" (parenthesized_expression "((pGVar14->nmagic_).value == false)" ( (binary_expression "(pGVar14->nmagic_).value == false" (field_expression "(pGVar14->nmagic_).value" (parenthesized_expression "(pGVar14->nmagic_)" ( (field_expression "pGVar14->nmagic_" identifier -> field_identifier) )) . field_identifier) == false) )) && (parenthesized_expression "((pGVar14->omagic_).value == false)" ( (binary_expression "(pGVar14->omagic_).value == false" (field_expression "(pGVar14->omagic_).value" (parenthesized_expression "(pGVar14->omagic_)" ( (field_expression "pGVar14->omagic_" identifier -> field_identifier) )) . field_identifier) == false) ))) )) && (parenthesized_expression "(pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54))" ( (comma_expression "pOVar15 = *local_44, uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)" (assignment_expression "pOVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) , (comma_expression "uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4),\n           uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)" (assignment_expression "uVar24 = *(uint *)((int)&pOVar15->min_p_align_ + 4)" identifier = (pointer_expression "*(uint *)((int)&pOVar15->min_p_align_ + 4)" * (cast_expression "(uint *)((int)&pOVar15->min_p_align_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar15->min_p_align_ + 4)" ( (binary_expression "(int)&pOVar15->min_p_align_ + 4" (cast_expression "(int)&pOVar15->min_p_align_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar15->min_p_align_" & (field_expression "pOVar15->min_p_align_" identifier -> field_identifier))) + number_literal) ))))) , (binary_expression "uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)" (binary_expression "uVar24 < local_50" identifier < identifier) || (binary_expression "uVar24 - local_50 < (uint)((uint)pOVar15->min_p_align_ < local_54)" (binary_expression "uVar24 - local_50" identifier - identifier) < (call_expression "(uint)((uint)pOVar15->min_p_align_ < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)pOVar15->min_p_align_ < local_54)" ( (binary_expression "(uint)pOVar15->min_p_align_ < local_54" (cast_expression "(uint)pOVar15->min_p_align_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar15->min_p_align_" identifier -> field_identifier)) < identifier) ))))))) ))) )) (compound_statement "{\n          *(uint *)&pOVar15->min_p_align_ = local_54;\n          *(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;\n        }" { (expression_statement "*(uint *)&pOVar15->min_p_align_ = local_54;" (assignment_expression "*(uint *)&pOVar15->min_p_align_ = local_54" (pointer_expression "*(uint *)&pOVar15->min_p_align_" * (cast_expression "(uint *)&pOVar15->min_p_align_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar15->min_p_align_" & (field_expression "pOVar15->min_p_align_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50;" (assignment_expression "*(uint *)((int)&pOVar15->min_p_align_ + 4) = local_50" (pointer_expression "*(uint *)((int)&pOVar15->min_p_align_ + 4)" * (cast_expression "(uint *)((int)&pOVar15->min_p_align_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar15->min_p_align_ + 4)" ( (binary_expression "(int)&pOVar15->min_p_align_ + 4" (cast_expression "(int)&pOVar15->min_p_align_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar15->min_p_align_" & (field_expression "pOVar15->min_p_align_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) (expression_statement "off = lVar8;" (assignment_expression "off = lVar8" identifier = identifier) ;) (if_statement "if (bVar19 == 0) {\n          uVar29 = Output_segment::maximum_alignment(*local_44);\n          uVar25 = (uint)(uVar29 >> 0x20);\n          uVar24 = (uint)uVar29;\n          if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }\n          local_84 = (uint)uVar30;\n          local_80 = (uint)(uVar30 >> 0x20);\n          uVar7 = uVar30;\n          if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }\n          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);\n          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }\n          pOVar15 = load_seg;\n          uVar30 = uVar7;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }\n        }\n        else {\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar29 = Output_segment::maximum_alignment(*local_44);\n          uVar25 = (uint)(uVar29 >> 0x20);\n          uVar24 = (uint)uVar29;\n          if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }\n          local_84 = (uint)uVar30;\n          local_80 = (uint)(uVar30 >> 0x20);\n          uVar7 = uVar30;\n          if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }\n          uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);\n          if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }\n          pOVar15 = load_seg;\n          uVar30 = uVar7;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }\n        }" { (ERROR "uVar29 = Output_segment::" (assignment_expression "uVar29 = Output_segment" identifier = identifier) : :) (expression_statement "maximum_alignment(*local_44);" (call_expression "maximum_alignment(*local_44)" identifier (argument_list "(*local_44)" ( (pointer_expression "*local_44" * identifier) ))) ;) (expression_statement "uVar25 = (uint)(uVar29 >> 0x20);" (assignment_expression "uVar25 = (uint)(uVar29 >> 0x20)" identifier = (call_expression "(uint)(uVar29 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar29 >> 0x20)" ( (binary_expression "uVar29 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar24 = (uint)uVar29;" (assignment_expression "uVar24 = (uint)uVar29" identifier = (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)) {\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }\n          else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }" if (parenthesized_expression "((uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25))" ( (binary_expression "(uVar29 == 0) ||\n             (uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)" (parenthesized_expression "(uVar29 == 0)" ( (binary_expression "uVar29 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25)" ( (binary_expression "uVar25 <= local_50 && (uint)(local_54 < uVar24) <= local_50 - uVar25" (binary_expression "uVar25 <= local_50" identifier <= identifier) && (binary_expression "(uint)(local_54 < uVar24) <= local_50 - uVar25" (call_expression "(uint)(local_54 < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar24)" ( (binary_expression "local_54 < uVar24" identifier < identifier) ))) <= (binary_expression "local_50 - uVar25" identifier - identifier))) ))) )) (compound_statement "{\n            pOVar15 = *local_44;\n            uVar30 = uVar10;\n          }" { (expression_statement "pOVar15 = *local_44;" (assignment_expression "pOVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (expression_statement "uVar30 = uVar10;" (assignment_expression "uVar30 = uVar10" identifier = identifier) ;) }) (else_clause "else {\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }" else (compound_statement "{\n            lVar6 = uVar29 + (uVar10 - 1);\n            uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);\n            pOVar15 = *local_44;\n          }" { (expression_statement "lVar6 = uVar29 + (uVar10 - 1);" (assignment_expression "lVar6 = uVar29 + (uVar10 - 1)" identifier = (binary_expression "uVar29 + (uVar10 - 1)" identifier + (parenthesized_expression "(uVar10 - 1)" ( (binary_expression "uVar10 - 1" identifier - number_literal) )))) ;) (expression_statement "uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24);" (assignment_expression "uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24)" identifier (argument_list "((uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0)),\n                              (uint)lVar6 & -uVar24)" ( (binary_expression "(uint)((ulonglong)lVar6 >> 0x20) & -(uVar25 + (uVar24 != 0))" (call_expression "(uint)((ulonglong)lVar6 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-(uVar25 + (uVar24 != 0))" - (parenthesized_expression "(uVar25 + (uVar24 != 0))" ( (binary_expression "uVar25 + (uVar24 != 0)" identifier + (parenthesized_expression "(uVar24 != 0)" ( (binary_expression "uVar24 != 0" identifier != number_literal) ))) )))) , (binary_expression "(uint)lVar6 & -uVar24" (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-uVar24" - identifier)) )))) ;) (expression_statement "pOVar15 = *local_44;" (assignment_expression "pOVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) }))) (expression_statement "local_84 = (uint)uVar30;" (assignment_expression "local_84 = (uint)uVar30" identifier = (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_80 = (uint)(uVar30 >> 0x20);" (assignment_expression "local_80 = (uint)(uVar30 >> 0x20)" identifier = (call_expression "(uint)(uVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar30 >> 0x20)" ( (binary_expression "uVar30 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar7 = uVar30;" (assignment_expression "uVar7 = uVar30" identifier = identifier) ;) (if_statement "if (pOVar15 != load_seg) {\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }" if (parenthesized_expression "(pOVar15 != load_seg)" ( (binary_expression "pOVar15 != load_seg" identifier != identifier) )) (compound_statement "{\n            uVar24 = (local_50 - 1) + (uint)(local_54 != 0);\n            if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }\n            off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);\n            goto LAB_00113314;\n          }" { (expression_statement "uVar24 = (local_50 - 1) + (uint)(local_54 != 0);" (assignment_expression "uVar24 = (local_50 - 1) + (uint)(local_54 != 0)" identifier = (binary_expression "(local_50 - 1) + (uint)(local_54 != 0)" (parenthesized_expression "(local_50 - 1)" ( (binary_expression "local_50 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) ))))) ;) (if_statement "if ((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0) {\n              uVar7 = uVar30 + lVar9;\n            }" if (parenthesized_expression "((local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0)" ( (binary_expression "(local_80 & uVar24) != 0 || (local_84 & local_54 - 1) != 0" (binary_expression "(local_80 & uVar24) != 0" (parenthesized_expression "(local_80 & uVar24)" ( (binary_expression "local_80 & uVar24" identifier & identifier) )) != number_literal) || (binary_expression "(local_84 & local_54 - 1) != 0" (parenthesized_expression "(local_84 & local_54 - 1)" ( (binary_expression "local_84 & local_54 - 1" identifier & (binary_expression "local_54 - 1" identifier - number_literal)) )) != number_literal)) )) (compound_statement "{\n              uVar7 = uVar30 + lVar9;\n            }" { (expression_statement "uVar7 = uVar30 + lVar9;" (assignment_expression "uVar7 = uVar30 + lVar9" identifier = (binary_expression "uVar30 + lVar9" identifier + identifier)) ;) })) (expression_statement "off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1);" (assignment_expression "off = lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1)" identifier = (binary_expression "lVar8 + CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1)" identifier + (call_expression "CONCAT44((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1)" identifier (argument_list "((uint)(uVar7 - uVar10 >> 0x20) & uVar24,\n                                   (uint)(uVar7 - uVar10) & local_54 - 1)" ( (binary_expression "(uint)(uVar7 - uVar10 >> 0x20) & uVar24" (call_expression "(uint)(uVar7 - uVar10 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 - uVar10 >> 0x20)" ( (binary_expression "uVar7 - uVar10 >> 0x20" (binary_expression "uVar7 - uVar10" identifier - identifier) >> number_literal) ))) & identifier) , (binary_expression "(uint)(uVar7 - uVar10) & local_54 - 1" (call_expression "(uint)(uVar7 - uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 - uVar10)" ( (binary_expression "uVar7 - uVar10" identifier - identifier) ))) & (binary_expression "local_54 - 1" identifier - number_literal)) ))))) ;) (goto_statement "goto LAB_00113314;" goto statement_identifier ;) })) (if_statement "if (lVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }" if (parenthesized_expression "(lVar8 != 0)" ( (binary_expression "lVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0xf6e,"set_segment_offsets")" identifier (argument_list "("../../gold/layout.cc",0xf6e,"set_segment_offsets")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") ))) ;) })) (expression_statement "pGVar14 = parameters->options_;" (assignment_expression "pGVar14 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(pGVar14 == (General_options *)0x0)" ( (binary_expression "pGVar14 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if ((pGVar14->rosegment_gap_).user_set_via_option == false) {\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }\n          else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }" if (parenthesized_expression "((pGVar14->rosegment_gap_).user_set_via_option == false)" ( (binary_expression "(pGVar14->rosegment_gap_).user_set_via_option == false" (field_expression "(pGVar14->rosegment_gap_).user_set_via_option" (parenthesized_expression "(pGVar14->rosegment_gap_)" ( (field_expression "pGVar14->rosegment_gap_" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n            iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);\n            uVar24 = (uint)target->pti_->rosegment_gap;\n          }" { (expression_statement "iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4);" (assignment_expression "iVar13 = *(int *)((int)&target->pti_->rosegment_gap + 4)" identifier = (pointer_expression "*(int *)((int)&target->pti_->rosegment_gap + 4)" * (cast_expression "(int *)((int)&target->pti_->rosegment_gap + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&target->pti_->rosegment_gap + 4)" ( (binary_expression "(int)&target->pti_->rosegment_gap + 4" (cast_expression "(int)&target->pti_->rosegment_gap" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&target->pti_->rosegment_gap" & (field_expression "target->pti_->rosegment_gap" (field_expression "target->pti_" identifier -> field_identifier) -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar24 = (uint)target->pti_->rosegment_gap;" (assignment_expression "uVar24 = (uint)target->pti_->rosegment_gap" identifier = (cast_expression "(uint)target->pti_->rosegment_gap" ( (type_descriptor "uint" type_identifier) ) (field_expression "target->pti_->rosegment_gap" (field_expression "target->pti_" identifier -> field_identifier) -> field_identifier))) ;) }) (else_clause "else {\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }" else (compound_statement "{\n            uVar24 = (uint)(pGVar14->rosegment_gap_).value;\n            iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);\n          }" { (expression_statement "uVar24 = (uint)(pGVar14->rosegment_gap_).value;" (assignment_expression "uVar24 = (uint)(pGVar14->rosegment_gap_).value" identifier = (field_expression "(uint)(pGVar14->rosegment_gap_).value" (call_expression "(uint)(pGVar14->rosegment_gap_)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pGVar14->rosegment_gap_)" ( (field_expression "pGVar14->rosegment_gap_" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4);" (assignment_expression "iVar13 = *(int *)((int)&(pGVar14->rosegment_gap_).value + 4)" identifier = (pointer_expression "*(int *)((int)&(pGVar14->rosegment_gap_).value + 4)" * (cast_expression "(int *)((int)&(pGVar14->rosegment_gap_).value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pGVar14->rosegment_gap_).value + 4)" ( (binary_expression "(int)&(pGVar14->rosegment_gap_).value + 4" (cast_expression "(int)&(pGVar14->rosegment_gap_).value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pGVar14->rosegment_gap_).value" & (field_expression "(pGVar14->rosegment_gap_).value" (parenthesized_expression "(pGVar14->rosegment_gap_)" ( (field_expression "pGVar14->rosegment_gap_" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) }))) (expression_statement "uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4);" (assignment_expression "uVar25 = iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4)" identifier = (binary_expression "iVar13 + local_c0 + (uint)CARRY4(uVar24,local_c4)" (binary_expression "iVar13 + local_c0" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar24,local_c4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar24,local_c4)" identifier (argument_list "(uVar24,local_c4)" ( identifier , identifier )))))) ;) (if_statement "if (local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)) {\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }" if (parenthesized_expression "(local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4))" ( (binary_expression "local_80 < uVar25 || local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)" (binary_expression "local_80 < uVar25" identifier < identifier) || (binary_expression "local_80 - uVar25 < (uint)(local_84 < uVar24 + local_c4)" (binary_expression "local_80 - uVar25" identifier - identifier) < (call_expression "(uint)(local_84 < uVar24 + local_c4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_84 < uVar24 + local_c4)" ( (binary_expression "local_84 < uVar24 + local_c4" identifier < (binary_expression "uVar24 + local_c4" identifier + identifier)) ))))) )) (compound_statement "{\n            uVar7 = CONCAT44(uVar25,uVar24 + local_c4);\n          }" { (expression_statement "uVar7 = CONCAT44(uVar25,uVar24 + local_c4);" (assignment_expression "uVar7 = CONCAT44(uVar25,uVar24 + local_c4)" identifier = (call_expression "CONCAT44(uVar25,uVar24 + local_c4)" identifier (argument_list "(uVar25,uVar24 + local_c4)" ( identifier , (binary_expression "uVar24 + local_c4" identifier + identifier) )))) ;) })) (expression_statement "pOVar15 = load_seg;" (assignment_expression "pOVar15 = load_seg" identifier = identifier) ;) (expression_statement "uVar30 = uVar7;" (assignment_expression "uVar30 = uVar7" identifier = identifier) ;) (if_statement "if (local_50 != 0 || local_54 != 0) {\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }" if (parenthesized_expression "(local_50 != 0 || local_54 != 0)" ( (binary_expression "local_50 != 0 || local_54 != 0" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "local_54 != 0" identifier != number_literal)) )) (compound_statement "{\n            lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);\n            uVar30 = uVar7;\n          }" { (expression_statement "lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);" (assignment_expression "lVar6 = uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" identifier = (binary_expression "uVar7 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" identifier + (call_expression "CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" identifier (argument_list "((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" ( (binary_expression "(local_50 - 1) + (uint)(local_54 != 0)" (parenthesized_expression "(local_50 - 1)" ( (binary_expression "local_50 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )))) , (binary_expression "local_54 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54);" (assignment_expression "uVar7 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54)" identifier (argument_list "((uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar6 & -local_54)" ( (binary_expression "(uint)((ulonglong)lVar6 >> 0x20) & -(local_50 + (local_54 != 0))" (call_expression "(uint)((ulonglong)lVar6 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-(local_50 + (local_54 != 0))" - (parenthesized_expression "(local_50 + (local_54 != 0))" ( (binary_expression "local_50 + (local_54 != 0)" identifier + (parenthesized_expression "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) ))) )))) , (binary_expression "(uint)lVar6 & -local_54" (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-local_54" - identifier)) )))) ;) (expression_statement "uVar30 = uVar7;" (assignment_expression "uVar30 = uVar7" identifier = identifier) ;) })) }) (else_clause "else {\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }" else (compound_statement "{\n          uVar30 = 0;\n          uVar7 = uVar10;\nLAB_00113314:\n          pGVar14 = parameters->options_;\n          if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          pOVar15 = *local_44;\n        }" { (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = uVar10;" (assignment_expression "uVar7 = uVar10" identifier = identifier) ;) (labeled_statement "LAB_00113314:\n          pGVar14 = parameters->options_;" statement_identifier : (expression_statement "pGVar14 = parameters->options_;" (assignment_expression "pGVar14 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;)) (if_statement "if (pGVar14 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(pGVar14 == (General_options *)0x0)" ( (binary_expression "pGVar14 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "pOVar15 = *local_44;" (assignment_expression "pOVar15 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) }))) (expression_statement "local_80 = (uint)(uVar30 >> 0x20);" (assignment_expression "local_80 = (uint)(uVar30 >> 0x20)" identifier = (call_expression "(uint)(uVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar30 >> 0x20)" ( (binary_expression "uVar30 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_84 = (uint)uVar30;" (assignment_expression "local_84 = (uint)uVar30" identifier = (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_70 = (uint)(uVar7 >> 0x20);" (assignment_expression "local_70 = (uint)(uVar7 >> 0x20)" identifier = (call_expression "(uint)(uVar7 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 >> 0x20)" ( (binary_expression "uVar7 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar7;" (assignment_expression "local_74 = (uint)uVar7" identifier = (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)) {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          uVar24 = (uint)(uVar29 >> 0x20);\n          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }\n          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;\n          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);\n          lVar6 = CONCAT44(uVar25,uVar24);\n          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }\n        }\n        else {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }" if (parenthesized_expression "(((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false))" ( (binary_expression "((pGVar14->nmagic_).value == false) && ((pGVar14->omagic_).value == false)" (parenthesized_expression "((pGVar14->nmagic_).value == false)" ( (binary_expression "(pGVar14->nmagic_).value == false" (field_expression "(pGVar14->nmagic_).value" (parenthesized_expression "(pGVar14->nmagic_)" ( (field_expression "pGVar14->nmagic_" identifier -> field_identifier) )) . field_identifier) == false) )) && (parenthesized_expression "((pGVar14->omagic_).value == false)" ( (binary_expression "(pGVar14->omagic_).value == false" (field_expression "(pGVar14->omagic_).value" (parenthesized_expression "(pGVar14->omagic_)" ( (field_expression "pGVar14->omagic_" identifier -> field_identifier) )) . field_identifier) == false) ))) )) (compound_statement "{\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          uVar24 = (uint)(uVar29 >> 0x20);\n          if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }\n          uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;\n          uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);\n          lVar6 = CONCAT44(uVar25,uVar24);\n          if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }\n        }" { (ERROR "uVar29 = Output_segment::" (assignment_expression "uVar29 = Output_segment" identifier = identifier) : :) (expression_statement "maximum_alignment(pOVar15);" (call_expression "maximum_alignment(pOVar15)" identifier (argument_list "(pOVar15)" ( identifier ))) ;) (expression_statement "uVar24 = (uint)(uVar29 >> 0x20);" (assignment_expression "uVar24 = (uint)(uVar29 >> 0x20)" identifier = (call_expression "(uint)(uVar29 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar29 >> 0x20)" ( (binary_expression "uVar29 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)) {\n            uVar29 = CONCAT44(local_50,local_54);\n          }" if (parenthesized_expression "(uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54))" ( (binary_expression "uVar24 < local_50 || uVar24 - local_50 < (uint)((uint)uVar29 < local_54)" (binary_expression "uVar24 < local_50" identifier < identifier) || (binary_expression "uVar24 - local_50 < (uint)((uint)uVar29 < local_54)" (binary_expression "uVar24 - local_50" identifier - identifier) < (call_expression "(uint)((uint)uVar29 < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar29 < local_54)" ( (binary_expression "(uint)uVar29 < local_54" (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (compound_statement "{\n            uVar29 = CONCAT44(local_50,local_54);\n          }" { (expression_statement "uVar29 = CONCAT44(local_50,local_54);" (assignment_expression "uVar29 = CONCAT44(local_50,local_54)" identifier = (call_expression "CONCAT44(local_50,local_54)" identifier (argument_list "(local_50,local_54)" ( identifier , identifier )))) ;) })) (expression_statement "uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70;" (assignment_expression "uVar25 = off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70" identifier = (binary_expression "off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20) |\n                   (int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70" (binary_expression "off._4_4_ & -(int)(uVar29 + 0xffffffff >> 0x20)" (field_expression "off._4_4_" identifier . field_identifier) & (unary_expression "-(int)(uVar29 + 0xffffffff >> 0x20)" - (cast_expression "(int)(uVar29 + 0xffffffff >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar29 + 0xffffffff >> 0x20)" ( (binary_expression "uVar29 + 0xffffffff >> 0x20" (binary_expression "uVar29 + 0xffffffff" identifier + number_literal) >> number_literal) ))))) | (binary_expression "(int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0) & local_70" (binary_expression "(int)(uVar29 >> 0x20) + -1 + (uint)((int)uVar29 != 0)" (binary_expression "(int)(uVar29 >> 0x20) + -1" (cast_expression "(int)(uVar29 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar29 >> 0x20)" ( (binary_expression "uVar29 >> 0x20" identifier >> number_literal) ))) + number_literal) + (call_expression "(uint)((int)uVar29 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar29 != 0)" ( (binary_expression "(int)uVar29 != 0" (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) & identifier))) ;) (expression_statement "uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff);" (assignment_expression "uVar24 = (uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff)" identifier = (binary_expression "(uint)off & -(int)uVar29 | local_74 & (uint)(uVar29 + 0xffffffff)" (binary_expression "(uint)off & -(int)uVar29" (cast_expression "(uint)off" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)uVar29" - (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier))) | (binary_expression "local_74 & (uint)(uVar29 + 0xffffffff)" identifier & (call_expression "(uint)(uVar29 + 0xffffffff)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar29 + 0xffffffff)" ( (binary_expression "uVar29 + 0xffffffff" identifier + number_literal) )))))) ;) (expression_statement "lVar6 = CONCAT44(uVar25,uVar24);" (assignment_expression "lVar6 = CONCAT44(uVar25,uVar24)" identifier = (call_expression "CONCAT44(uVar25,uVar24)" identifier (argument_list "(uVar25,uVar24)" ( identifier , identifier )))) ;) (if_statement "if (uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)) {\n            lVar6 = uVar29 + lVar6;\n          }" if (parenthesized_expression "(uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off))" ( (binary_expression "uVar25 < off._4_4_ || uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)" (binary_expression "uVar25 < off._4_4_" identifier < (field_expression "off._4_4_" identifier . field_identifier)) || (binary_expression "uVar25 - off._4_4_ < (uint)(uVar24 < (uint)off)" (binary_expression "uVar25 - off._4_4_" identifier - (field_expression "off._4_4_" identifier . field_identifier)) < (call_expression "(uint)(uVar24 < (uint)off)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar24 < (uint)off)" ( (binary_expression "uVar24 < (uint)off" identifier < (cast_expression "(uint)off" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n            lVar6 = uVar29 + lVar6;\n          }" { (expression_statement "lVar6 = uVar29 + lVar6;" (assignment_expression "lVar6 = uVar29 + lVar6" identifier = (binary_expression "uVar29 + lVar6" identifier + identifier)) ;) })) }) (else_clause "else {\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }" else (compound_statement "{\n          uVar29 = Output_segment::maximum_alignment(pOVar15);\n          lVar6 = off;\n          if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }\n        }" { (ERROR "uVar29 = Output_segment::" (assignment_expression "uVar29 = Output_segment" identifier = identifier) : :) (expression_statement "maximum_alignment(pOVar15);" (call_expression "maximum_alignment(pOVar15)" identifier (argument_list "(pOVar15)" ( identifier ))) ;) (expression_statement "lVar6 = off;" (assignment_expression "lVar6 = off" identifier = identifier) ;) (if_statement "if (uVar29 != 0) {\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar6 = uVar29 + off + -1;\n            lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);\n          }" { (expression_statement "lVar6 = uVar29 + off + -1;" (assignment_expression "lVar6 = uVar29 + off + -1" identifier = (binary_expression "uVar29 + off + -1" (binary_expression "uVar29 + off" identifier + identifier) + number_literal)) ;) (expression_statement "lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29);" (assignment_expression "lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29)" identifier (argument_list "((uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                             (uint)lVar6 & -(int)uVar29)" ( (binary_expression "(uint)((ulonglong)lVar6 >> 0x20) &\n                             -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0))" (call_expression "(uint)((ulonglong)lVar6 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0))" - (parenthesized_expression "((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0))" ( (binary_expression "(int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)" (cast_expression "(int)(uVar29 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar29 >> 0x20)" ( (binary_expression "uVar29 >> 0x20" identifier >> number_literal) ))) + (call_expression "(uint)((int)uVar29 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar29 != 0)" ( (binary_expression "(int)uVar29 != 0" (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) )))) , (binary_expression "(uint)lVar6 & -(int)uVar29" (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)uVar29" - (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) })) }))) (expression_statement "has_relro = false;" (assignment_expression "has_relro = false" identifier = false) ;) (expression_statement "uVar24 = *pshndx;" (assignment_expression "uVar24 = *pshndx" identifier = (pointer_expression "*pshndx" * identifier)) ;) (expression_statement "off = lVar6;" (assignment_expression "off = lVar6" identifier = identifier) ;) (ERROR "uVar29 = Output_segment::" (assignment_expression "uVar29 = Output_segment" identifier = identifier) : :) (expression_statement "set_section_addresses\n                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           );" (call_expression "set_section_addresses\n                           (*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           )" identifier (argument_list "(*local_44,target,this,false,uVar7,&increase_relro,&has_relro,&off,pshndx\n                           )" ( (pointer_expression "*local_44" * identifier) , identifier , identifier , false , identifier , (pointer_expression "&increase_relro" & identifier) , (pointer_expression "&has_relro" & identifier) , (pointer_expression "&off" & identifier) , identifier ))) ;) (if_statement "if (((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)) {\n          bVar12 = Parameters::incremental(parameters);\n          if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30))" ( (binary_expression "((bVar19 == 0) && (has_relro != true)) && (uVar7 != uVar30)" (parenthesized_expression "((bVar19 == 0) && (has_relro != true))" ( (binary_expression "(bVar19 == 0) && (has_relro != true)" (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) && (parenthesized_expression "(has_relro != true)" ( (binary_expression "has_relro != true" identifier != true) ))) )) && (parenthesized_expression "(uVar7 != uVar30)" ( (binary_expression "uVar7 != uVar30" identifier != identifier) ))) )) (compound_statement "{\n          bVar12 = Parameters::incremental(parameters);\n          if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }\n        }" { (ERROR "bVar12 = Parameters::" (assignment_expression "bVar12 = Parameters" identifier = identifier) : :) (expression_statement "incremental(parameters);" (call_expression "incremental(parameters)" identifier (argument_list "(parameters)" ( identifier ))) ;) (if_statement "if (!bVar12) {\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (compound_statement "{\n            uVar25 = local_6c - 1;\n            uVar17 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar16 = local_6c - (uVar25 & local_84);\n            iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));\n            uVar23 = uVar25 & (uint)uVar29;\n            uVar26 = (uint)(uVar29 >> 0x20) & uVar17;\n            if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }\n          }" { (expression_statement "uVar25 = local_6c - 1;" (assignment_expression "uVar25 = local_6c - 1" identifier = (binary_expression "local_6c - 1" identifier - number_literal)) ;) (expression_statement "uVar17 = (local_68 - 1) + (uint)(local_6c != 0);" (assignment_expression "uVar17 = (local_68 - 1) + (uint)(local_6c != 0)" identifier = (binary_expression "(local_68 - 1) + (uint)(local_6c != 0)" (parenthesized_expression "(local_68 - 1)" ( (binary_expression "local_68 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_6c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) ))))) ;) (expression_statement "uVar16 = local_6c - (uVar25 & local_84);" (assignment_expression "uVar16 = local_6c - (uVar25 & local_84)" identifier = (binary_expression "local_6c - (uVar25 & local_84)" identifier - (parenthesized_expression "(uVar25 & local_84)" ( (binary_expression "uVar25 & local_84" identifier & identifier) )))) ;) (expression_statement "iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84));" (assignment_expression "iVar13 = (local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84))" identifier = (binary_expression "(local_68 - (uVar17 & local_80)) - (uint)(local_6c < (uVar25 & local_84))" (parenthesized_expression "(local_68 - (uVar17 & local_80))" ( (binary_expression "local_68 - (uVar17 & local_80)" identifier - (parenthesized_expression "(uVar17 & local_80)" ( (binary_expression "uVar17 & local_80" identifier & identifier) ))) )) - (call_expression "(uint)(local_6c < (uVar25 & local_84))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_6c < (uVar25 & local_84))" ( (binary_expression "local_6c < (uVar25 & local_84)" identifier < (parenthesized_expression "(uVar25 & local_84)" ( (binary_expression "uVar25 & local_84" identifier & identifier) ))) ))))) ;) (expression_statement "uVar23 = uVar25 & (uint)uVar29;" (assignment_expression "uVar23 = uVar25 & (uint)uVar29" identifier = (binary_expression "uVar25 & (uint)uVar29" identifier & (cast_expression "(uint)uVar29" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar26 = (uint)(uVar29 >> 0x20) & uVar17;" (assignment_expression "uVar26 = (uint)(uVar29 >> 0x20) & uVar17" identifier = (binary_expression "(uint)(uVar29 >> 0x20) & uVar17" (call_expression "(uint)(uVar29 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar29 >> 0x20)" ( (binary_expression "uVar29 >> 0x20" identifier >> number_literal) ))) & identifier)) ;) (if_statement "if ((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)) {\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }" if (parenthesized_expression "((uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0))" ( (binary_expression "(uVar16 != 0 || iVar13 != 0) && (uVar23 != 0 || uVar26 != 0)" (parenthesized_expression "(uVar16 != 0 || iVar13 != 0)" ( (binary_expression "uVar16 != 0 || iVar13 != 0" (binary_expression "uVar16 != 0" identifier != number_literal) || (binary_expression "iVar13 != 0" identifier != number_literal)) )) && (parenthesized_expression "(uVar23 != 0 || uVar26 != 0)" ( (binary_expression "uVar23 != 0 || uVar26 != 0" (binary_expression "uVar23 != 0" identifier != number_literal) || (binary_expression "uVar26 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar18 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }\n            }" { (expression_statement "uVar18 = -(local_68 + (local_6c != 0));" (assignment_expression "uVar18 = -(local_68 + (local_6c != 0))" identifier = (unary_expression "-(local_68 + (local_6c != 0))" - (parenthesized_expression "(local_68 + (local_6c != 0))" ( (binary_expression "local_68 + (local_6c != 0)" identifier + (parenthesized_expression "(local_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) ))) )))) ;) (if_statement "if ((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)) {\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }" if (parenthesized_expression "((((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26))" ( (binary_expression "(((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0) &&\n                 (uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)" (parenthesized_expression "(((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0)" ( (binary_expression "((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0 ||\n                   ((uint)(uVar29 ^ uVar30) & -local_6c) != 0" (binary_expression "((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18) != 0" (parenthesized_expression "((uint)((uVar29 ^ uVar30) >> 0x20) & uVar18)" ( (binary_expression "(uint)((uVar29 ^ uVar30) >> 0x20) & uVar18" (call_expression "(uint)((uVar29 ^ uVar30) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar29 ^ uVar30) >> 0x20)" ( (binary_expression "(uVar29 ^ uVar30) >> 0x20" (parenthesized_expression "(uVar29 ^ uVar30)" ( (binary_expression "uVar29 ^ uVar30" identifier ^ identifier) )) >> number_literal) ))) & identifier) )) != number_literal) || (binary_expression "((uint)(uVar29 ^ uVar30) & -local_6c) != 0" (parenthesized_expression "((uint)(uVar29 ^ uVar30) & -local_6c)" ( (binary_expression "(uint)(uVar29 ^ uVar30) & -local_6c" (call_expression "(uint)(uVar29 ^ uVar30)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar29 ^ uVar30)" ( (binary_expression "uVar29 ^ uVar30" identifier ^ identifier) ))) & (unary_expression "-local_6c" - identifier)) )) != number_literal)) )) && (parenthesized_expression "(uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26)" ( (comma_expression "uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23),\n                 uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26" (assignment_expression "uVar26 = iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23)" identifier = (binary_expression "iVar13 + uVar26 + (uint)CARRY4(uVar16,uVar23)" (binary_expression "iVar13 + uVar26" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar16,uVar23)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,uVar23)" identifier (argument_list "(uVar16,uVar23)" ( identifier , identifier )))))) , (binary_expression "uVar26 <= local_68 && (uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26" (binary_expression "uVar26 <= local_68" identifier <= identifier) && (binary_expression "(uint)(local_6c < uVar16 + uVar23) <= local_68 - uVar26" (call_expression "(uint)(local_6c < uVar16 + uVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_6c < uVar16 + uVar23)" ( (binary_expression "local_6c < uVar16 + uVar23" identifier < (binary_expression "uVar16 + uVar23" identifier + identifier)) ))) <= (binary_expression "local_68 - uVar26" identifier - identifier)))) ))) )) (compound_statement "{\n                *pshndx = uVar24;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }\n                uVar29 = Output_segment::maximum_alignment(*local_44);\n                if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }\n                local_80 = (uint)(uVar30 >> 0x20);\n                local_84 = (uint)uVar30;\n                uVar24 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = local_84 & uVar24;\n                local_74 = local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }\n                lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));\n                uVar24 = (uint)lVar8;\n                uVar25 = (uint)((ulonglong)lVar8 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar24;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }\n                off._0_4_ = local_dc;\n                off._4_4_ = local_d8;\n                increase_relro = this->increase_relro_;\n                if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }\n                has_relro = false;\n                uVar29 = Output_segment::set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);\n              }" { (expression_statement "*pshndx = uVar24;" (assignment_expression "*pshndx = uVar24" (pointer_expression "*pshndx" * identifier) = identifier) ;) (if_statement "if (local_68 != 0 || local_6c != 0) {\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }" if (parenthesized_expression "(local_68 != 0 || local_6c != 0)" ( (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "local_6c != 0" identifier != number_literal)) )) (compound_statement "{\n                  lVar6 = uVar30 + CONCAT44(uVar17,uVar25);\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);\n                }" { (expression_statement "lVar6 = uVar30 + CONCAT44(uVar17,uVar25);" (assignment_expression "lVar6 = uVar30 + CONCAT44(uVar17,uVar25)" identifier = (binary_expression "uVar30 + CONCAT44(uVar17,uVar25)" identifier + (call_expression "CONCAT44(uVar17,uVar25)" identifier (argument_list "(uVar17,uVar25)" ( identifier , identifier ))))) ;) (expression_statement "uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6);" (assignment_expression "uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6)" identifier (argument_list "((uint)((ulonglong)lVar6 >> 0x20) & uVar18,\n                                    -local_6c & (uint)lVar6)" ( (binary_expression "(uint)((ulonglong)lVar6 >> 0x20) & uVar18" (call_expression "(uint)((ulonglong)lVar6 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & identifier) , (binary_expression "-local_6c & (uint)lVar6" (unary_expression "-local_6c" - identifier) & (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) })) (ERROR "uVar29 = Output_segment::" (assignment_expression "uVar29 = Output_segment" identifier = identifier) : :) (expression_statement "maximum_alignment(*local_44);" (call_expression "maximum_alignment(*local_44)" identifier (argument_list "(*local_44)" ( (pointer_expression "*local_44" * identifier) ))) ;) (if_statement "if (uVar29 != 0) {\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\n                  lVar6 = uVar29 + uVar30 + -1;\n                  uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);\n                }" { (expression_statement "lVar6 = uVar29 + uVar30 + -1;" (assignment_expression "lVar6 = uVar29 + uVar30 + -1" identifier = (binary_expression "uVar29 + uVar30 + -1" (binary_expression "uVar29 + uVar30" identifier + identifier) + number_literal)) ;) (expression_statement "uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29);" (assignment_expression "uVar30 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29)" identifier (argument_list "((uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)),\n                                    (uint)lVar6 & -(int)uVar29)" ( (binary_expression "(uint)((ulonglong)lVar6 >> 0x20) &\n                                    -((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0))" (call_expression "(uint)((ulonglong)lVar6 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0))" - (parenthesized_expression "((int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0))" ( (binary_expression "(int)(uVar29 >> 0x20) + (uint)((int)uVar29 != 0)" (cast_expression "(int)(uVar29 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar29 >> 0x20)" ( (binary_expression "uVar29 >> 0x20" identifier >> number_literal) ))) + (call_expression "(uint)((int)uVar29 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar29 != 0)" ( (binary_expression "(int)uVar29 != 0" (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) )))) , (binary_expression "(uint)lVar6 & -(int)uVar29" (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)uVar29" - (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) })) (expression_statement "local_80 = (uint)(uVar30 >> 0x20);" (assignment_expression "local_80 = (uint)(uVar30 >> 0x20)" identifier = (call_expression "(uint)(uVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar30 >> 0x20)" ( (binary_expression "uVar30 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_84 = (uint)uVar30;" (assignment_expression "local_84 = (uint)uVar30" identifier = (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar24 = local_54 - 1;" (assignment_expression "uVar24 = local_54 - 1" identifier = (binary_expression "local_54 - 1" identifier - number_literal)) ;) (expression_statement "uVar25 = (local_50 - 1) + (uint)(local_54 != 0);" (assignment_expression "uVar25 = (local_50 - 1) + (uint)(local_54 != 0)" identifier = (binary_expression "(local_50 - 1) + (uint)(local_54 != 0)" (parenthesized_expression "(local_50 - 1)" ( (binary_expression "local_50 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) ))))) ;) (expression_statement "local_6c = local_84 & uVar24;" (assignment_expression "local_6c = local_84 & uVar24" identifier = (binary_expression "local_84 & uVar24" identifier & identifier)) ;) (expression_statement "local_74 = local_80 & uVar25;" (assignment_expression "local_74 = local_80 & uVar25" identifier = (binary_expression "local_80 & uVar25" identifier & identifier)) ;) (if_statement "if (local_6c != 0 || local_74 != 0) {\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }" if (parenthesized_expression "(local_6c != 0 || local_74 != 0)" ( (binary_expression "local_6c != 0 || local_74 != 0" (binary_expression "local_6c != 0" identifier != number_literal) || (binary_expression "local_74 != 0" identifier != number_literal)) )) (compound_statement "{\n                  lVar6 = uVar30 + lVar9;\n                  uVar30 = uVar30 + lVar9;\n                  local_6c = uVar24 & (uint)lVar6;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);\n                }" { (expression_statement "lVar6 = uVar30 + lVar9;" (assignment_expression "lVar6 = uVar30 + lVar9" identifier = (binary_expression "uVar30 + lVar9" identifier + identifier)) ;) (expression_statement "uVar30 = uVar30 + lVar9;" (assignment_expression "uVar30 = uVar30 + lVar9" identifier = (binary_expression "uVar30 + lVar9" identifier + identifier)) ;) (expression_statement "local_6c = uVar24 & (uint)lVar6;" (assignment_expression "local_6c = uVar24 & (uint)lVar6" identifier = (binary_expression "uVar24 & (uint)lVar6" identifier & (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20);" (assignment_expression "local_74 = uVar25 & (uint)((ulonglong)lVar6 >> 0x20)" identifier = (binary_expression "uVar25 & (uint)((ulonglong)lVar6 >> 0x20)" identifier & (call_expression "(uint)((ulonglong)lVar6 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))))) ;) })) (expression_statement "lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10));" (assignment_expression "lVar8 = lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10))" identifier = (binary_expression "lVar8 + CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10))" identifier + (call_expression "CONCAT44(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10))" identifier (argument_list "(uVar25 & (uint)(uVar30 - uVar10 >> 0x20),\n                                         uVar24 & (uint)(uVar30 - uVar10))" ( (binary_expression "uVar25 & (uint)(uVar30 - uVar10 >> 0x20)" identifier & (call_expression "(uint)(uVar30 - uVar10 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar30 - uVar10 >> 0x20)" ( (binary_expression "uVar30 - uVar10 >> 0x20" (binary_expression "uVar30 - uVar10" identifier - identifier) >> number_literal) )))) , (binary_expression "uVar24 & (uint)(uVar30 - uVar10)" identifier & (call_expression "(uint)(uVar30 - uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar30 - uVar10)" ( (binary_expression "uVar30 - uVar10" identifier - identifier) )))) ))))) ;) (expression_statement "uVar24 = (uint)lVar8;" (assignment_expression "uVar24 = (uint)lVar8" identifier = (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar25 = (uint)((ulonglong)lVar8 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar8 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_dc = local_6c | -local_54 & uVar24;" (assignment_expression "local_dc = local_6c | -local_54 & uVar24" identifier = (binary_expression "local_6c | -local_54 & uVar24" identifier | (binary_expression "-local_54 & uVar24" (unary_expression "-local_54" - identifier) & identifier))) ;) (expression_statement "local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;" (assignment_expression "local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25" identifier = (binary_expression "local_74 | -(local_50 + (local_54 != 0)) & uVar25" identifier | (binary_expression "-(local_50 + (local_54 != 0)) & uVar25" (unary_expression "-(local_50 + (local_54 != 0))" - (parenthesized_expression "(local_50 + (local_54 != 0))" ( (binary_expression "local_50 + (local_54 != 0)" identifier + (parenthesized_expression "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) ))) ))) & identifier))) ;) (if_statement "if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)) {\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }" if (parenthesized_expression "(local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24))" ( (binary_expression "local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar24)" (binary_expression "local_d8 < uVar25" identifier < identifier) || (binary_expression "local_d8 - uVar25 < (uint)(local_dc < uVar24)" (binary_expression "local_d8 - uVar25" identifier - identifier) < (call_expression "(uint)(local_dc < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_dc < uVar24)" ( (binary_expression "local_dc < uVar24" identifier < identifier) ))))) )) (compound_statement "{\n                  bVar12 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar12;\n                }" { (expression_statement "bVar12 = CARRY4(local_dc,local_54);" (assignment_expression "bVar12 = CARRY4(local_dc,local_54)" identifier = (call_expression "CARRY4(local_dc,local_54)" identifier (argument_list "(local_dc,local_54)" ( identifier , identifier )))) ;) (expression_statement "local_dc = local_dc + local_54;" (assignment_expression "local_dc = local_dc + local_54" identifier = (binary_expression "local_dc + local_54" identifier + identifier)) ;) (expression_statement "local_d8 = local_d8 + local_50 + (uint)bVar12;" (assignment_expression "local_d8 = local_d8 + local_50 + (uint)bVar12" identifier = (binary_expression "local_d8 + local_50 + (uint)bVar12" (binary_expression "local_d8 + local_50" identifier + identifier) + (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "off._0_4_ = local_dc;" (assignment_expression "off._0_4_ = local_dc" (field_expression "off._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "off._4_4_ = local_d8;" (assignment_expression "off._4_4_ = local_d8" (field_expression "off._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "increase_relro = this->increase_relro_;" (assignment_expression "increase_relro = this->increase_relro_" identifier = (field_expression "this->increase_relro_" identifier -> field_identifier)) ;) (if_statement "if ((this->script_options_->script_sections_).saw_sections_clause_ != false) {\n                  increase_relro = 0;\n                }" if (parenthesized_expression "((this->script_options_->script_sections_).saw_sections_clause_ != false)" ( (binary_expression "(this->script_options_->script_sections_).saw_sections_clause_ != false" (field_expression "(this->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n                  increase_relro = 0;\n                }" { (expression_statement "increase_relro = 0;" (assignment_expression "increase_relro = 0" identifier = number_literal) ;) })) (expression_statement "has_relro = false;" (assignment_expression "has_relro = false" identifier = false) ;) (ERROR "uVar29 = Output_segment::" (assignment_expression "uVar29 = Output_segment" identifier = identifier) : :) (expression_statement "set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx);" (call_expression "set_section_addresses\n                                   (*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx)" identifier (argument_list "(*local_44,target,this,true,uVar30,&increase_relro,&has_relro,\n                                    &off,pshndx)" ( (pointer_expression "*local_44" * identifier) , identifier , identifier , true , identifier , (pointer_expression "&increase_relro" & identifier) , (pointer_expression "&has_relro" & identifier) , (pointer_expression "&off" & identifier) , identifier ))) ;) })) })) })) })) (expression_statement "pOVar2 = *local_44;" (assignment_expression "pOVar2 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if ((local_4c != (Output_segment *)0x0) && (bVar28 != false)) {\n          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);\n          uVar25 = (uint)pOVar2->paddr_;\n          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);\n          uVar17 = (uint)local_4c->paddr_;\n          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar23 = uVar17 + (int)local_4c->memsz_;\n          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);\n          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }\n        }" if (parenthesized_expression "((local_4c != (Output_segment *)0x0) && (bVar28 != false))" ( (binary_expression "(local_4c != (Output_segment *)0x0) && (bVar28 != false)" (parenthesized_expression "(local_4c != (Output_segment *)0x0)" ( (binary_expression "local_4c != (Output_segment *)0x0" identifier != (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar28 != false)" ( (binary_expression "bVar28 != false" identifier != false) ))) )) (compound_statement "{\n          uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);\n          uVar25 = (uint)pOVar2->paddr_;\n          uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);\n          uVar17 = (uint)local_4c->paddr_;\n          if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar23 = uVar17 + (int)local_4c->memsz_;\n          uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);\n          if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }\n        }" { (expression_statement "uVar24 = *(uint *)((int)&local_4c->paddr_ + 4);" (assignment_expression "uVar24 = *(uint *)((int)&local_4c->paddr_ + 4)" identifier = (pointer_expression "*(uint *)((int)&local_4c->paddr_ + 4)" * (cast_expression "(uint *)((int)&local_4c->paddr_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_4c->paddr_ + 4)" ( (binary_expression "(int)&local_4c->paddr_ + 4" (cast_expression "(int)&local_4c->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_4c->paddr_" & (field_expression "local_4c->paddr_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar25 = (uint)pOVar2->paddr_;" (assignment_expression "uVar25 = (uint)pOVar2->paddr_" identifier = (cast_expression "(uint)pOVar2->paddr_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar2->paddr_" identifier -> field_identifier))) ;) (expression_statement "uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4);" (assignment_expression "uVar16 = *(uint *)((int)&pOVar2->paddr_ + 4)" identifier = (pointer_expression "*(uint *)((int)&pOVar2->paddr_ + 4)" * (cast_expression "(uint *)((int)&pOVar2->paddr_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar2->paddr_ + 4)" ( (binary_expression "(int)&pOVar2->paddr_ + 4" (cast_expression "(int)&pOVar2->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar2->paddr_" & (field_expression "pOVar2->paddr_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar17 = (uint)local_4c->paddr_;" (assignment_expression "uVar17 = (uint)local_4c->paddr_" identifier = (cast_expression "(uint)local_4c->paddr_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_4c->paddr_" identifier -> field_identifier))) ;) (if_statement "if (uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }" if (parenthesized_expression "(uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17))" ( (binary_expression "uVar16 < uVar24 || uVar16 - uVar24 < (uint)(uVar25 < uVar17)" (binary_expression "uVar16 < uVar24" identifier < identifier) || (binary_expression "uVar16 - uVar24 < (uint)(uVar25 < uVar17)" (binary_expression "uVar16 - uVar24" identifier - identifier) < (call_expression "(uint)(uVar25 < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar25 < uVar17)" ( (binary_expression "uVar25 < uVar17" identifier < identifier) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0xfd9,"set_segment_offsets")" identifier (argument_list "("../../gold/layout.cc",0xfd9,"set_segment_offsets")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") ))) ;) })) (expression_statement "uVar23 = uVar17 + (int)local_4c->memsz_;" (assignment_expression "uVar23 = uVar17 + (int)local_4c->memsz_" identifier = (binary_expression "uVar17 + (int)local_4c->memsz_" identifier + (cast_expression "(int)local_4c->memsz_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_4c->memsz_" identifier -> field_identifier)))) ;) (expression_statement "uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_);" (assignment_expression "uVar26 = uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_)" identifier = (binary_expression "uVar24 + *(int *)((int)&local_4c->memsz_ + 4) +\n                   (uint)CARRY4(uVar17,(uint)local_4c->memsz_)" (binary_expression "uVar24 + *(int *)((int)&local_4c->memsz_ + 4)" identifier + (pointer_expression "*(int *)((int)&local_4c->memsz_ + 4)" * (cast_expression "(int *)((int)&local_4c->memsz_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_4c->memsz_ + 4)" ( (binary_expression "(int)&local_4c->memsz_ + 4" (cast_expression "(int)&local_4c->memsz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_4c->memsz_" & (field_expression "local_4c->memsz_" identifier -> field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar17,(uint)local_4c->memsz_)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,(uint)local_4c->memsz_)" identifier (argument_list "(uVar17,(uint)local_4c->memsz_)" ( identifier , (cast_expression "(uint)local_4c->memsz_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_4c->memsz_" identifier -> field_identifier)) )))))) ;) (if_statement "if (uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)) {\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }" if (parenthesized_expression "(uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23))" ( (binary_expression "uVar16 < uVar26 || uVar16 - uVar26 < (uint)(uVar25 < uVar23)" (binary_expression "uVar16 < uVar26" identifier < identifier) || (binary_expression "uVar16 - uVar26 < (uint)(uVar25 < uVar23)" (binary_expression "uVar16 - uVar26" identifier - identifier) < (call_expression "(uint)(uVar25 < uVar23)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar25 < uVar23)" ( (binary_expression "uVar25 < uVar23" identifier < identifier) ))))) )) (compound_statement "{\n            uVar10 = pOVar2->memsz_;\n            uVar30 = pOVar2->memsz_;\n            iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);\n            format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );\n            gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));\n            pOVar2 = *local_44;\n          }" { (expression_statement "uVar10 = pOVar2->memsz_;" (assignment_expression "uVar10 = pOVar2->memsz_" identifier = (field_expression "pOVar2->memsz_" identifier -> field_identifier)) ;) (expression_statement "uVar30 = pOVar2->memsz_;" (assignment_expression "uVar30 = pOVar2->memsz_" identifier = (field_expression "pOVar2->memsz_" identifier -> field_identifier)) ;) (expression_statement "iVar13 = *(int *)((int)&pOVar2->memsz_ + 4);" (assignment_expression "iVar13 = *(int *)((int)&pOVar2->memsz_ + 4)" identifier = (pointer_expression "*(int *)((int)&pOVar2->memsz_ + 4)" * (cast_expression "(int *)((int)&pOVar2->memsz_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar2->memsz_ + 4)" ( (binary_expression "(int)&pOVar2->memsz_ + 4" (cast_expression "(int)&pOVar2->memsz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar2->memsz_" & (field_expression "pOVar2->memsz_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    );" (assignment_expression "format = (char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    )" identifier = (cast_expression "(char *)gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    )" identifier (argument_list "(\n                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"\n                                    )" ( (string_literal ""load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"" " string_content ") ))))) ;) (expression_statement "gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10));" (call_expression "gold_error(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10))" identifier (argument_list "(format,uVar17,uVar24,uVar23,uVar26,uVar25,uVar16,uVar25 + (int)uVar30,\n                       uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10))" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "uVar25 + (int)uVar30" identifier + (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "uVar16 + iVar13 + (uint)CARRY4(uVar25,(uint)uVar10)" (binary_expression "uVar16 + iVar13" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar25,(uint)uVar10)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar25,(uint)uVar10)" identifier (argument_list "(uVar25,(uint)uVar10)" ( identifier , (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) ))) ;) (expression_statement "pOVar2 = *local_44;" (assignment_expression "pOVar2 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) })) })) })) (expression_statement "local_4c = pOVar2;" (assignment_expression "local_4c = pOVar2" identifier = identifier) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_44)" ( (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_44" (field_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish" (field_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold" (field_expression "(this->segment_list_).\n             super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) (expression_statement "lVar8 = off;" (assignment_expression "lVar8 = off" identifier = identifier) ;) (if_statement "if (load_seg != (Output_segment *)0x0) goto LAB_00113ce7;" if (parenthesized_expression "(load_seg != (Output_segment *)0x0)" ( (binary_expression "load_seg != (Output_segment *)0x0" identifier != (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00113ce7;" goto statement_identifier ;)) }))) (expression_statement "ppOVar27 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;" (field_expression "ppOVar27 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start" (field_expression "ppOVar27 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl" (binary_expression "ppOVar27 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "ppOVar27 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "ppOVar27 = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std" (assignment_expression "ppOVar27 = (this->segment_list_).\n             super__Vector_base<gold" identifier = (binary_expression "(this->segment_list_).\n             super__Vector_base<gold" (field_expression "(this->segment_list_).\n             super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (ppOVar27 != local_44) {\n    do {\n      EVar3 = (*ppOVar27)->type_;\n      if ((EVar3 != 1) && (EVar3 != 0x6474e551)) {\n        uVar24 = 0;\n        if (EVar3 == 0x6474e552) {\n          uVar24 = increase_relro;\n        }\n        Output_segment::set_offset(*ppOVar27,uVar24);\n      }\n      ppOVar27 = ppOVar27 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar27);\n  }" if (parenthesized_expression "(ppOVar27 != local_44)" ( (binary_expression "ppOVar27 != local_44" identifier != identifier) )) (compound_statement "{\n    do {\n      EVar3 = (*ppOVar27)->type_;\n      if ((EVar3 != 1) && (EVar3 != 0x6474e551)) {\n        uVar24 = 0;\n        if (EVar3 == 0x6474e552) {\n          uVar24 = increase_relro;\n        }\n        Output_segment::set_offset(*ppOVar27,uVar24);\n      }\n      ppOVar27 = ppOVar27 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar27);\n  }" { (do_statement "do {\n      EVar3 = (*ppOVar27)->type_;\n      if ((EVar3 != 1) && (EVar3 != 0x6474e551)) {\n        uVar24 = 0;\n        if (EVar3 == 0x6474e552) {\n          uVar24 = increase_relro;\n        }\n        Output_segment::set_offset(*ppOVar27,uVar24);\n      }\n      ppOVar27 = ppOVar27 + 1;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar27);" do (compound_statement "{\n      EVar3 = (*ppOVar27)->type_;\n      if ((EVar3 != 1) && (EVar3 != 0x6474e551)) {\n        uVar24 = 0;\n        if (EVar3 == 0x6474e552) {\n          uVar24 = increase_relro;\n        }\n        Output_segment::set_offset(*ppOVar27,uVar24);\n      }\n      ppOVar27 = ppOVar27 + 1;\n    }" { (expression_statement "EVar3 = (*ppOVar27)->type_;" (assignment_expression "EVar3 = (*ppOVar27)->type_" identifier = (field_expression "(*ppOVar27)->type_" (parenthesized_expression "(*ppOVar27)" ( (pointer_expression "*ppOVar27" * identifier) )) -> field_identifier)) ;) (if_statement "if ((EVar3 != 1) && (EVar3 != 0x6474e551)) {\n        uVar24 = 0;\n        if (EVar3 == 0x6474e552) {\n          uVar24 = increase_relro;\n        }\n        Output_segment::set_offset(*ppOVar27,uVar24);\n      }" if (parenthesized_expression "((EVar3 != 1) && (EVar3 != 0x6474e551))" ( (binary_expression "(EVar3 != 1) && (EVar3 != 0x6474e551)" (parenthesized_expression "(EVar3 != 1)" ( (binary_expression "EVar3 != 1" identifier != number_literal) )) && (parenthesized_expression "(EVar3 != 0x6474e551)" ( (binary_expression "EVar3 != 0x6474e551" identifier != number_literal) ))) )) (compound_statement "{\n        uVar24 = 0;\n        if (EVar3 == 0x6474e552) {\n          uVar24 = increase_relro;\n        }\n        Output_segment::set_offset(*ppOVar27,uVar24);\n      }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (if_statement "if (EVar3 == 0x6474e552) {\n          uVar24 = increase_relro;\n        }" if (parenthesized_expression "(EVar3 == 0x6474e552)" ( (binary_expression "EVar3 == 0x6474e552" identifier == number_literal) )) (compound_statement "{\n          uVar24 = increase_relro;\n        }" { (expression_statement "uVar24 = increase_relro;" (assignment_expression "uVar24 = increase_relro" identifier = identifier) ;) })) (labeled_statement "Output_segment::set_offset(*ppOVar27,uVar24);" statement_identifier : (ERROR ":" :) (expression_statement "set_offset(*ppOVar27,uVar24);" (call_expression "set_offset(*ppOVar27,uVar24)" identifier (argument_list "(*ppOVar27,uVar24)" ( (pointer_expression "*ppOVar27" * identifier) , identifier ))) ;)) })) (expression_statement "ppOVar27 = ppOVar27 + 1;" (assignment_expression "ppOVar27 = ppOVar27 + 1" identifier = (binary_expression "ppOVar27 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar27)" ( (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != ppOVar27" (field_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish" (field_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold" (field_expression "(this->segment_list_).\n             super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (labeled_statement "LAB_00113d4d:\n  if (this->tls_segment_ != (Output_segment *)0x0) {\n    Output_segment::set_tls_offsets(this->tls_segment_);\n  }" statement_identifier : (if_statement "if (this->tls_segment_ != (Output_segment *)0x0) {\n    Output_segment::set_tls_offsets(this->tls_segment_);\n  }" if (parenthesized_expression "(this->tls_segment_ != (Output_segment *)0x0)" ( (binary_expression "this->tls_segment_ != (Output_segment *)0x0" (field_expression "this->tls_segment_" identifier -> field_identifier) != (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    Output_segment::set_tls_offsets(this->tls_segment_);\n  }" { (labeled_statement "Output_segment::set_tls_offsets(this->tls_segment_);" statement_identifier : (ERROR ":" :) (expression_statement "set_tls_offsets(this->tls_segment_);" (call_expression "set_tls_offsets(this->tls_segment_)" identifier (argument_list "(this->tls_segment_)" ( (field_expression "this->tls_segment_" identifier -> field_identifier) ))) ;)) }))) (return_statement "return off;" return identifier ;) })))
(translation_unit "longlong FUN_00113020(uint param_1,int param_2,int param_3,int *param_4)\n\n{\n  char cVar1;\n  byte bVar2;\n  uint uVar3;\n  int *piVar5;\n  longlong lVar6;\n  ulonglong uVar7;\n  ulonglong uVar8;\n  ulonglong uVar9;\n  char cVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  uint uVar16;\n  uint extraout_EDX;\n  byte bVar17;\n  int iVar18;\n  undefined **ppuVar19;\n  int *piVar20;\n  uint uVar21;\n  undefined **ppuVar22;\n  byte bVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  bool bVar28;\n  longlong lVar29;\n  ulonglong uVar30;\n  longlong lVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  uint local_dc;\n  uint local_d8;\n  undefined *local_c4;\n  undefined *local_c0;\n  int local_ac;\n  undefined *local_84;\n  undefined *local_80;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  int *local_44;\n  int local_40;\n  char local_2d;\n  undefined4 local_2c;\n  int local_28;\n  undefined8 local_24;\n  uint uVar4;\n  \n  iVar12 = *(int *)(param_1 + 0x124);\n  iVar18 = *(int *)(param_1 + 0x128);\n  iVar11 = iVar18 - iVar12;\n  if (iVar11 < 0x7ffffffd) {\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }\n                    \n  FUN_0011df20(iVar12,iVar18,param_1);\n  iVar11 = 0;\nLAB_001130c6:\n  ppuVar19 = &__DT_PLTGOT;\n  FUN_002481e0(iVar11,&DAT_00315a23);\n  iVar12 = *(int *)(DAT_004144e8 + 8);\n  ppuVar22 = &__DT_PLTGOT;\n  if (iVar12 == 0) goto LAB_0011413b;\n  if (*(char *)(iVar12 + 0x41b8) == '\0') {\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }\n  else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }\n  local_24._0_4_ = (undefined *)0x0;\n  local_24._4_4_ = (undefined *)0x0;\n  if ((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }\n  else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }\n  cVar1 = *(char *)(iVar12 + 0x91d);\n  local_ac = *param_4;\n  local_44 = *(int **)(param_1 + 0x124);\n  local_28 = local_ac;\n  if (local_44 == *(int **)(param_1 + 0x128)) {\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }\n  else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }\n  piVar20 = *(int **)(param_1 + 0x124);\n  if (piVar20 != local_44) {\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }\nLAB_00113d4d:\n  if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }\n  return local_24;\n}\n\n" (function_definition "longlong FUN_00113020(uint param_1,int param_2,int param_3,int *param_4)\n\n{\n  char cVar1;\n  byte bVar2;\n  uint uVar3;\n  int *piVar5;\n  longlong lVar6;\n  ulonglong uVar7;\n  ulonglong uVar8;\n  ulonglong uVar9;\n  char cVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  uint uVar16;\n  uint extraout_EDX;\n  byte bVar17;\n  int iVar18;\n  undefined **ppuVar19;\n  int *piVar20;\n  uint uVar21;\n  undefined **ppuVar22;\n  byte bVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  bool bVar28;\n  longlong lVar29;\n  ulonglong uVar30;\n  longlong lVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  uint local_dc;\n  uint local_d8;\n  undefined *local_c4;\n  undefined *local_c0;\n  int local_ac;\n  undefined *local_84;\n  undefined *local_80;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  int *local_44;\n  int local_40;\n  char local_2d;\n  undefined4 local_2c;\n  int local_28;\n  undefined8 local_24;\n  uint uVar4;\n  \n  iVar12 = *(int *)(param_1 + 0x124);\n  iVar18 = *(int *)(param_1 + 0x128);\n  iVar11 = iVar18 - iVar12;\n  if (iVar11 < 0x7ffffffd) {\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }\n                    \n  FUN_0011df20(iVar12,iVar18,param_1);\n  iVar11 = 0;\nLAB_001130c6:\n  ppuVar19 = &__DT_PLTGOT;\n  FUN_002481e0(iVar11,&DAT_00315a23);\n  iVar12 = *(int *)(DAT_004144e8 + 8);\n  ppuVar22 = &__DT_PLTGOT;\n  if (iVar12 == 0) goto LAB_0011413b;\n  if (*(char *)(iVar12 + 0x41b8) == '\0') {\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }\n  else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }\n  local_24._0_4_ = (undefined *)0x0;\n  local_24._4_4_ = (undefined *)0x0;\n  if ((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }\n  else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }\n  cVar1 = *(char *)(iVar12 + 0x91d);\n  local_ac = *param_4;\n  local_44 = *(int **)(param_1 + 0x124);\n  local_28 = local_ac;\n  if (local_44 == *(int **)(param_1 + 0x128)) {\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }\n  else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }\n  piVar20 = *(int **)(param_1 + 0x124);\n  if (piVar20 != local_44) {\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }\nLAB_00113d4d:\n  if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }\n  return local_24;\n}" type_identifier (function_declarator "FUN_00113020(uint param_1,int param_2,int param_3,int *param_4)" identifier (parameter_list "(uint param_1,int param_2,int param_3,int *param_4)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  uint uVar3;\n  int *piVar5;\n  longlong lVar6;\n  ulonglong uVar7;\n  ulonglong uVar8;\n  ulonglong uVar9;\n  char cVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  uint uVar16;\n  uint extraout_EDX;\n  byte bVar17;\n  int iVar18;\n  undefined **ppuVar19;\n  int *piVar20;\n  uint uVar21;\n  undefined **ppuVar22;\n  byte bVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  bool bVar28;\n  longlong lVar29;\n  ulonglong uVar30;\n  longlong lVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  uint local_dc;\n  uint local_d8;\n  undefined *local_c4;\n  undefined *local_c0;\n  int local_ac;\n  undefined *local_84;\n  undefined *local_80;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  int *local_44;\n  int local_40;\n  char local_2d;\n  undefined4 local_2c;\n  int local_28;\n  undefined8 local_24;\n  uint uVar4;\n  \n  iVar12 = *(int *)(param_1 + 0x124);\n  iVar18 = *(int *)(param_1 + 0x128);\n  iVar11 = iVar18 - iVar12;\n  if (iVar11 < 0x7ffffffd) {\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }\n                    \n  FUN_0011df20(iVar12,iVar18,param_1);\n  iVar11 = 0;\nLAB_001130c6:\n  ppuVar19 = &__DT_PLTGOT;\n  FUN_002481e0(iVar11,&DAT_00315a23);\n  iVar12 = *(int *)(DAT_004144e8 + 8);\n  ppuVar22 = &__DT_PLTGOT;\n  if (iVar12 == 0) goto LAB_0011413b;\n  if (*(char *)(iVar12 + 0x41b8) == '\0') {\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }\n  else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }\n  local_24._0_4_ = (undefined *)0x0;\n  local_24._4_4_ = (undefined *)0x0;\n  if ((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }\n  else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }\n  cVar1 = *(char *)(iVar12 + 0x91d);\n  local_ac = *param_4;\n  local_44 = *(int **)(param_1 + 0x124);\n  local_28 = local_ac;\n  if (local_44 == *(int **)(param_1 + 0x128)) {\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }\n  else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }\n  piVar20 = *(int **)(param_1 + 0x124);\n  if (piVar20 != local_44) {\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }\nLAB_00113d4d:\n  if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }\n  return local_24;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "longlong lVar6;" type_identifier identifier ;) (declaration "ulonglong uVar7;" type_identifier identifier ;) (declaration "ulonglong uVar8;" type_identifier identifier ;) (declaration "ulonglong uVar9;" type_identifier identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint extraout_EDX;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined **ppuVar19;" type_identifier (pointer_declarator "**ppuVar19" * (pointer_declarator "*ppuVar19" * identifier)) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined **ppuVar22;" type_identifier (pointer_declarator "**ppuVar22" * (pointer_declarator "*ppuVar22" * identifier)) ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "longlong lVar29;" type_identifier identifier ;) (declaration "ulonglong uVar30;" type_identifier identifier ;) (declaration "longlong lVar31;" type_identifier identifier ;) (declaration "longlong lVar32;" type_identifier identifier ;) (declaration "undefined8 uVar33;" type_identifier identifier ;) (declaration "uint local_dc;" type_identifier identifier ;) (declaration "uint local_d8;" type_identifier identifier ;) (declaration "undefined *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "undefined *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "int local_ac;" primitive_type identifier ;) (declaration "undefined *local_84;" type_identifier (pointer_declarator "*local_84" * identifier) ;) (declaration "undefined *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int *local_44;" primitive_type (pointer_declarator "*local_44" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "char local_2d;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined8 local_24;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x124);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x124)" identifier = (pointer_expression "*(int *)(param_1 + 0x124)" * (cast_expression "(int *)(param_1 + 0x124)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x128)" identifier = (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar18 - iVar12;" (assignment_expression "iVar11 = iVar18 - iVar12" identifier = (binary_expression "iVar18 - iVar12" identifier - identifier)) ;) (if_statement "if (iVar11 < 0x7ffffffd) {\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }" if (parenthesized_expression "(iVar11 < 0x7ffffffd)" ( (binary_expression "iVar11 < 0x7ffffffd" identifier < number_literal) )) (compound_statement "{\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }" { (if_statement "if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }" if (parenthesized_expression "(0 < iVar11)" ( (binary_expression "0 < iVar11" number_literal < identifier) )) (compound_statement "{\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }" { (expression_statement "local_44 = (int *)(iVar11 >> 2);" (assignment_expression "local_44 = (int *)(iVar11 >> 2)" identifier = (cast_expression "(int *)(iVar11 >> 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 >> 2)" ( (binary_expression "iVar11 >> 2" identifier >> number_literal) )))) ;) (goto_statement "goto LAB_00113091;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }" else (compound_statement "{\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }" { (expression_statement "local_44 = (int *)0x1fffffff;" (assignment_expression "local_44 = (int *)0x1fffffff" identifier = (cast_expression "(int *)0x1fffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);" statement_identifier : (do_statement "do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);" do (compound_statement "{\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    }" { (expression_statement "iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);" (assignment_expression "iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23)" identifier = (call_expression "FUN_00246610((int)local_44 << 2,&DAT_00315a23)" identifier (argument_list "((int)local_44 << 2,&DAT_00315a23)" ( (binary_expression "(int)local_44 << 2" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) , (pointer_expression "&DAT_00315a23" & identifier) )))) ;) (if_statement "if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }" { (expression_statement "FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);" (call_expression "FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1)" identifier (argument_list "(iVar12,iVar18,iVar11,local_44,param_1)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_001130c6;" goto statement_identifier ;) })) (expression_statement "local_44 = (int *)((int)local_44 >> 1);" (assignment_expression "local_44 = (int *)((int)local_44 >> 1)" identifier = (cast_expression "(int *)((int)local_44 >> 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 >> 1)" ( (binary_expression "(int)local_44 >> 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(local_44 != (int *)0x0)" ( (binary_expression "local_44 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) }))) (expression_statement "FUN_0011df20(iVar12,iVar18,param_1);" (call_expression "FUN_0011df20(iVar12,iVar18,param_1)" identifier (argument_list "(iVar12,iVar18,param_1)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001130c6:\n  ppuVar19 = &__DT_PLTGOT;" statement_identifier : (expression_statement "ppuVar19 = &__DT_PLTGOT;" (assignment_expression "ppuVar19 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;)) (expression_statement "FUN_002481e0(iVar11,&DAT_00315a23);" (call_expression "FUN_002481e0(iVar11,&DAT_00315a23)" identifier (argument_list "(iVar11,&DAT_00315a23)" ( identifier , (pointer_expression "&DAT_00315a23" & identifier) ))) ;) (expression_statement "iVar12 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (expression_statement "ppuVar22 = &__DT_PLTGOT;" (assignment_expression "ppuVar22 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (if_statement "if (iVar12 == 0) goto LAB_0011413b;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0011413b;" goto statement_identifier ;)) (if_statement "if (*(char *)(iVar12 + 0x41b8) == '\0') {\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }\n  else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }" if (parenthesized_expression "(*(char *)(iVar12 + 0x41b8) == '\0')" ( (binary_expression "*(char *)(iVar12 + 0x41b8) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x41b8)" * (cast_expression "(char *)(iVar12 + 0x41b8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x41b8)" ( (binary_expression "iVar12 + 0x41b8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }" { (expression_statement "local_c4 = (undefined *)0x0;" (assignment_expression "local_c4 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c0 = (undefined *)0x0;" (assignment_expression "local_c0 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }" if (parenthesized_expression "((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0'))" ( (binary_expression "(*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar12 + 0x1a25) == '\0')" ( (binary_expression "*(char *)(iVar12 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x1a25)" * (cast_expression "(char *)(iVar12 + 0x1a25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1a25)" ( (binary_expression "iVar12 + 0x1a25" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar12 + 0x2931) == '\0')" ( (binary_expression "*(char *)(iVar12 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x2931)" * (cast_expression "(char *)(iVar12 + 0x2931)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2931)" ( (binary_expression "iVar12 + 0x2931" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }" { (expression_statement "ppuVar19 = *(undefined ***)(param_2 + 4);" (assignment_expression "ppuVar19 = *(undefined ***)(param_2 + 4)" identifier = (pointer_expression "*(undefined ***)(param_2 + 4)" * (cast_expression "(undefined ***)(param_2 + 4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_c0 = ppuVar19[7];" (assignment_expression "local_c0 = ppuVar19[7]" identifier = (subscript_expression "ppuVar19[7]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = *(undefined **)(iVar12 + 0x521c);" (assignment_expression "puVar15 = *(undefined **)(iVar12 + 0x521c)" identifier = (pointer_expression "*(undefined **)(iVar12 + 0x521c)" * (cast_expression "(undefined **)(iVar12 + 0x521c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x521c)" ( (binary_expression "iVar12 + 0x521c" identifier + number_literal) ))))) ;) (expression_statement "puVar14 = *(undefined **)(iVar12 + 0x5218);" (assignment_expression "puVar14 = *(undefined **)(iVar12 + 0x5218)" identifier = (pointer_expression "*(undefined **)(iVar12 + 0x5218)" * (cast_expression "(undefined **)(iVar12 + 0x5218)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x5218)" ( (binary_expression "iVar12 + 0x5218" identifier + number_literal) ))))) ;) (if_statement "if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }" if (parenthesized_expression "(puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0)" ( (binary_expression "puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0" (binary_expression "puVar15 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "puVar14 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }" { (expression_statement "puVar14 = ppuVar19[8];" (assignment_expression "puVar14 = ppuVar19[8]" identifier = (subscript_expression "ppuVar19[8]" identifier [ number_literal ])) ;) (expression_statement "puVar15 = ppuVar19[9];" (assignment_expression "puVar15 = ppuVar19[9]" identifier = (subscript_expression "ppuVar19[9]" identifier [ number_literal ])) ;) })) (expression_statement "local_c4 = ppuVar19[6];" (assignment_expression "local_c4 = ppuVar19[6]" identifier = (subscript_expression "ppuVar19[6]" identifier [ number_literal ])) ;) (if_statement "if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }" if (parenthesized_expression "(local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         )" ( (binary_expression "local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)" (binary_expression "local_c0 < puVar15" identifier < identifier) || (binary_expression "(uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)" (call_expression "(uint)((int)local_c0 - (int)puVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_c0 - (int)puVar15)" ( (binary_expression "(int)local_c0 - (int)puVar15" (cast_expression "(int)local_c0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(ppuVar19[6] < puVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppuVar19[6] < puVar14)" ( (binary_expression "ppuVar19[6] < puVar14" (subscript_expression "ppuVar19[6]" identifier [ number_literal ]) < identifier) ))))) )) (compound_statement "{\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }" { (expression_statement "local_c4 = puVar14;" (assignment_expression "local_c4 = puVar14" identifier = identifier) ;) (expression_statement "local_c0 = puVar15;" (assignment_expression "local_c0 = puVar15" identifier = identifier) ;) })) })) }) (else_clause "else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }" else (compound_statement "{\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }" { (expression_statement "ppuVar19 = &__DT_PLTGOT;" (assignment_expression "ppuVar19 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_c4 = *(undefined **)(iVar12 + 0x41bc);" (assignment_expression "local_c4 = *(undefined **)(iVar12 + 0x41bc)" identifier = (pointer_expression "*(undefined **)(iVar12 + 0x41bc)" * (cast_expression "(undefined **)(iVar12 + 0x41bc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x41bc)" ( (binary_expression "iVar12 + 0x41bc" identifier + number_literal) ))))) ;) (expression_statement "local_c0 = *(undefined **)(iVar12 + 0x41c0);" (assignment_expression "local_c0 = *(undefined **)(iVar12 + 0x41c0)" identifier = (pointer_expression "*(undefined **)(iVar12 + 0x41c0)" * (cast_expression "(undefined **)(iVar12 + 0x41c0)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x41c0)" ( (binary_expression "iVar12 + 0x41c0" identifier + number_literal) ))))) ;) }))) (expression_statement "local_24._0_4_ = (undefined *)0x0;" (assignment_expression "local_24._0_4_ = (undefined *)0x0" (field_expression "local_24._0_4_" identifier . field_identifier) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_24._4_4_ = (undefined *)0x0;" (assignment_expression "local_24._4_4_ = (undefined *)0x0" (field_expression "local_24._4_4_" identifier . field_identifier) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }\n  else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }" if (parenthesized_expression "((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c)))" ( (binary_expression "(param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))" ( (comma_expression "local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c)" (assignment_expression "local_44 = *(int **)(param_1 + 0x148)" identifier = (pointer_expression "*(int **)(param_1 + 0x148)" * (cast_expression "(int **)(param_1 + 0x148)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x148)" ( (binary_expression "param_1 + 0x148" identifier + number_literal) ))))) , (binary_expression "local_44 != *(undefined4 **)(param_1 + 0x14c)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 0x14c)" * (cast_expression "(undefined4 **)(param_1 + 0x14c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x14c)" ( (binary_expression "param_1 + 0x14c" identifier + number_literal) )))))) ))) )) (compound_statement "{\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }" { (do_statement "do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);" do (compound_statement "{\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    }" { (expression_statement "lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);" (assignment_expression "lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44)" identifier = (call_expression "(**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44)" (parenthesized_expression "(**(code **)(*(int *)*local_44 + 0xc))" ( (pointer_expression "**(code **)(*(int *)*local_44 + 0xc)" * (pointer_expression "*(code **)(*(int *)*local_44 + 0xc)" * (cast_expression "(code **)(*(int *)*local_44 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*local_44 + 0xc)" ( (binary_expression "*(int *)*local_44 + 0xc" (pointer_expression "*(int *)*local_44" * (cast_expression "(int *)*local_44" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*local_44)" ( (cast_expression "(int *)*local_44" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_44" * identifier)) )))) ;) (if_statement "if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }" if (parenthesized_expression "(lVar32 != 0)" ( (binary_expression "lVar32 != 0" identifier != number_literal) )) (compound_statement "{\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }" { (expression_statement "lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);" (assignment_expression "lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1)" identifier = (binary_expression "lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1)" identifier + (call_expression "CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1)" identifier (argument_list "(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1)" ( (binary_expression "local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)" (field_expression "local_24._4_4_" identifier . field_identifier) + (parenthesized_expression "(((undefined *)local_24 != (undefined *)0x0) - 1)" ( (binary_expression "((undefined *)local_24 != (undefined *)0x0) - 1" (parenthesized_expression "((undefined *)local_24 != (undefined *)0x0)" ( (binary_expression "(undefined *)local_24 != (undefined *)0x0" (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) - number_literal) ))) , (binary_expression "(undefined *)local_24 + -1" (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) ))))) ;) (expression_statement "local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);" (assignment_expression "local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6)" (field_expression "local_24._0_4_" identifier . field_identifier) = (cast_expression "(undefined *)(-(int)lVar32 & (uint)lVar6)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-(int)lVar32 & (uint)lVar6)" ( (binary_expression "-(int)lVar32 & (uint)lVar6" (unary_expression "-(int)lVar32" - (cast_expression "(int)lVar32" ( (type_descriptor "int" primitive_type) ) identifier)) & (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));" (assignment_expression "local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20))" (field_expression "local_24._4_4_" identifier . field_identifier) = (cast_expression "(undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20))" ( (binary_expression "-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20)" (unary_expression "-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0))" - (parenthesized_expression "((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0))" ( (binary_expression "(int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)" (cast_expression "(int)((ulonglong)lVar32 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar32 >> 0x20)" ( (binary_expression "(ulonglong)lVar32 >> 0x20" (cast_expression "(ulonglong)lVar32" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (call_expression "(uint)((int)lVar32 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar32 != 0)" ( (binary_expression "(int)lVar32 != 0" (cast_expression "(int)lVar32" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) ))) & (call_expression "(uint)((ulonglong)lVar6 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )))) ;) })) (expression_statement "ppuVar19 = (undefined **)*local_44;" (assignment_expression "ppuVar19 = (undefined **)*local_44" identifier = (cast_expression "(undefined **)*local_44" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_44" * identifier))) ;) (expression_statement "bVar2 = *(byte *)(ppuVar19 + 7);" (assignment_expression "bVar2 = *(byte *)(ppuVar19 + 7)" identifier = (pointer_expression "*(byte *)(ppuVar19 + 7)" * (cast_expression "(byte *)(ppuVar19 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar19 + 7)" ( (binary_expression "ppuVar19 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }" if (parenthesized_expression "((bVar2 & 1) != 0)" ( (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }" { (expression_statement "FUN_000da200("../../gold/output.h",0x142,"set_address");" (call_expression "FUN_000da200("../../gold/output.h",0x142,"set_address")" identifier (argument_list "("../../gold/output.h",0x142,"set_address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_address"" " string_content ") ))) ;) })) (expression_statement "ppuVar19[1] = (undefined *)0x0;" (assignment_expression "ppuVar19[1] = (undefined *)0x0" (subscript_expression "ppuVar19[1]" identifier [ number_literal ]) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar19[2] = (undefined *)0x0;" (assignment_expression "ppuVar19[2] = (undefined *)0x0" (subscript_expression "ppuVar19[2]" identifier [ number_literal ]) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(byte *)(ppuVar19 + 7) = bVar2 | 1;" (assignment_expression "*(byte *)(ppuVar19 + 7) = bVar2 | 1" (pointer_expression "*(byte *)(ppuVar19 + 7)" * (cast_expression "(byte *)(ppuVar19 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar19 + 7)" ( (binary_expression "ppuVar19 + 7" identifier + number_literal) )))) = (binary_expression "bVar2 | 1" identifier | number_literal)) ;) (if_statement "if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }" if (parenthesized_expression "((bVar2 & 4) != 0)" ( (binary_expression "(bVar2 & 4) != 0" (parenthesized_expression "(bVar2 & 4)" ( (binary_expression "bVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }" { (expression_statement "FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "FUN_000da200("../../gold/output.h",0x14b,"set_file_offset")" identifier (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_file_offset"" " string_content ") ))) ;) })) (expression_statement "ppuVar19[5] = (undefined *)local_24;" (assignment_expression "ppuVar19[5] = (undefined *)local_24" (subscript_expression "ppuVar19[5]" identifier [ number_literal ]) = (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppuVar19[6] = local_24._4_4_;" (assignment_expression "ppuVar19[6] = local_24._4_4_" (subscript_expression "ppuVar19[6]" identifier [ number_literal ]) = (field_expression "local_24._4_4_" identifier . field_identifier)) ;) (expression_statement "*(byte *)(ppuVar19 + 7) = bVar2 | 5;" (assignment_expression "*(byte *)(ppuVar19 + 7) = bVar2 | 5" (pointer_expression "*(byte *)(ppuVar19 + 7)" * (cast_expression "(byte *)(ppuVar19 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppuVar19 + 7)" ( (binary_expression "ppuVar19 + 7" identifier + number_literal) )))) = (binary_expression "bVar2 | 5" identifier | number_literal)) ;) (if_statement "if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }" if (parenthesized_expression "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }" { (expression_statement "(**(code **)(*ppuVar19 + 0x38))(ppuVar19);" (call_expression "(**(code **)(*ppuVar19 + 0x38))(ppuVar19)" (parenthesized_expression "(**(code **)(*ppuVar19 + 0x38))" ( (pointer_expression "**(code **)(*ppuVar19 + 0x38)" * (pointer_expression "*(code **)(*ppuVar19 + 0x38)" * (cast_expression "(code **)(*ppuVar19 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*ppuVar19 + 0x38)" ( (binary_expression "*ppuVar19 + 0x38" (pointer_expression "*ppuVar19" * identifier) + number_literal) ))))) )) (argument_list "(ppuVar19)" ( identifier ))) ;) (if_statement "if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }" if (parenthesized_expression "(((uint)ppuVar19[7] & 2) == 0)" ( (binary_expression "((uint)ppuVar19[7] & 2) == 0" (parenthesized_expression "((uint)ppuVar19[7] & 2)" ( (binary_expression "(uint)ppuVar19[7] & 2" (cast_expression "(uint)ppuVar19[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar19[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }" { (expression_statement "FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "FUN_000da200("../../gold/output.h",0x163,"finalize_data_size")" identifier (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""finalize_data_size"" " string_content ") ))) ;) })) (expression_statement "ppuVar19 = (undefined **)*local_44;" (assignment_expression "ppuVar19 = (undefined **)*local_44" identifier = (cast_expression "(undefined **)*local_44" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_44" * identifier))) ;) (if_statement "if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }" if (parenthesized_expression "(((uint)ppuVar19[7] & 2) == 0)" ( (binary_expression "((uint)ppuVar19[7] & 2) == 0" (parenthesized_expression "((uint)ppuVar19[7] & 2)" ( (binary_expression "(uint)ppuVar19[7] & 2" (cast_expression "(uint)ppuVar19[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar19[7]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }" { (expression_statement "FUN_000da200("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_000da200("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) })) (expression_statement "bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);" (assignment_expression "bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3])" identifier = (call_expression "CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3])" identifier (argument_list "((uint)(undefined *)local_24,(uint)ppuVar19[3])" ( (cast_expression "(uint)(undefined *)local_24" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (cast_expression "(uint)ppuVar19[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppuVar19[3]" identifier [ number_literal ])) )))) ;) (expression_statement "local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];" (assignment_expression "local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3]" (field_expression "local_24._0_4_" identifier . field_identifier) = (binary_expression "(undefined *)local_24 + (int)ppuVar19[3]" (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + (cast_expression "(int)ppuVar19[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar19[3]" identifier [ number_literal ])))) ;) (expression_statement "local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;" (assignment_expression "local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28" (field_expression "local_24._4_4_" identifier . field_identifier) = (binary_expression "local_24._4_4_ + (int)ppuVar19[4] + bVar28" (binary_expression "local_24._4_4_ + (int)ppuVar19[4]" (field_expression "local_24._4_4_" identifier . field_identifier) + (cast_expression "(int)ppuVar19[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppuVar19[4]" identifier [ number_literal ]))) + identifier)) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(undefined4 **)(param_1 + 0x14c) != local_44)" ( (binary_expression "*(undefined4 **)(param_1 + 0x14c) != local_44" (pointer_expression "*(undefined4 **)(param_1 + 0x14c)" * (cast_expression "(undefined4 **)(param_1 + 0x14c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x14c)" ( (binary_expression "param_1 + 0x14c" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "local_2c = *(undefined4 *)(param_1 + 0x170);" (assignment_expression "local_2c = *(undefined4 *)(param_1 + 0x170)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x170)" * (cast_expression "(undefined4 *)(param_1 + 0x170)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" ( (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0011314a:\n      local_2c = 0;\n    }" { (labeled_statement "LAB_0011314a:\n      local_2c = 0;" statement_identifier : (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;)) })) (expression_statement "ppuVar22 = ppuVar19;" (assignment_expression "ppuVar22 = ppuVar19" identifier = identifier) ;) (if_statement "if (iVar12 == 0) {\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }" { (labeled_statement "LAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);" statement_identifier : (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",ppuVar22)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;)) })) }) (else_clause "else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }" else (compound_statement "{\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }" { (expression_statement "local_2c = *(undefined4 *)(param_1 + 0x170);" (assignment_expression "local_2c = *(undefined4 *)(param_1 + 0x170)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x170)" * (cast_expression "(undefined4 *)(param_1 + 0x170)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;" if (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" ( (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0011314a;" goto statement_identifier ;)) }))) (expression_statement "cVar1 = *(char *)(iVar12 + 0x91d);" (assignment_expression "cVar1 = *(char *)(iVar12 + 0x91d)" identifier = (pointer_expression "*(char *)(iVar12 + 0x91d)" * (cast_expression "(char *)(iVar12 + 0x91d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x91d)" ( (binary_expression "iVar12 + 0x91d" identifier + number_literal) ))))) ;) (expression_statement "local_ac = *param_4;" (assignment_expression "local_ac = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "local_44 = *(int **)(param_1 + 0x124);" (assignment_expression "local_44 = *(int **)(param_1 + 0x124)" identifier = (pointer_expression "*(int **)(param_1 + 0x124)" * (cast_expression "(int **)(param_1 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (expression_statement "local_28 = local_ac;" (assignment_expression "local_28 = local_ac" identifier = identifier) ;) (if_statement "if (local_44 == *(int **)(param_1 + 0x128)) {\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }\n  else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }" if (parenthesized_expression "(local_44 == *(int **)(param_1 + 0x128))" ( (binary_expression "local_44 == *(int **)(param_1 + 0x128)" identifier == (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) )) (compound_statement "{\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }" { (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) (if_statement "if (param_3 == 0) goto LAB_00113d4d;" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00113d4d;" goto statement_identifier ;)) (labeled_statement "LAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);" statement_identifier : (expression_statement "local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);" (assignment_expression "local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20)" (field_expression "local_24._4_4_" identifier . field_identifier) = (cast_expression "(undefined *)((ulonglong)lVar32 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)lVar32 >> 0x20)" ( (binary_expression "(ulonglong)lVar32 >> 0x20" (cast_expression "(ulonglong)lVar32" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_24._0_4_ = (undefined *)lVar32;" (assignment_expression "local_24._0_4_ = (undefined *)lVar32" (field_expression "local_24._0_4_" identifier . field_identifier) = (cast_expression "(undefined *)lVar32" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar12 = *(int *)(param_2 + 4);" (assignment_expression "iVar12 = *(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) ))))) ;) (if_statement "if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }" if (parenthesized_expression "(*(char *)(iVar12 + 0x30) != '\0')" ( (binary_expression "*(char *)(iVar12 + 0x30) != '\0'" (pointer_expression "*(char *)(iVar12 + 0x30)" * (cast_expression "(char *)(iVar12 + 0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }" { (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }" { (expression_statement "local_24 = lVar32;" (assignment_expression "local_24 = lVar32" identifier = identifier) ;) (expression_statement "FUN_00106b00();" (call_expression "FUN_00106b00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_40 = *(int *)(iVar18 + 0x521c);" (assignment_expression "local_40 = *(int *)(iVar18 + 0x521c)" identifier = (pointer_expression "*(int *)(iVar18 + 0x521c)" * (cast_expression "(int *)(iVar18 + 0x521c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x521c)" ( (binary_expression "iVar18 + 0x521c" identifier + number_literal) ))))) ;) (expression_statement "local_44 = *(int **)(iVar18 + 0x5218);" (assignment_expression "local_44 = *(int **)(iVar18 + 0x5218)" identifier = (pointer_expression "*(int **)(iVar18 + 0x5218)" * (cast_expression "(int **)(iVar18 + 0x5218)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 0x5218)" ( (binary_expression "iVar18 + 0x5218" identifier + number_literal) ))))) ;) (if_statement "if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }" if (parenthesized_expression "(local_40 == 0 && local_44 == (int *)0x0)" ( (binary_expression "local_40 == 0 && local_44 == (int *)0x0" (binary_expression "local_40 == 0" identifier == number_literal) && (binary_expression "local_44 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }" { (expression_statement "local_40 = *(int *)(iVar12 + 0x24);" (assignment_expression "local_40 = *(int *)(iVar12 + 0x24)" identifier = (pointer_expression "*(int *)(iVar12 + 0x24)" * (cast_expression "(int *)(iVar12 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "local_44 = *(int **)(iVar12 + 0x20);" (assignment_expression "local_44 = *(int **)(iVar12 + 0x20)" identifier = (pointer_expression "*(int **)(iVar12 + 0x20)" * (cast_expression "(int **)(iVar12 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) ))))) ;) })) (expression_statement "uVar25 = (uint)(undefined *)local_24 & -(int)local_44;" (assignment_expression "uVar25 = (uint)(undefined *)local_24 & -(int)local_44" identifier = (binary_expression "(uint)(undefined *)local_24 & -(int)local_44" (cast_expression "(uint)(undefined *)local_24" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & (unary_expression "-(int)local_44" - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));" (assignment_expression "uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0))" identifier = (binary_expression "(uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0))" (cast_expression "(uint)local_24._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_24._4_4_" identifier . field_identifier)) & (unary_expression "-(local_40 + (uint)(local_44 != (int *)0x0))" - (parenthesized_expression "(local_40 + (uint)(local_44 != (int *)0x0))" ( (binary_expression "local_40 + (uint)(local_44 != (int *)0x0)" identifier + (call_expression "(uint)(local_44 != (int *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 != (int *)0x0)" ( (binary_expression "local_44 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )))) ))))) ;) (if_statement "if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }" if (parenthesized_expression "(uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24))" ( (binary_expression "uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)" (binary_expression "uVar26 < local_24._4_4_" identifier < (field_expression "local_24._4_4_" identifier . field_identifier)) || (binary_expression "uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)" (binary_expression "uVar26 - (int)local_24._4_4_" identifier - (cast_expression "(int)local_24._4_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_24._4_4_" identifier . field_identifier))) < (call_expression "(uint)(uVar25 < (undefined *)local_24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar25 < (undefined *)local_24)" ( (binary_expression "uVar25 < (undefined *)local_24" identifier < (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))))) )) (compound_statement "{\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }" { (expression_statement "bVar28 = CARRY4(uVar25,(uint)local_44);" (assignment_expression "bVar28 = CARRY4(uVar25,(uint)local_44)" identifier = (call_expression "CARRY4(uVar25,(uint)local_44)" identifier (argument_list "(uVar25,(uint)local_44)" ( identifier , (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "uVar25 = uVar25 + (int)local_44;" (assignment_expression "uVar25 = uVar25 + (int)local_44" identifier = (binary_expression "uVar25 + (int)local_44" identifier + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar26 = uVar26 + local_40 + (uint)bVar28;" (assignment_expression "uVar26 = uVar26 + local_40 + (uint)bVar28" identifier = (binary_expression "uVar26 + local_40 + (uint)bVar28" (binary_expression "uVar26 + local_40" identifier + identifier) + (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "piVar20 = *(int **)(param_1 + 0x154);" (assignment_expression "piVar20 = *(int **)(param_1 + 0x154)" identifier = (pointer_expression "*(int **)(param_1 + 0x154)" * (cast_expression "(int **)(param_1 + 0x154)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x154)" ( (binary_expression "param_1 + 0x154" identifier + number_literal) ))))) ;) (expression_statement "local_24._0_4_ = (undefined *)uVar25;" (assignment_expression "local_24._0_4_ = (undefined *)uVar25" (field_expression "local_24._0_4_" identifier . field_identifier) = (cast_expression "(undefined *)uVar25" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_24._4_4_ = (undefined *)uVar26;" (assignment_expression "local_24._4_4_ = (undefined *)uVar26" (field_expression "local_24._4_4_" identifier . field_identifier) = (cast_expression "(undefined *)uVar26" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }" if (parenthesized_expression "(piVar20 != *(int **)(param_1 + 0x158))" ( (binary_expression "piVar20 != *(int **)(param_1 + 0x158)" identifier != (pointer_expression "*(int **)(param_1 + 0x158)" * (cast_expression "(int **)(param_1 + 0x158)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x158)" ( (binary_expression "param_1 + 0x158" identifier + number_literal) ))))) )) (compound_statement "{\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }" { (do_statement "do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);" do (compound_statement "{\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        }" { (expression_statement "piVar5 = (int *)*piVar20;" (assignment_expression "piVar5 = (int *)*piVar20" identifier = (cast_expression "(int *)*piVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar20" * identifier))) ;) (if_statement "if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }" if (parenthesized_expression "(piVar5 != (int *)0x0)" ( (binary_expression "piVar5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }" { (expression_statement "(**(code **)(*piVar5 + 4))(piVar5);" (call_expression "(**(code **)(*piVar5 + 4))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 4))" ( (pointer_expression "**(code **)(*piVar5 + 4)" * (pointer_expression "*(code **)(*piVar5 + 4)" * (cast_expression "(code **)(*piVar5 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 4)" ( (binary_expression "*piVar5 + 4" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "uVar26 = extraout_EDX;" (assignment_expression "uVar26 = extraout_EDX" identifier = identifier) ;) })) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x158) != piVar20)" ( (binary_expression "*(int **)(param_1 + 0x158) != piVar20" (pointer_expression "*(int **)(param_1 + 0x158)" * (cast_expression "(int **)(param_1 + 0x158)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x158)" ( (binary_expression "param_1 + 0x158" identifier + number_literal) )))) != identifier) )) ;) (if_statement "if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }" if (parenthesized_expression "(piVar20 != *(int **)(param_1 + 0x154))" ( (binary_expression "piVar20 != *(int **)(param_1 + 0x154)" identifier != (pointer_expression "*(int **)(param_1 + 0x154)" * (cast_expression "(int **)(param_1 + 0x154)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x154)" ( (binary_expression "param_1 + 0x154" identifier + number_literal) ))))) )) (compound_statement "{\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }" { (expression_statement "*(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);" (assignment_expression "*(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154)" (pointer_expression "*(int **)(param_1 + 0x158)" * (cast_expression "(int **)(param_1 + 0x158)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x158)" ( (binary_expression "param_1 + 0x158" identifier + number_literal) )))) = (pointer_expression "*(int **)(param_1 + 0x154)" * (cast_expression "(int **)(param_1 + 0x154)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x154)" ( (binary_expression "param_1 + 0x154" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = param_1;" (assignment_expression "uVar26 = param_1" identifier = identifier) ;) })) })) (expression_statement "local_44 = *(int **)(param_1 + 0x124);" (assignment_expression "local_44 = *(int **)(param_1 + 0x124)" identifier = (pointer_expression "*(int **)(param_1 + 0x124)" * (cast_expression "(int **)(param_1 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (while_statement "while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }" while (parenthesized_expression "(iVar12 != param_3)" ( (binary_expression "iVar12 != param_3" identifier != identifier) )) (compound_statement "{\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }" { (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }" if (parenthesized_expression "(*(int *)(iVar12 + 0x194) == 1)" ( (binary_expression "*(int *)(iVar12 + 0x194) == 1" (pointer_expression "*(int *)(iVar12 + 0x194)" * (cast_expression "(int *)(iVar12 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x194)" ( (binary_expression "iVar12 + 0x194" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }" { (expression_statement "uVar26 = *(uint *)(iVar12 + 0x15c);" (assignment_expression "uVar26 = *(uint *)(iVar12 + 0x15c)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x15c)" * (cast_expression "(uint *)(iVar12 + 0x15c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x15c)" ( (binary_expression "iVar12 + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(iVar12 + 0x160);" (assignment_expression "iVar18 = *(int *)(iVar12 + 0x160)" identifier = (pointer_expression "*(int *)(iVar12 + 0x160)" * (cast_expression "(int *)(iVar12 + 0x160)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x160)" ( (binary_expression "iVar12 + 0x160" identifier + number_literal) ))))) ;) (expression_statement "local_2d = '\0';" (assignment_expression "local_2d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar25 = *(uint *)(iVar12 + 0x16c);" (assignment_expression "uVar25 = *(uint *)(iVar12 + 0x16c)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x16c)" * (cast_expression "(uint *)(iVar12 + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x16c)" ( (binary_expression "iVar12 + 0x16c" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);" (assignment_expression "uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c)" identifier = (binary_expression "uVar26 + *(uint *)(iVar12 + 0x16c)" identifier + (pointer_expression "*(uint *)(iVar12 + 0x16c)" * (cast_expression "(uint *)(iVar12 + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x16c)" ( (binary_expression "iVar12 + 0x16c" identifier + number_literal) )))))) ;) (expression_statement "iVar11 = *(int *)(iVar12 + 0x170);" (assignment_expression "iVar11 = *(int *)(iVar12 + 0x170)" identifier = (pointer_expression "*(int *)(iVar12 + 0x170)" * (cast_expression "(int *)(iVar12 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x170)" ( (binary_expression "iVar12 + 0x170" identifier + number_literal) ))))) ;) (expression_statement "uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);" (assignment_expression "uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28)" identifier = (call_expression "FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28)" identifier (argument_list "(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28)" ( identifier , identifier , identifier , number_literal , identifier , identifier , (pointer_expression "&local_2c" & identifier) , (pointer_expression "&local_2d" & identifier) , (pointer_expression "&local_24" & identifier) , (pointer_expression "&local_28" & identifier) )))) ;) (expression_statement "uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;" (assignment_expression "uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21" identifier = (binary_expression "(uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21" (binary_expression "(uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)" (call_expression "(uint)((ulonglong)uVar33 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar33 >> 0x20)" ( (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ^ (binary_expression "iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)" (binary_expression "iVar18 + iVar11" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar26,uVar25)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar26,uVar25)" identifier (argument_list "(uVar26,uVar25)" ( identifier , identifier )))))) | (binary_expression "(uint)uVar33 ^ uVar21" (cast_expression "(uint)uVar33" ( (type_descriptor "uint" type_identifier) ) identifier) ^ identifier))) ;) (if_statement "if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }" { (expression_statement "FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);" (call_expression "FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21)" identifier (argument_list "("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") , identifier ))) ;) })) })) (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) })) (expression_statement "lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);" (assignment_expression "lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24)" identifier = (call_expression "CONCAT44(local_24._4_4_,(undefined *)local_24)" identifier (argument_list "(local_24._4_4_,(undefined *)local_24)" ( (field_expression "local_24._4_4_" identifier . field_identifier) , (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }" if (parenthesized_expression "(local_28 != local_ac)" ( (binary_expression "local_28 != local_ac" identifier != identifier) )) (compound_statement "{\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }" { (expression_statement "FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);" (call_expression "FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26)" identifier (argument_list "("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") , identifier ))) ;) })) })) (expression_statement "local_24 = lVar32;" (assignment_expression "local_24 = lVar32" identifier = identifier) ;) (expression_statement "local_44 = *(int **)(param_1 + 0x128);" (assignment_expression "local_44 = *(int **)(param_1 + 0x128)" identifier = (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }" else (compound_statement "{\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar30 = CONCAT44(local_c0,local_c4);" (assignment_expression "uVar30 = CONCAT44(local_c0,local_c4)" identifier = (call_expression "CONCAT44(local_c0,local_c4)" identifier (argument_list "(local_c0,local_c4)" ( identifier , identifier )))) ;) (do_statement "do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);" do (compound_statement "{\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    }" { (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (expression_statement "iVar18 = local_4c;" (assignment_expression "iVar18 = local_4c" identifier = identifier) ;) (if_statement "if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 0x194) == 1)" ( (binary_expression "*(int *)(iVar12 + 0x194) == 1" (pointer_expression "*(int *)(iVar12 + 0x194)" * (cast_expression "(int *)(iVar12 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x194)" ( (binary_expression "iVar12 + 0x194" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }" { (expression_statement "cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);" (assignment_expression "cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30)" identifier = (pointer_expression "*(char *)(*(int *)(param_2 + 4) + 0x30)" * (cast_expression "(char *)(*(int *)(param_2 + 4) + 0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 4) + 0x30)" ( (binary_expression "*(int *)(param_2 + 4) + 0x30" (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) )))) + number_literal) ))))) ;) (if_statement "if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }" { (if_statement "if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }" if (parenthesized_expression "((iVar12 != param_3) && (param_3 != 0))" ( (binary_expression "(iVar12 != param_3) && (param_3 != 0)" (parenthesized_expression "(iVar12 != param_3)" ( (binary_expression "iVar12 != param_3" identifier != identifier) )) && (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }" { (expression_statement "FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");" (call_expression "FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets")" identifier (argument_list "("../../gold/layout.cc",0xf2b,"set_segment_offsets")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") ))) ;) })) (labeled_statement "LAB_00113530:\n          param_3 = 0;" statement_identifier : (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;)) }) (else_clause "else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }" else (if_statement "if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }" if (parenthesized_expression "(iVar12 == param_3)" ( (binary_expression "iVar12 == param_3" identifier == identifier) )) (compound_statement "{\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }" { (if_statement "if (local_24 == 0) goto LAB_00113530;" if (parenthesized_expression "(local_24 == 0)" ( (binary_expression "local_24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00113530;" goto statement_identifier ;)) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_ac = *param_4;" (assignment_expression "local_ac = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) })))) (expression_statement "bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;" (assignment_expression "bVar17 = *(byte *)(iVar12 + 0x19c) >> 1" identifier = (binary_expression "*(byte *)(iVar12 + 0x19c) >> 1" (pointer_expression "*(byte *)(iVar12 + 0x19c)" * (cast_expression "(byte *)(iVar12 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x19c)" ( (binary_expression "iVar12 + 0x19c" identifier + number_literal) )))) >> number_literal)) ;) (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (expression_statement "bVar2 = bVar17 & 1;" (assignment_expression "bVar2 = bVar17 & 1" identifier = (binary_expression "bVar17 & 1" identifier & number_literal)) ;) (if_statement "if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }" if (parenthesized_expression "((bVar17 & 1) == 0)" ( (binary_expression "(bVar17 & 1) == 0" (parenthesized_expression "(bVar17 & 1)" ( (binary_expression "bVar17 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }" { (if_statement "if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" { (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "bVar17 = *(byte *)(iVar18 + 0x41b8);" (assignment_expression "bVar17 = *(byte *)(iVar18 + 0x41b8)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x41b8)" * (cast_expression "(byte *)(iVar18 + 0x41b8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x41b8)" ( (binary_expression "iVar18 + 0x41b8" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = uVar30;" (assignment_expression "uVar7 = uVar30" identifier = identifier) ;) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) (if_statement "if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }" if (parenthesized_expression "((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0'))))))))" ( (binary_expression "(bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))" (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) || (parenthesized_expression "((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))" ( (parenthesized_expression "(bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0'))))))" ( (comma_expression "bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))" (assignment_expression "bVar23 = *(byte *)(iVar18 + 0x253d)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x253d)" * (cast_expression "(byte *)(iVar18 + 0x253d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x253d)" ( (binary_expression "iVar18 + 0x253d" identifier + number_literal) ))))) , (binary_expression "*(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))" (binary_expression "*(byte *)(iVar18 + 0x253d) == 0" (pointer_expression "*(byte *)(iVar18 + 0x253d)" * (cast_expression "(byte *)(iVar18 + 0x253d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x253d)" ( (binary_expression "iVar18 + 0x253d" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))" ( (parenthesized_expression "((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0'))))" ( (binary_expression "(*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))" (binary_expression "(*(uint *)(iVar12 + 0x198) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar12 + 0x198) & 2)" ( (binary_expression "*(uint *)(iVar12 + 0x198) & 2" (pointer_expression "*(uint *)(iVar12 + 0x198)" * (cast_expression "(uint *)(iVar12 + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x198)" ( (binary_expression "iVar12 + 0x198" identifier + number_literal) )))) & number_literal) )) != number_literal) || (parenthesized_expression "((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))" ( (parenthesized_expression "(bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0'))" ( (comma_expression "bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')" (assignment_expression "bVar23 = bVar17" identifier = identifier) , (binary_expression "(*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')" (binary_expression "(*(uint *)(iVar12 + 0x198) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar12 + 0x198) & 1)" ( (binary_expression "*(uint *)(iVar12 + 0x198) & 1" (pointer_expression "*(uint *)(iVar12 + 0x198)" * (cast_expression "(uint *)(iVar12 + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x198)" ( (binary_expression "iVar12 + 0x198" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )))) )) ))) )) )))) )) ))) )) (compound_statement "{\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }" { (if_statement "if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }" if (parenthesized_expression "((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0))" ( (binary_expression "(*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)" (parenthesized_expression "(*(byte *)(iVar18 + 0x423c) == 0)" ( (binary_expression "*(byte *)(iVar18 + 0x423c) == 0" (pointer_expression "*(byte *)(iVar18 + 0x423c)" * (cast_expression "(byte *)(iVar18 + 0x423c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x423c)" ( (binary_expression "iVar18 + 0x423c" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "((*(byte *)(iVar12 + 0x198) & 3) != 0)" ( (binary_expression "(*(byte *)(iVar12 + 0x198) & 3) != 0" (parenthesized_expression "(*(byte *)(iVar12 + 0x198) & 3)" ( (binary_expression "*(byte *)(iVar12 + 0x198) & 3" (pointer_expression "*(byte *)(iVar12 + 0x198)" * (cast_expression "(byte *)(iVar12 + 0x198)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x198)" ( (binary_expression "iVar12 + 0x198" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }" { (expression_statement "bVar17 = *(byte *)(iVar18 + 0x4170);" (assignment_expression "bVar17 = *(byte *)(iVar18 + 0x4170)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x4170)" * (cast_expression "(byte *)(iVar18 + 0x4170)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4170)" ( (binary_expression "iVar18 + 0x4170" identifier + number_literal) ))))) ;) (expression_statement "bVar23 = *(byte *)(iVar18 + 0x4128);" (assignment_expression "bVar23 = *(byte *)(iVar18 + 0x4128)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x4128)" * (cast_expression "(byte *)(iVar18 + 0x4128)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4128)" ( (binary_expression "iVar18 + 0x4128" identifier + number_literal) ))))) ;) (if_statement "if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }" { (labeled_statement "LAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }" statement_identifier : (if_statement "if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }" if (parenthesized_expression "((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0))" ( (binary_expression "(bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)" (parenthesized_expression "(bVar23 == 0)" ( (binary_expression "bVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "((*(byte *)(*local_44 + 0x198) & 2) == 0)" ( (binary_expression "(*(byte *)(*local_44 + 0x198) & 2) == 0" (parenthesized_expression "(*(byte *)(*local_44 + 0x198) & 2)" ( (binary_expression "*(byte *)(*local_44 + 0x198) & 2" (pointer_expression "*(byte *)(*local_44 + 0x198)" * (cast_expression "(byte *)(*local_44 + 0x198)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_44 + 0x198)" ( (binary_expression "*local_44 + 0x198" (pointer_expression "*local_44" * identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }" { (labeled_statement "LAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);" statement_identifier : (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;)) (expression_statement "bVar23 = bVar2;" (assignment_expression "bVar23 = bVar2" identifier = identifier) ;) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) }) (else_clause "else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }" else (compound_statement "{\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }" { (expression_statement "uVar13 = FUN_0015e510(*local_44);" (assignment_expression "uVar13 = FUN_0015e510(*local_44)" identifier = (call_expression "FUN_0015e510(*local_44)" identifier (argument_list "(*local_44)" ( (pointer_expression "*local_44" * identifier) )))) ;) (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((char)uVar13 != '\0') goto LAB_00113231;" if (parenthesized_expression "((char)uVar13 != '\0')" ( (binary_expression "(char)uVar13 != '\0'" (cast_expression "(char)uVar13" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00113231;" goto statement_identifier ;)) (if_statement "if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }" { (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",uVar13)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar7 = *(ulonglong *)(iVar18 + 0x412c);" (assignment_expression "uVar7 = *(ulonglong *)(iVar18 + 0x412c)" identifier = (pointer_expression "*(ulonglong *)(iVar18 + 0x412c)" * (cast_expression "(ulonglong *)(iVar18 + 0x412c)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x412c)" ( (binary_expression "iVar18 + 0x412c" identifier + number_literal) ))))) ;) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) })))) }) (else_clause "else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }" else (compound_statement "{\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }" { (if_statement "if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;" if (parenthesized_expression "((*(byte *)(iVar12 + 0x198) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar12 + 0x198) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar12 + 0x198) & 2)" ( (binary_expression "*(byte *)(iVar12 + 0x198) & 2" (pointer_expression "*(byte *)(iVar12 + 0x198)" * (cast_expression "(byte *)(iVar12 + 0x198)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x198)" ( (binary_expression "iVar12 + 0x198" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00113930;" goto statement_identifier ;)) (if_statement "if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }" if (parenthesized_expression "(bVar23 != 0)" ( (binary_expression "bVar23 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }" { (expression_statement "uVar13 = FUN_0015e510(iVar12);" (assignment_expression "uVar13 = FUN_0015e510(iVar12)" identifier = (call_expression "FUN_0015e510(iVar12)" identifier (argument_list "(iVar12)" ( identifier )))) ;) (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }" if (parenthesized_expression "((char)uVar13 == '\0')" ( (binary_expression "(char)uVar13 == '\0'" (cast_expression "(char)uVar13" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }" { (if_statement "if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }" { (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "bVar23 = *(byte *)(iVar18 + 0x4128);" (assignment_expression "bVar23 = *(byte *)(iVar18 + 0x4128)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x4128)" * (cast_expression "(byte *)(iVar18 + 0x4128)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4128)" ( (binary_expression "iVar18 + 0x4128" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001139b0;" goto statement_identifier ;) })) (if_statement "if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }" { (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",uVar13)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) })) (expression_statement "bVar23 = bVar17;" (assignment_expression "bVar23 = bVar17" identifier = identifier) ;) (expression_statement "uVar7 = *(ulonglong *)(iVar18 + 0x4174);" (assignment_expression "uVar7 = *(ulonglong *)(iVar18 + 0x4174)" identifier = (pointer_expression "*(ulonglong *)(iVar18 + 0x4174)" * (cast_expression "(ulonglong *)(iVar18 + 0x4174)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4174)" ( (binary_expression "iVar18 + 0x4174" identifier + number_literal) ))))) ;) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) }))) }) (else_clause "else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }" else (compound_statement "{\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }" { (expression_statement "bVar23 = *(byte *)(iVar18 + 0x423c);" (assignment_expression "bVar23 = *(byte *)(iVar18 + 0x423c)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x423c)" * (cast_expression "(byte *)(iVar18 + 0x423c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x423c)" ( (binary_expression "iVar18 + 0x423c" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(ulonglong *)(iVar18 + 0x4240);" (assignment_expression "uVar7 = *(ulonglong *)(iVar18 + 0x4240)" identifier = (pointer_expression "*(ulonglong *)(iVar18 + 0x4240)" * (cast_expression "(ulonglong *)(iVar18 + 0x4240)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4240)" ( (binary_expression "iVar18 + 0x4240" identifier + number_literal) ))))) ;) }))) })) }) (else_clause "else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }" else (compound_statement "{\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }" { (expression_statement "uVar30 = *(ulonglong *)(iVar12 + 0x164);" (assignment_expression "uVar30 = *(ulonglong *)(iVar12 + 0x164)" identifier = (pointer_expression "*(ulonglong *)(iVar12 + 0x164)" * (cast_expression "(ulonglong *)(iVar12 + 0x164)" ( (type_descriptor "ulonglong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x164)" ( (binary_expression "iVar12 + 0x164" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00113231:\n          bVar23 = bVar2;" statement_identifier : (expression_statement "bVar23 = bVar2;" (assignment_expression "bVar23 = bVar2" identifier = identifier) ;)) (expression_statement "uVar7 = uVar30;" (assignment_expression "uVar7 = uVar30" identifier = identifier) ;) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) (if_statement "if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" { (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) }))) (expression_statement "local_54 = *(uint *)(iVar18 + 0x5218);" (assignment_expression "local_54 = *(uint *)(iVar18 + 0x5218)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x5218)" * (cast_expression "(uint *)(iVar18 + 0x5218)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x5218)" ( (binary_expression "iVar18 + 0x5218" identifier + number_literal) ))))) ;) (expression_statement "local_50 = *(uint *)(iVar18 + 0x521c);" (assignment_expression "local_50 = *(uint *)(iVar18 + 0x521c)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x521c)" * (cast_expression "(uint *)(iVar18 + 0x521c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x521c)" ( (binary_expression "iVar18 + 0x521c" identifier + number_literal) ))))) ;) (expression_statement "local_6c = *(uint *)(iVar18 + 0x4e70);" (assignment_expression "local_6c = *(uint *)(iVar18 + 0x4e70)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x4e70)" * (cast_expression "(uint *)(iVar18 + 0x4e70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4e70)" ( (binary_expression "iVar18 + 0x4e70" identifier + number_literal) ))))) ;) (expression_statement "local_68 = *(uint *)(iVar18 + 0x4e74);" (assignment_expression "local_68 = *(uint *)(iVar18 + 0x4e74)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x4e74)" * (cast_expression "(uint *)(iVar18 + 0x4e74)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4e74)" ( (binary_expression "iVar18 + 0x4e74" identifier + number_literal) ))))) ;) (if_statement "if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }" if (parenthesized_expression "(local_50 == 0 && local_54 == 0)" ( (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" identifier == number_literal) && (binary_expression "local_54 == 0" identifier == number_literal)) )) (compound_statement "{\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }" { (expression_statement "iVar12 = *(int *)(param_2 + 4);" (assignment_expression "iVar12 = *(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 "local_54 = *(uint *)(iVar12 + 0x20);" (assignment_expression "local_54 = *(uint *)(iVar12 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x20)" * (cast_expression "(uint *)(iVar12 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "local_50 = *(uint *)(iVar12 + 0x24);" (assignment_expression "local_50 = *(uint *)(iVar12 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x24)" * (cast_expression "(uint *)(iVar12 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;" if (parenthesized_expression "(local_68 != 0 || local_6c != 0)" ( (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "local_6c != 0" identifier != number_literal)) )) (goto_statement "goto LAB_001135dc;" goto statement_identifier ;)) (labeled_statement "LAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);" statement_identifier : (expression_statement "local_6c = *(uint *)(iVar12 + 0x28);" (assignment_expression "local_6c = *(uint *)(iVar12 + 0x28)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x28)" * (cast_expression "(uint *)(iVar12 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) ;)) (expression_statement "local_68 = *(uint *)(iVar12 + 0x2c);" (assignment_expression "local_68 = *(uint *)(iVar12 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x2c)" * (cast_expression "(uint *)(iVar12 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) ))))) ;) (if_statement "if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }" if (parenthesized_expression "(local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))" ( (binary_expression "local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 < local_68" identifier < identifier) || (binary_expression "local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 - local_68" identifier - identifier) < (call_expression "(uint)(local_54 < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < local_6c)" ( (binary_expression "local_54 < local_6c" identifier < identifier) ))))) )) (compound_statement "{\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }" { (labeled_statement "LAB_001132a7:\n            local_6c = local_54;" statement_identifier : (expression_statement "local_6c = local_54;" (assignment_expression "local_6c = local_54" identifier = identifier) ;)) (expression_statement "local_68 = local_50;" (assignment_expression "local_68 = local_50" identifier = identifier) ;) })) }) (else_clause "else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }" else (compound_statement "{\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }" { (if_statement "if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }" if (parenthesized_expression "(local_68 == 0 && local_6c == 0)" ( (binary_expression "local_68 == 0 && local_6c == 0" (binary_expression "local_68 == 0" identifier == number_literal) && (binary_expression "local_6c == 0" identifier == number_literal)) )) (compound_statement "{\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }" { (expression_statement "iVar12 = *(int *)(param_2 + 4);" (assignment_expression "iVar12 = *(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) ))))) ;) (goto_statement "goto LAB_00113289;" goto statement_identifier ;) })) (labeled_statement "LAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;" statement_identifier : (if_statement "if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;" if (parenthesized_expression "(local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))" ( (binary_expression "local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 < local_68" identifier < identifier) || (binary_expression "local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 - local_68" identifier - identifier) < (call_expression "(uint)(local_54 < local_6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < local_6c)" ( (binary_expression "local_54 < local_6c" identifier < identifier) ))))) )) (goto_statement "goto LAB_001132a7;" goto statement_identifier ;))) }))) (expression_statement "lVar6 = CONCAT44(local_50,local_54);" (assignment_expression "lVar6 = CONCAT44(local_50,local_54)" identifier = (call_expression "CONCAT44(local_50,local_54)" identifier (argument_list "(local_50,local_54)" ( identifier , identifier )))) ;) (if_statement "if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }" if (parenthesized_expression "(((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54)))" ( (binary_expression "((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))" (parenthesized_expression "((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0'))" ( (binary_expression "(*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')" (parenthesized_expression "(*(char *)(iVar18 + 0x24c1) == '\0')" ( (binary_expression "*(char *)(iVar18 + 0x24c1) == '\0'" (pointer_expression "*(char *)(iVar18 + 0x24c1)" * (cast_expression "(char *)(iVar18 + 0x24c1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x24c1)" ( (binary_expression "iVar18 + 0x24c1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar18 + 0x253d) == '\0')" ( (binary_expression "*(char *)(iVar18 + 0x253d) == '\0'" (pointer_expression "*(char *)(iVar18 + 0x253d)" * (cast_expression "(char *)(iVar18 + 0x253d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x253d)" ( (binary_expression "iVar18 + 0x253d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))" ( (comma_expression "iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54)" (assignment_expression "iVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) , (binary_expression "*(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54)" (binary_expression "*(uint *)(iVar12 + 0x180) < local_50" (pointer_expression "*(uint *)(iVar12 + 0x180)" * (cast_expression "(uint *)(iVar12 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x180)" ( (binary_expression "iVar12 + 0x180" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54)" (binary_expression "*(uint *)(iVar12 + 0x180) - local_50" (pointer_expression "*(uint *)(iVar12 + 0x180)" * (cast_expression "(uint *)(iVar12 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x180)" ( (binary_expression "iVar12 + 0x180" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(iVar12 + 0x17c) < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar12 + 0x17c) < local_54)" ( (binary_expression "*(uint *)(iVar12 + 0x17c) < local_54" (pointer_expression "*(uint *)(iVar12 + 0x17c)" * (cast_expression "(uint *)(iVar12 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x17c)" ( (binary_expression "iVar12 + 0x17c" identifier + number_literal) )))) < identifier) )))))) ))) )) (compound_statement "{\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }" { (expression_statement "*(uint *)(iVar12 + 0x17c) = local_54;" (assignment_expression "*(uint *)(iVar12 + 0x17c) = local_54" (pointer_expression "*(uint *)(iVar12 + 0x17c)" * (cast_expression "(uint *)(iVar12 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x17c)" ( (binary_expression "iVar12 + 0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0x180) = local_50;" (assignment_expression "*(uint *)(iVar12 + 0x180) = local_50" (pointer_expression "*(uint *)(iVar12 + 0x180)" * (cast_expression "(uint *)(iVar12 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x180)" ( (binary_expression "iVar12 + 0x180" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "local_24 = lVar32;" (assignment_expression "local_24 = lVar32" identifier = identifier) ;) (if_statement "if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }" if (parenthesized_expression "(bVar23 == 0)" ( (binary_expression "bVar23 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }" { (expression_statement "lVar31 = FUN_0015e5e0(*local_44);" (assignment_expression "lVar31 = FUN_0015e5e0(*local_44)" identifier = (call_expression "FUN_0015e5e0(*local_44)" identifier (argument_list "(*local_44)" ( (pointer_expression "*local_44" * identifier) )))) ;) (expression_statement "uVar21 = (uint)((ulonglong)lVar31 >> 0x20);" (assignment_expression "uVar21 = (uint)((ulonglong)lVar31 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar25 = (uint)lVar31;" (assignment_expression "uVar25 = (uint)lVar31" identifier = (cast_expression "(uint)lVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar26 = uVar25 | uVar21;" (assignment_expression "uVar26 = uVar25 | uVar21" identifier = (binary_expression "uVar25 | uVar21" identifier | identifier)) ;) (if_statement "if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }" if (parenthesized_expression "((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21))" ( (binary_expression "(uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)" (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)" ( (binary_expression "uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21" (binary_expression "uVar21 <= local_50" identifier <= identifier) && (binary_expression "(uint)(local_54 < uVar25) <= local_50 - uVar21" (call_expression "(uint)(local_54 < uVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < uVar25)" ( (binary_expression "local_54 < uVar25" identifier < identifier) ))) <= (binary_expression "local_50 - uVar21" identifier - identifier))) ))) )) (compound_statement "{\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }" { (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (expression_statement "uVar9 = uVar7;" (assignment_expression "uVar9 = uVar7" identifier = identifier) ;) }) (else_clause "else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }" else (compound_statement "{\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }" { (expression_statement "lVar31 = lVar31 + (uVar7 - 1);" (assignment_expression "lVar31 = lVar31 + (uVar7 - 1)" identifier = (binary_expression "lVar31 + (uVar7 - 1)" identifier + (parenthesized_expression "(uVar7 - 1)" ( (binary_expression "uVar7 - 1" identifier - number_literal) )))) ;) (expression_statement "uVar26 = (uint)lVar31 & -uVar25;" (assignment_expression "uVar26 = (uint)lVar31 & -uVar25" identifier = (binary_expression "(uint)lVar31 & -uVar25" (cast_expression "(uint)lVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-uVar25" - identifier))) ;) (expression_statement "uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);" (assignment_expression "uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26)" identifier (argument_list "((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26)" ( (binary_expression "(uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0))" (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-(uVar21 + (uVar25 != 0))" - (parenthesized_expression "(uVar21 + (uVar25 != 0))" ( (binary_expression "uVar21 + (uVar25 != 0)" identifier + (parenthesized_expression "(uVar25 != 0)" ( (binary_expression "uVar25 != 0" identifier != number_literal) ))) )))) , identifier )))) ;) (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) }))) (expression_statement "local_84 = (undefined *)uVar9;" (assignment_expression "local_84 = (undefined *)uVar9" identifier = (cast_expression "(undefined *)uVar9" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_80 = (undefined *)(uVar9 >> 0x20);" (assignment_expression "local_80 = (undefined *)(uVar9 >> 0x20)" identifier = (cast_expression "(undefined *)(uVar9 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 >> 0x20)" ( (binary_expression "uVar9 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" identifier = identifier) ;) (if_statement "if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }" if (parenthesized_expression "(iVar12 != param_3)" ( (binary_expression "iVar12 != param_3" identifier != identifier) )) (compound_statement "{\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }" { (expression_statement "uVar26 = (local_50 - 1) + (uint)(local_54 != 0);" (assignment_expression "uVar26 = (local_50 - 1) + (uint)(local_54 != 0)" identifier = (binary_expression "(local_50 - 1) + (uint)(local_54 != 0)" (parenthesized_expression "(local_50 - 1)" ( (binary_expression "local_50 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) ))))) ;) (if_statement "if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }" if (parenthesized_expression "(((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0)" ( (binary_expression "((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0" (binary_expression "((uint)local_80 & uVar26) != 0" (parenthesized_expression "((uint)local_80 & uVar26)" ( (binary_expression "(uint)local_80 & uVar26" (cast_expression "(uint)local_80" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )) != number_literal) || (binary_expression "((uint)local_84 & local_54 - 1) != 0" (parenthesized_expression "((uint)local_84 & local_54 - 1)" ( (binary_expression "(uint)local_84 & local_54 - 1" (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "local_54 - 1" identifier - number_literal)) )) != number_literal)) )) (compound_statement "{\n              uVar8 = uVar9 + lVar6;\n            }" { (expression_statement "uVar8 = uVar9 + lVar6;" (assignment_expression "uVar8 = uVar9 + lVar6" identifier = (binary_expression "uVar9 + lVar6" identifier + identifier)) ;) })) (expression_statement "local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);" (assignment_expression "local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1)" identifier = (binary_expression "lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1)" identifier + (call_expression "CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1)" identifier (argument_list "((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1)" ( (binary_expression "(uint)(uVar8 - uVar7 >> 0x20) & uVar26" (call_expression "(uint)(uVar8 - uVar7 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 - uVar7 >> 0x20)" ( (binary_expression "uVar8 - uVar7 >> 0x20" (binary_expression "uVar8 - uVar7" identifier - identifier) >> number_literal) ))) & identifier) , (binary_expression "(uint)(uVar8 - uVar7) & local_54 - 1" (call_expression "(uint)(uVar8 - uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 - uVar7)" ( (binary_expression "uVar8 - uVar7" identifier - identifier) ))) & (binary_expression "local_54 - 1" identifier - number_literal)) ))))) ;) (goto_statement "goto LAB_00113314;" goto statement_identifier ;) })) (if_statement "if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }" if (parenthesized_expression "(lVar32 != 0)" ( (binary_expression "lVar32 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }" { (expression_statement "FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);" (call_expression "FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26)" identifier (argument_list "("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar12 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }" { (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",0);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",0)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",0)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , number_literal ))) ;) })) (if_statement "if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }" if (parenthesized_expression "(*(char *)(iVar12 + 0x3344) == '\0')" ( (binary_expression "*(char *)(iVar12 + 0x3344) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x3344)" * (cast_expression "(char *)(iVar12 + 0x3344)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3344)" ( (binary_expression "iVar12 + 0x3344" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }" { (expression_statement "iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);" (assignment_expression "iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38)" identifier = (pointer_expression "*(int *)(*(int *)(param_2 + 4) + 0x38)" * (cast_expression "(int *)(*(int *)(param_2 + 4) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 4) + 0x38)" ( (binary_expression "*(int *)(param_2 + 4) + 0x38" (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) )))) + number_literal) ))))) ;) (expression_statement "uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);" (assignment_expression "uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34)" identifier = (pointer_expression "*(uint *)(*(int *)(param_2 + 4) + 0x34)" * (cast_expression "(uint *)(*(int *)(param_2 + 4) + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 4) + 0x34)" ( (binary_expression "*(int *)(param_2 + 4) + 0x34" (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) )))) + number_literal) ))))) ;) }) (else_clause "else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }" else (compound_statement "{\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }" { (expression_statement "uVar26 = *(uint *)(iVar12 + 0x3348);" (assignment_expression "uVar26 = *(uint *)(iVar12 + 0x3348)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x3348)" * (cast_expression "(uint *)(iVar12 + 0x3348)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3348)" ( (binary_expression "iVar12 + 0x3348" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(iVar12 + 0x334c);" (assignment_expression "iVar18 = *(int *)(iVar12 + 0x334c)" identifier = (pointer_expression "*(int *)(iVar12 + 0x334c)" * (cast_expression "(int *)(iVar12 + 0x334c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x334c)" ( (binary_expression "iVar12 + 0x334c" identifier + number_literal) ))))) ;) }))) (expression_statement "puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;" (assignment_expression "puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18" identifier = (binary_expression "local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18" (binary_expression "local_c0 + (uint)CARRY4(uVar26,(uint)local_c4)" identifier + (cast_expression "(uint)CARRY4(uVar26,(uint)local_c4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar26,(uint)local_c4)" identifier (argument_list "(uVar26,(uint)local_c4)" ( identifier , (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) + identifier)) ;) (if_statement "if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }" if (parenthesized_expression "(local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26))" ( (binary_expression "local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)" (binary_expression "local_80 < puVar15" identifier < identifier) || (binary_expression "(uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)" (call_expression "(uint)((int)local_80 - (int)puVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_80 - (int)puVar15)" ( (binary_expression "(int)local_80 - (int)puVar15" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(local_84 < local_c4 + uVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_84 < local_c4 + uVar26)" ( (binary_expression "local_84 < local_c4 + uVar26" identifier < (binary_expression "local_c4 + uVar26" identifier + identifier)) ))))) )) (compound_statement "{\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }" { (expression_statement "uVar8 = CONCAT44(puVar15,local_c4 + uVar26);" (assignment_expression "uVar8 = CONCAT44(puVar15,local_c4 + uVar26)" identifier = (call_expression "CONCAT44(puVar15,local_c4 + uVar26)" identifier (argument_list "(puVar15,local_c4 + uVar26)" ( identifier , (binary_expression "local_c4 + uVar26" identifier + identifier) )))) ;) })) (expression_statement "iVar18 = param_3;" (assignment_expression "iVar18 = param_3" identifier = identifier) ;) (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) (if_statement "if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }" if (parenthesized_expression "(local_50 != 0 || local_54 != 0)" ( (binary_expression "local_50 != 0 || local_54 != 0" (binary_expression "local_50 != 0" identifier != number_literal) || (binary_expression "local_54 != 0" identifier != number_literal)) )) (compound_statement "{\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }" { (expression_statement "lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);" (assignment_expression "lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" identifier = (binary_expression "uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" identifier + (call_expression "CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" identifier (argument_list "((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" ( (binary_expression "(local_50 - 1) + (uint)(local_54 != 0)" (parenthesized_expression "(local_50 - 1)" ( (binary_expression "local_50 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )))) , (binary_expression "local_54 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);" (assignment_expression "uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54)" identifier (argument_list "((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54)" ( (binary_expression "(uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0))" (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-(local_50 + (local_54 != 0))" - (parenthesized_expression "(local_50 + (local_54 != 0))" ( (binary_expression "local_50 + (local_54 != 0)" identifier + (parenthesized_expression "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) ))) )))) , (binary_expression "(uint)lVar31 & -local_54" (cast_expression "(uint)lVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-local_54" - identifier)) )))) ;) (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" identifier = identifier) ;) })) }) (else_clause "else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }" else (compound_statement "{\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) (labeled_statement "LAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);" statement_identifier : (expression_statement "iVar12 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_004144e8 + 8)" identifier = (pointer_expression "*(int *)(DAT_004144e8 + 8)" * (cast_expression "(int *)(DAT_004144e8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_004144e8 + 8)" ( (binary_expression "DAT_004144e8 + 8" identifier + number_literal) ))))) ;)) (if_statement "if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" { (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (expression_statement "iVar18 = *local_44;" (assignment_expression "iVar18 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) }))) (expression_statement "local_80 = (undefined *)(uVar9 >> 0x20);" (assignment_expression "local_80 = (undefined *)(uVar9 >> 0x20)" identifier = (cast_expression "(undefined *)(uVar9 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 >> 0x20)" ( (binary_expression "uVar9 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_84 = (undefined *)uVar9;" (assignment_expression "local_84 = (undefined *)uVar9" identifier = (cast_expression "(undefined *)uVar9" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_70 = (uint)(uVar8 >> 0x20);" (assignment_expression "local_70 = (uint)(uVar8 >> 0x20)" identifier = (call_expression "(uint)(uVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar8 >> 0x20)" ( (binary_expression "uVar8 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_74 = (uint)uVar8;" (assignment_expression "local_74 = (uint)uVar8" identifier = (cast_expression "(uint)uVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }" if (parenthesized_expression "((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0'))" ( (binary_expression "(*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')" (parenthesized_expression "(*(char *)(iVar12 + 0x24c1) == '\0')" ( (binary_expression "*(char *)(iVar12 + 0x24c1) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x24c1)" * (cast_expression "(char *)(iVar12 + 0x24c1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24c1)" ( (binary_expression "iVar12 + 0x24c1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(iVar12 + 0x253d) == '\0')" ( (binary_expression "*(char *)(iVar12 + 0x253d) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x253d)" * (cast_expression "(char *)(iVar12 + 0x253d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x253d)" ( (binary_expression "iVar12 + 0x253d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }" { (expression_statement "lVar29 = FUN_0015e5e0(iVar18);" (assignment_expression "lVar29 = FUN_0015e5e0(iVar18)" identifier = (call_expression "FUN_0015e5e0(iVar18)" identifier (argument_list "(iVar18)" ( identifier )))) ;) (expression_statement "uVar26 = (uint)((ulonglong)lVar29 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar29 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar29 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar29 >> 0x20)" ( (binary_expression "(ulonglong)lVar29 >> 0x20" (cast_expression "(ulonglong)lVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }" if (parenthesized_expression "(uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54))" ( (binary_expression "uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)" (binary_expression "uVar26 < local_50" identifier < identifier) || (binary_expression "uVar26 - local_50 < (uint)((uint)lVar29 < local_54)" (binary_expression "uVar26 - local_50" identifier - identifier) < (call_expression "(uint)((uint)lVar29 < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)lVar29 < local_54)" ( (binary_expression "(uint)lVar29 < local_54" (cast_expression "(uint)lVar29" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) )) (compound_statement "{\n            lVar29 = lVar6;\n          }" { (expression_statement "lVar29 = lVar6;" (assignment_expression "lVar29 = lVar6" identifier = identifier) ;) })) (expression_statement "uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;" (assignment_expression "uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70" identifier = (binary_expression "(uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70" (binary_expression "(uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20)" (cast_expression "(uint)local_24._4_4_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_24._4_4_" identifier . field_identifier)) & (unary_expression "-(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20)" - (cast_expression "(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar29 + 0xffffffff) >> 0x20)" ( (binary_expression "(ulonglong)(lVar29 + 0xffffffff) >> 0x20" (call_expression "(ulonglong)(lVar29 + 0xffffffff)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar29 + 0xffffffff)" ( (binary_expression "lVar29 + 0xffffffff" identifier + number_literal) ))) >> number_literal) ))))) | (binary_expression "(int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70" (binary_expression "(int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0)" (binary_expression "(int)((ulonglong)lVar29 >> 0x20) + -1" (cast_expression "(int)((ulonglong)lVar29 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar29 >> 0x20)" ( (binary_expression "(ulonglong)lVar29 >> 0x20" (cast_expression "(ulonglong)lVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + number_literal) + (call_expression "(uint)((int)lVar29 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar29 != 0)" ( (binary_expression "(int)lVar29 != 0" (cast_expression "(int)lVar29" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) & identifier))) ;) (expression_statement "uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);" (assignment_expression "uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff)" identifier = (binary_expression "(uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff)" (binary_expression "(uint)(undefined *)local_24 & -(int)lVar29" (cast_expression "(uint)(undefined *)local_24" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & (unary_expression "-(int)lVar29" - (cast_expression "(int)lVar29" ( (type_descriptor "int" primitive_type) ) identifier))) | (binary_expression "local_74 & (uint)(lVar29 + 0xffffffff)" identifier & (call_expression "(uint)(lVar29 + 0xffffffff)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar29 + 0xffffffff)" ( (binary_expression "lVar29 + 0xffffffff" identifier + number_literal) )))))) ;) (expression_statement "lVar31 = CONCAT44(uVar25,uVar26);" (assignment_expression "lVar31 = CONCAT44(uVar25,uVar26)" identifier = (call_expression "CONCAT44(uVar25,uVar26)" identifier (argument_list "(uVar25,uVar26)" ( identifier , identifier )))) ;) (if_statement "if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }" if (parenthesized_expression "(uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24))" ( (binary_expression "uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)" (binary_expression "uVar25 < local_24._4_4_" identifier < (field_expression "local_24._4_4_" identifier . field_identifier)) || (binary_expression "uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)" (binary_expression "uVar25 - (int)local_24._4_4_" identifier - (cast_expression "(int)local_24._4_4_" ( (type_descriptor "int" primitive_type) ) (field_expression "local_24._4_4_" identifier . field_identifier))) < (call_expression "(uint)(uVar26 < (undefined *)local_24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar26 < (undefined *)local_24)" ( (binary_expression "uVar26 < (undefined *)local_24" identifier < (cast_expression "(undefined *)local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))))) )) (compound_statement "{\n            lVar31 = lVar29 + lVar31;\n          }" { (expression_statement "lVar31 = lVar29 + lVar31;" (assignment_expression "lVar31 = lVar29 + lVar31" identifier = (binary_expression "lVar29 + lVar31" identifier + identifier)) ;) })) }) (else_clause "else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }" else (compound_statement "{\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }" { (expression_statement "lVar29 = FUN_0015e5e0(iVar18);" (assignment_expression "lVar29 = FUN_0015e5e0(iVar18)" identifier = (call_expression "FUN_0015e5e0(iVar18)" identifier (argument_list "(iVar18)" ( identifier )))) ;) (expression_statement "lVar31 = local_24;" (assignment_expression "lVar31 = local_24" identifier = identifier) ;) (if_statement "if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }" if (parenthesized_expression "(lVar29 != 0)" ( (binary_expression "lVar29 != 0" identifier != number_literal) )) (compound_statement "{\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }" { (expression_statement "lVar31 = lVar29 + local_24 + -1;" (assignment_expression "lVar31 = lVar29 + local_24 + -1" identifier = (binary_expression "lVar29 + local_24 + -1" (binary_expression "lVar29 + local_24" identifier + identifier) + number_literal)) ;) (expression_statement "lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);" (assignment_expression "lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29)" identifier (argument_list "((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29)" ( (binary_expression "(uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0))" (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0))" - (parenthesized_expression "((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0))" ( (binary_expression "(int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)" (cast_expression "(int)((ulonglong)lVar29 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar29 >> 0x20)" ( (binary_expression "(ulonglong)lVar29 >> 0x20" (cast_expression "(ulonglong)lVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (call_expression "(uint)((int)lVar29 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar29 != 0)" ( (binary_expression "(int)lVar29 != 0" (cast_expression "(int)lVar29" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) )))) , (binary_expression "(uint)lVar31 & -(int)lVar29" (cast_expression "(uint)lVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar29" - (cast_expression "(int)lVar29" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) })) }))) (expression_statement "local_2d = '\0';" (assignment_expression "local_2d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar12 = *param_4;" (assignment_expression "iVar12 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "local_24 = lVar31;" (assignment_expression "local_24 = lVar31" identifier = identifier) ;) (expression_statement "uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);" (assignment_expression "uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4)" identifier = (call_expression "FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4)" identifier (argument_list "(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4)" ( (pointer_expression "*local_44" * identifier) , identifier , identifier , number_literal , identifier , (pointer_expression "&local_2c" & identifier) , (pointer_expression "&local_2d" & identifier) , (pointer_expression "&local_24" & identifier) , identifier )))) ;) (if_statement "if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }" if (parenthesized_expression "(((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9))" ( (binary_expression "((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)" (parenthesized_expression "((bVar23 == 0) && (local_2d != '\x01'))" ( (binary_expression "(bVar23 == 0) && (local_2d != '\x01')" (parenthesized_expression "(bVar23 == 0)" ( (binary_expression "bVar23 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_2d != '\x01')" ( (binary_expression "local_2d != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(uVar8 != uVar9)" ( (binary_expression "uVar8 != uVar9" identifier != identifier) ))) )) (compound_statement "{\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }" { (expression_statement "cVar10 = FUN_001a5170(DAT_004144e8);" (assignment_expression "cVar10 = FUN_001a5170(DAT_004144e8)" identifier = (call_expression "FUN_001a5170(DAT_004144e8)" identifier (argument_list "(DAT_004144e8)" ( identifier )))) ;) (if_statement "if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }" { (expression_statement "uVar26 = local_6c - 1;" (assignment_expression "uVar26 = local_6c - 1" identifier = (binary_expression "local_6c - 1" identifier - number_literal)) ;) (expression_statement "uVar21 = (local_68 - 1) + (uint)(local_6c != 0);" (assignment_expression "uVar21 = (local_68 - 1) + (uint)(local_6c != 0)" identifier = (binary_expression "(local_68 - 1) + (uint)(local_6c != 0)" (parenthesized_expression "(local_68 - 1)" ( (binary_expression "local_68 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_6c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) ))))) ;) (expression_statement "uVar25 = local_6c - (uVar26 & (uint)local_84);" (assignment_expression "uVar25 = local_6c - (uVar26 & (uint)local_84)" identifier = (binary_expression "local_6c - (uVar26 & (uint)local_84)" identifier - (parenthesized_expression "(uVar26 & (uint)local_84)" ( (binary_expression "uVar26 & (uint)local_84" identifier & (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));" (assignment_expression "iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84))" identifier = (binary_expression "(local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84))" (parenthesized_expression "(local_68 - (uVar21 & (uint)local_80))" ( (binary_expression "local_68 - (uVar21 & (uint)local_80)" identifier - (parenthesized_expression "(uVar21 & (uint)local_80)" ( (binary_expression "uVar21 & (uint)local_80" identifier & (cast_expression "(uint)local_80" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) - (call_expression "(uint)(local_6c < (uVar26 & (uint)local_84))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_6c < (uVar26 & (uint)local_84))" ( (binary_expression "local_6c < (uVar26 & (uint)local_84)" identifier < (parenthesized_expression "(uVar26 & (uint)local_84)" ( (binary_expression "uVar26 & (uint)local_84" identifier & (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) ))))) ;) (expression_statement "uVar16 = uVar26 & (uint)uVar30;" (assignment_expression "uVar16 = uVar26 & (uint)uVar30" identifier = (binary_expression "uVar26 & (uint)uVar30" identifier & (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar24 = (uint)(uVar30 >> 0x20) & uVar21;" (assignment_expression "uVar24 = (uint)(uVar30 >> 0x20) & uVar21" identifier = (binary_expression "(uint)(uVar30 >> 0x20) & uVar21" (call_expression "(uint)(uVar30 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar30 >> 0x20)" ( (binary_expression "uVar30 >> 0x20" identifier >> number_literal) ))) & identifier)) ;) (if_statement "if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }" if (parenthesized_expression "((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0))" ( (binary_expression "(uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)" (parenthesized_expression "(uVar25 != 0 || iVar18 != 0)" ( (binary_expression "uVar25 != 0 || iVar18 != 0" (binary_expression "uVar25 != 0" identifier != number_literal) || (binary_expression "iVar18 != 0" identifier != number_literal)) )) && (parenthesized_expression "(uVar16 != 0 || uVar24 != 0)" ( (binary_expression "uVar16 != 0 || uVar24 != 0" (binary_expression "uVar16 != 0" identifier != number_literal) || (binary_expression "uVar24 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }" { (expression_statement "uVar27 = -(local_68 + (local_6c != 0));" (assignment_expression "uVar27 = -(local_68 + (local_6c != 0))" identifier = (unary_expression "-(local_68 + (local_6c != 0))" - (parenthesized_expression "(local_68 + (local_6c != 0))" ( (binary_expression "local_68 + (local_6c != 0)" identifier + (parenthesized_expression "(local_6c != 0)" ( (binary_expression "local_6c != 0" identifier != number_literal) ))) )))) ;) (if_statement "if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }" if (parenthesized_expression "((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24))" ( (binary_expression "(((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)" (parenthesized_expression "(((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0)" ( (binary_expression "((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0" (binary_expression "((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0" (parenthesized_expression "((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27)" ( (binary_expression "(uint)((uVar30 ^ uVar9) >> 0x20) & uVar27" (call_expression "(uint)((uVar30 ^ uVar9) >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar30 ^ uVar9) >> 0x20)" ( (binary_expression "(uVar30 ^ uVar9) >> 0x20" (parenthesized_expression "(uVar30 ^ uVar9)" ( (binary_expression "uVar30 ^ uVar9" identifier ^ identifier) )) >> number_literal) ))) & identifier) )) != number_literal) || (binary_expression "((uint)(uVar30 ^ uVar9) & -local_6c) != 0" (parenthesized_expression "((uint)(uVar30 ^ uVar9) & -local_6c)" ( (binary_expression "(uint)(uVar30 ^ uVar9) & -local_6c" (call_expression "(uint)(uVar30 ^ uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar30 ^ uVar9)" ( (binary_expression "uVar30 ^ uVar9" identifier ^ identifier) ))) & (unary_expression "-local_6c" - identifier)) )) != number_literal)) )) && (parenthesized_expression "(uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)" ( (comma_expression "uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24" (assignment_expression "uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16)" identifier = (binary_expression "iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16)" (binary_expression "iVar18 + uVar24" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar25,uVar16)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar25,uVar16)" identifier (argument_list "(uVar25,uVar16)" ( identifier , identifier )))))) , (binary_expression "uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24" (binary_expression "uVar24 <= local_68" identifier <= identifier) && (binary_expression "(uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24" (call_expression "(uint)(local_6c < uVar25 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_6c < uVar25 + uVar16)" ( (binary_expression "local_6c < uVar25 + uVar16" identifier < (binary_expression "uVar25 + uVar16" identifier + identifier)) ))) <= (binary_expression "local_68 - uVar24" identifier - identifier)))) ))) )) (compound_statement "{\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }" { (expression_statement "*param_4 = iVar12;" (assignment_expression "*param_4 = iVar12" (pointer_expression "*param_4" * identifier) = identifier) ;) (if_statement "if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }" if (parenthesized_expression "(local_68 != 0 || local_6c != 0)" ( (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" identifier != number_literal) || (binary_expression "local_6c != 0" identifier != number_literal)) )) (compound_statement "{\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }" { (expression_statement "lVar31 = uVar9 + CONCAT44(uVar21,uVar26);" (assignment_expression "lVar31 = uVar9 + CONCAT44(uVar21,uVar26)" identifier = (binary_expression "uVar9 + CONCAT44(uVar21,uVar26)" identifier + (call_expression "CONCAT44(uVar21,uVar26)" identifier (argument_list "(uVar21,uVar26)" ( identifier , identifier ))))) ;) (expression_statement "uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);" (assignment_expression "uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31)" identifier (argument_list "((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31)" ( (binary_expression "(uint)((ulonglong)lVar31 >> 0x20) & uVar27" (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & identifier) , (binary_expression "-local_6c & (uint)lVar31" (unary_expression "-local_6c" - identifier) & (cast_expression "(uint)lVar31" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) })) (expression_statement "lVar31 = FUN_0015e5e0(*local_44);" (assignment_expression "lVar31 = FUN_0015e5e0(*local_44)" identifier = (call_expression "FUN_0015e5e0(*local_44)" identifier (argument_list "(*local_44)" ( (pointer_expression "*local_44" * identifier) )))) ;) (if_statement "if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }" if (parenthesized_expression "(lVar31 != 0)" ( (binary_expression "lVar31 != 0" identifier != number_literal) )) (compound_statement "{\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }" { (expression_statement "lVar29 = lVar31 + uVar9 + -1;" (assignment_expression "lVar29 = lVar31 + uVar9 + -1" identifier = (binary_expression "lVar31 + uVar9 + -1" (binary_expression "lVar31 + uVar9" identifier + identifier) + number_literal)) ;) (expression_statement "uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);" (assignment_expression "uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31)" identifier (argument_list "((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31)" ( (binary_expression "(uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (call_expression "(uint)((ulonglong)lVar29 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar29 >> 0x20)" ( (binary_expression "(ulonglong)lVar29 >> 0x20" (cast_expression "(ulonglong)lVar29" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) & (unary_expression "-((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" - (parenthesized_expression "((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" ( (binary_expression "(int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)" (cast_expression "(int)((ulonglong)lVar31 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (call_expression "(uint)((int)lVar31 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)lVar31 != 0)" ( (binary_expression "(int)lVar31 != 0" (cast_expression "(int)lVar31" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )))) )))) , (binary_expression "(uint)lVar29 & -(int)lVar31" (cast_expression "(uint)lVar29" ( (type_descriptor "uint" type_identifier) ) identifier) & (unary_expression "-(int)lVar31" - (cast_expression "(int)lVar31" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) })) (expression_statement "local_80 = (undefined *)(uVar9 >> 0x20);" (assignment_expression "local_80 = (undefined *)(uVar9 >> 0x20)" identifier = (cast_expression "(undefined *)(uVar9 >> 0x20)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 >> 0x20)" ( (binary_expression "uVar9 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_84 = (undefined *)uVar9;" (assignment_expression "local_84 = (undefined *)uVar9" identifier = (cast_expression "(undefined *)uVar9" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar26 = local_54 - 1;" (assignment_expression "uVar26 = local_54 - 1" identifier = (binary_expression "local_54 - 1" identifier - number_literal)) ;) (expression_statement "uVar25 = (local_50 - 1) + (uint)(local_54 != 0);" (assignment_expression "uVar25 = (local_50 - 1) + (uint)(local_54 != 0)" identifier = (binary_expression "(local_50 - 1) + (uint)(local_54 != 0)" (parenthesized_expression "(local_50 - 1)" ( (binary_expression "local_50 - 1" identifier - number_literal) )) + (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) ))))) ;) (expression_statement "local_6c = (uint)local_84 & uVar26;" (assignment_expression "local_6c = (uint)local_84 & uVar26" identifier = (binary_expression "(uint)local_84 & uVar26" (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier)) ;) (expression_statement "local_74 = (uint)local_80 & uVar25;" (assignment_expression "local_74 = (uint)local_80 & uVar25" identifier = (binary_expression "(uint)local_80 & uVar25" (cast_expression "(uint)local_80" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier)) ;) (if_statement "if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }" if (parenthesized_expression "(local_6c != 0 || local_74 != 0)" ( (binary_expression "local_6c != 0 || local_74 != 0" (binary_expression "local_6c != 0" identifier != number_literal) || (binary_expression "local_74 != 0" identifier != number_literal)) )) (compound_statement "{\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }" { (expression_statement "lVar31 = uVar9 + lVar6;" (assignment_expression "lVar31 = uVar9 + lVar6" identifier = (binary_expression "uVar9 + lVar6" identifier + identifier)) ;) (expression_statement "uVar9 = uVar9 + lVar6;" (assignment_expression "uVar9 = uVar9 + lVar6" identifier = (binary_expression "uVar9 + lVar6" identifier + identifier)) ;) (expression_statement "local_6c = uVar26 & (uint)lVar31;" (assignment_expression "local_6c = uVar26 & (uint)lVar31" identifier = (binary_expression "uVar26 & (uint)lVar31" identifier & (cast_expression "(uint)lVar31" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);" (assignment_expression "local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20)" identifier = (binary_expression "uVar25 & (uint)((ulonglong)lVar31 >> 0x20)" identifier & (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar31 >> 0x20)" ( (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))))) ;) })) (expression_statement "lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));" (assignment_expression "lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7))" identifier = (binary_expression "lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7))" identifier + (call_expression "CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7))" identifier (argument_list "(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7))" ( (binary_expression "uVar25 & (uint)(uVar9 - uVar7 >> 0x20)" identifier & (call_expression "(uint)(uVar9 - uVar7 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 - uVar7 >> 0x20)" ( (binary_expression "uVar9 - uVar7 >> 0x20" (binary_expression "uVar9 - uVar7" identifier - identifier) >> number_literal) )))) , (binary_expression "uVar26 & (uint)(uVar9 - uVar7)" identifier & (call_expression "(uint)(uVar9 - uVar7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 - uVar7)" ( (binary_expression "uVar9 - uVar7" identifier - identifier) )))) ))))) ;) (expression_statement "uVar26 = (uint)lVar32;" (assignment_expression "uVar26 = (uint)lVar32" identifier = (cast_expression "(uint)lVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar25 = (uint)((ulonglong)lVar32 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar32 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar32 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar32 >> 0x20)" ( (binary_expression "(ulonglong)lVar32 >> 0x20" (cast_expression "(ulonglong)lVar32" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_dc = local_6c | -local_54 & uVar26;" (assignment_expression "local_dc = local_6c | -local_54 & uVar26" identifier = (binary_expression "local_6c | -local_54 & uVar26" identifier | (binary_expression "-local_54 & uVar26" (unary_expression "-local_54" - identifier) & identifier))) ;) (expression_statement "local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;" (assignment_expression "local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25" identifier = (binary_expression "local_74 | -(local_50 + (local_54 != 0)) & uVar25" identifier | (binary_expression "-(local_50 + (local_54 != 0)) & uVar25" (unary_expression "-(local_50 + (local_54 != 0))" - (parenthesized_expression "(local_50 + (local_54 != 0))" ( (binary_expression "local_50 + (local_54 != 0)" identifier + (parenthesized_expression "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) ))) ))) & identifier))) ;) (if_statement "if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }" if (parenthesized_expression "(local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26))" ( (binary_expression "local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)" (binary_expression "local_d8 < uVar25" identifier < identifier) || (binary_expression "local_d8 - uVar25 < (uint)(local_dc < uVar26)" (binary_expression "local_d8 - uVar25" identifier - identifier) < (call_expression "(uint)(local_dc < uVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_dc < uVar26)" ( (binary_expression "local_dc < uVar26" identifier < identifier) ))))) )) (compound_statement "{\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }" { (expression_statement "bVar28 = CARRY4(local_dc,local_54);" (assignment_expression "bVar28 = CARRY4(local_dc,local_54)" identifier = (call_expression "CARRY4(local_dc,local_54)" identifier (argument_list "(local_dc,local_54)" ( identifier , identifier )))) ;) (expression_statement "local_dc = local_dc + local_54;" (assignment_expression "local_dc = local_dc + local_54" identifier = (binary_expression "local_dc + local_54" identifier + identifier)) ;) (expression_statement "local_d8 = local_d8 + local_50 + (uint)bVar28;" (assignment_expression "local_d8 = local_d8 + local_50 + (uint)bVar28" identifier = (binary_expression "local_d8 + local_50 + (uint)bVar28" (binary_expression "local_d8 + local_50" identifier + identifier) + (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "local_24._0_4_ = (undefined *)local_dc;" (assignment_expression "local_24._0_4_ = (undefined *)local_dc" (field_expression "local_24._0_4_" identifier . field_identifier) = (cast_expression "(undefined *)local_dc" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_24._4_4_ = (undefined *)local_d8;" (assignment_expression "local_24._4_4_ = (undefined *)local_d8" (field_expression "local_24._4_4_" identifier . field_identifier) = (cast_expression "(undefined *)local_d8" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_2c = *(undefined4 *)(param_1 + 0x170);" (assignment_expression "local_2c = *(undefined4 *)(param_1 + 0x170)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x170)" * (cast_expression "(undefined4 *)(param_1 + 0x170)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x170)" ( (binary_expression "param_1 + 0x170" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }" if (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" ( (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  local_2c = 0;\n                }" { (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) })) (expression_statement "local_2d = '\0';" (assignment_expression "local_2d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);" (assignment_expression "uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4)" identifier = (call_expression "FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4)" identifier (argument_list "(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4)" ( (pointer_expression "*local_44" * identifier) , identifier , identifier , number_literal , identifier , (pointer_expression "&local_2c" & identifier) , (pointer_expression "&local_2d" & identifier) , (pointer_expression "&local_24" & identifier) , identifier )))) ;) })) })) })) })) (expression_statement "iVar18 = *local_44;" (assignment_expression "iVar18 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) (if_statement "if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }" if (parenthesized_expression "((local_4c != 0) && (cVar1 != '\0'))" ( (binary_expression "(local_4c != 0) && (cVar1 != '\0')" (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) && (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }" { (expression_statement "uVar26 = *(uint *)(local_4c + 0x168);" (assignment_expression "uVar26 = *(uint *)(local_4c + 0x168)" identifier = (pointer_expression "*(uint *)(local_4c + 0x168)" * (cast_expression "(uint *)(local_4c + 0x168)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x168)" ( (binary_expression "local_4c + 0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar25 = *(uint *)(iVar18 + 0x164);" (assignment_expression "uVar25 = *(uint *)(iVar18 + 0x164)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x164)" * (cast_expression "(uint *)(iVar18 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x164)" ( (binary_expression "iVar18 + 0x164" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = *(uint *)(iVar18 + 0x168);" (assignment_expression "uVar21 = *(uint *)(iVar18 + 0x168)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x168)" * (cast_expression "(uint *)(iVar18 + 0x168)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x168)" ( (binary_expression "iVar18 + 0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = *(uint *)(local_4c + 0x164);" (assignment_expression "uVar16 = *(uint *)(local_4c + 0x164)" identifier = (pointer_expression "*(uint *)(local_4c + 0x164)" * (cast_expression "(uint *)(local_4c + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x164)" ( (binary_expression "local_4c + 0x164" identifier + number_literal) ))))) ;) (if_statement "if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }" if (parenthesized_expression "(uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16))" ( (binary_expression "uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)" (binary_expression "uVar21 < uVar26" identifier < identifier) || (binary_expression "uVar21 - uVar26 < (uint)(uVar25 < uVar16)" (binary_expression "uVar21 - uVar26" identifier - identifier) < (call_expression "(uint)(uVar25 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar25 < uVar16)" ( (binary_expression "uVar25 < uVar16" identifier < identifier) ))))) )) (compound_statement "{\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }" { (expression_statement "FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");" (call_expression "FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets")" identifier (argument_list "("../../gold/layout.cc",0xfd9,"set_segment_offsets")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""set_segment_offsets"" " string_content ") ))) ;) })) (expression_statement "uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);" (assignment_expression "uVar24 = uVar16 + *(uint *)(local_4c + 0x16c)" identifier = (binary_expression "uVar16 + *(uint *)(local_4c + 0x16c)" identifier + (pointer_expression "*(uint *)(local_4c + 0x16c)" * (cast_expression "(uint *)(local_4c + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x16c)" ( (binary_expression "local_4c + 0x16c" identifier + number_literal) )))))) ;) (expression_statement "uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));" (assignment_expression "uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c))" identifier = (binary_expression "uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c))" (binary_expression "uVar26 + *(int *)(local_4c + 0x170)" identifier + (pointer_expression "*(int *)(local_4c + 0x170)" * (cast_expression "(int *)(local_4c + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x170)" ( (binary_expression "local_4c + 0x170" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar16,*(uint *)(local_4c + 0x16c))" identifier (argument_list "(uVar16,*(uint *)(local_4c + 0x16c))" ( identifier , (pointer_expression "*(uint *)(local_4c + 0x16c)" * (cast_expression "(uint *)(local_4c + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x16c)" ( (binary_expression "local_4c + 0x16c" identifier + number_literal) )))) )))))) ;) (if_statement "if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }" if (parenthesized_expression "(uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24))" ( (binary_expression "uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)" (binary_expression "uVar21 < uVar27" identifier < identifier) || (binary_expression "uVar21 - uVar27 < (uint)(uVar25 < uVar24)" (binary_expression "uVar21 - uVar27" identifier - identifier) < (call_expression "(uint)(uVar25 < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar25 < uVar24)" ( (binary_expression "uVar25 < uVar24" identifier < identifier) ))))) )) (compound_statement "{\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }" { (expression_statement "uVar3 = *(uint *)(iVar18 + 0x16c);" (assignment_expression "uVar3 = *(uint *)(iVar18 + 0x16c)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x16c)" * (cast_expression "(uint *)(iVar18 + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x16c)" ( (binary_expression "iVar18 + 0x16c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(iVar18 + 0x16c);" (assignment_expression "uVar4 = *(uint *)(iVar18 + 0x16c)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x16c)" * (cast_expression "(uint *)(iVar18 + 0x16c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x16c)" ( (binary_expression "iVar18 + 0x16c" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(iVar18 + 0x170);" (assignment_expression "iVar12 = *(int *)(iVar18 + 0x170)" identifier = (pointer_expression "*(int *)(iVar18 + 0x170)" * (cast_expression "(int *)(iVar18 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x170)" ( (binary_expression "iVar18 + 0x170" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");" (assignment_expression "uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]")" identifier = (call_expression "gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]")" identifier (argument_list "("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]")" ( (string_literal ""load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"" " string_content ") )))) ;) (expression_statement "FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));" (call_expression "FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3))" identifier (argument_list "(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3))" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "uVar25 + uVar4" identifier + identifier) , (binary_expression "uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3)" (binary_expression "uVar21 + iVar12" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar25,uVar3)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar25,uVar3)" identifier (argument_list "(uVar25,uVar3)" ( identifier , identifier ))))) ))) ;) (expression_statement "iVar18 = *local_44;" (assignment_expression "iVar18 = *local_44" identifier = (pointer_expression "*local_44" * identifier)) ;) })) })) })) (expression_statement "local_4c = iVar18;" (assignment_expression "local_4c = iVar18" identifier = identifier) ;) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x128) != local_44)" ( (binary_expression "*(int **)(param_1 + 0x128) != local_44" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) ;) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" identifier = identifier) ;) (if_statement "if (param_3 != 0) goto LAB_00113ce7;" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00113ce7;" goto statement_identifier ;)) }))) (expression_statement "piVar20 = *(int **)(param_1 + 0x124);" (assignment_expression "piVar20 = *(int **)(param_1 + 0x124)" identifier = (pointer_expression "*(int **)(param_1 + 0x124)" * (cast_expression "(int **)(param_1 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (piVar20 != local_44) {\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }" if (parenthesized_expression "(piVar20 != local_44)" ( (binary_expression "piVar20 != local_44" identifier != identifier) )) (compound_statement "{\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }" { (do_statement "do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);" do (compound_statement "{\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    }" { (expression_statement "iVar12 = *(int *)(*piVar20 + 0x194);" (assignment_expression "iVar12 = *(int *)(*piVar20 + 0x194)" identifier = (pointer_expression "*(int *)(*piVar20 + 0x194)" * (cast_expression "(int *)(*piVar20 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar20 + 0x194)" ( (binary_expression "*piVar20 + 0x194" (pointer_expression "*piVar20" * identifier) + number_literal) ))))) ;) (if_statement "if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }" if (parenthesized_expression "((iVar12 != 1) && (iVar12 != 0x6474e551))" ( (binary_expression "(iVar12 != 1) && (iVar12 != 0x6474e551)" (parenthesized_expression "(iVar12 != 1)" ( (binary_expression "iVar12 != 1" identifier != number_literal) )) && (parenthesized_expression "(iVar12 != 0x6474e551)" ( (binary_expression "iVar12 != 0x6474e551" identifier != number_literal) ))) )) (compound_statement "{\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (if_statement "if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }" if (parenthesized_expression "(iVar12 == 0x6474e552)" ( (binary_expression "iVar12 == 0x6474e552" identifier == number_literal) )) (compound_statement "{\n          uVar13 = local_2c;\n        }" { (expression_statement "uVar13 = local_2c;" (assignment_expression "uVar13 = local_2c" identifier = identifier) ;) })) (expression_statement "FUN_0015f160(*piVar20,uVar13);" (call_expression "FUN_0015f160(*piVar20,uVar13)" identifier (argument_list "(*piVar20,uVar13)" ( (pointer_expression "*piVar20" * identifier) , identifier ))) ;) })) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_1 + 0x128) != piVar20)" ( (binary_expression "*(int **)(param_1 + 0x128) != piVar20" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) ;) })) (labeled_statement "LAB_00113d4d:\n  if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }" statement_identifier : (if_statement "if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x164) != 0)" ( (binary_expression "*(int *)(param_1 + 0x164) != 0" (pointer_expression "*(int *)(param_1 + 0x164)" * (cast_expression "(int *)(param_1 + 0x164)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }" { (expression_statement "FUN_0015f8f0(*(int *)(param_1 + 0x164));" (call_expression "FUN_0015f8f0(*(int *)(param_1 + 0x164))" identifier (argument_list "(*(int *)(param_1 + 0x164))" ( (pointer_expression "*(int *)(param_1 + 0x164)" * (cast_expression "(int *)(param_1 + 0x164)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) )))) ))) ;) }))) (return_statement "return local_24;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;)) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (call_expression IDENT (argument_list ( 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 IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 = (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 == (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (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 { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( (binary_expression (field_expression IDENT . field_identifier) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) - LIT) ))) , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )))) ))) & (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression 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 (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression (field_expression IDENT . field_identifier) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 ')) )) (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 IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = 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 { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) & (unary_expression - (parenthesized_expression ( (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < (field_expression IDENT . field_identifier)) || (binary_expression (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != 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 { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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) ;) })) })) (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 * IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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 = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) ^ (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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) && (parenthesized_expression ( (parenthesized_expression ( (binary_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) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_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) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )))) )) ))) )) )))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (labeled_statement 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 IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = 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 = IDENT) ;) }))) }) (else_clause else (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) ))))) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression 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 (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (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 *)) ) (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 != LIT) || (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement 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 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 < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (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) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) || (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) )))))) ))) )) (compound_statement { (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 IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) <= (binary_expression IDENT - IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression - IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & (unary_expression - (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT) )) != LIT) || (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (binary_expression IDENT - LIT)) )) != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (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 - IDENT) >> LIT) ))) & IDENT) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - IDENT) ))) & (binary_expression IDENT - LIT)) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , LIT ))) ;) })) (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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }) (else_clause else (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 = (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT + IDENT)) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) )))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) , (binary_expression IDENT - LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & (unary_expression - (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression - IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (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 (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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) )))) == (char_literal ' escape_sequence ')) )) && (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 (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier)) & (unary_expression - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) ))))) | (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )))) & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) | (binary_expression IDENT & (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < (field_expression IDENT . field_identifier)) || (binary_expression (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & (unary_expression - (parenthesized_expression ( (binary_expression (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )))) )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) })) }))) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT , LIT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT & (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (parenthesized_expression ( (binary_expression IDENT & (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) >> LIT) ))) & IDENT) )) != LIT) || (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT ^ IDENT) ))) & (unary_expression - IDENT)) )) != LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) , (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression IDENT + IDENT)) ))) <= (binary_expression IDENT - IDENT)))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & IDENT) , (binary_expression (unary_expression - IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & (unary_expression - (parenthesized_expression ( (binary_expression (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )))) )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_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 & (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( (binary_expression IDENT & (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT - IDENT) >> LIT) )))) , (binary_expression IDENT & (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - IDENT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 = (binary_expression IDENT | (binary_expression (unary_expression - IDENT) & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT != LIT) ))) ))) & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT , LIT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT )))) ;) })) })) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (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 *)) ) (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 < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( 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 < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , (binary_expression IDENT + IDENT) , (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (do_statement do (compound_statement { (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 (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (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 IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "longlong FUN_00113020(uint param_1,int param_2,int param_3,int *param_4)\n\n{\n  char cVar1;\n  byte bVar2;\n  uint uVar3;\n  int *piVar5;\n  longlong lVar6;\n  ulonglong uVar7;\n  ulonglong uVar8;\n  ulonglong uVar9;\n  char cVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  uint uVar16;\n  uint extraout_EDX;\n  byte bVar17;\n  int iVar18;\n  undefined **ppuVar19;\n  int *piVar20;\n  uint uVar21;\n  undefined **ppuVar22;\n  byte bVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  bool bVar28;\n  longlong lVar29;\n  ulonglong uVar30;\n  longlong lVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  uint local_dc;\n  uint local_d8;\n  undefined *local_c4;\n  undefined *local_c0;\n  int local_ac;\n  undefined *local_84;\n  undefined *local_80;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  int *local_44;\n  int local_40;\n  char local_2d;\n  undefined4 local_2c;\n  int local_28;\n  undefined8 local_24;\n  uint uVar4;\n  \n  iVar12 = *(int *)(param_1 + 0x124);\n  iVar18 = *(int *)(param_1 + 0x128);\n  iVar11 = iVar18 - iVar12;\n  if (iVar11 < 0x7ffffffd) {\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }\n                    \n  FUN_0011df20(iVar12,iVar18,param_1);\n  iVar11 = 0;\nLAB_001130c6:\n  ppuVar19 = &__DT_PLTGOT;\n  FUN_002481e0(iVar11,&DAT_00315a23);\n  iVar12 = *(int *)(DAT_004144e8 + 8);\n  ppuVar22 = &__DT_PLTGOT;\n  if (iVar12 == 0) goto LAB_0011413b;\n  if (*(char *)(iVar12 + 0x41b8) == '\0') {\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }\n  else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }\n  local_24._0_4_ = (undefined *)0x0;\n  local_24._4_4_ = (undefined *)0x0;\n  if ((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }\n  else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }\n  cVar1 = *(char *)(iVar12 + 0x91d);\n  local_ac = *param_4;\n  local_44 = *(int **)(param_1 + 0x124);\n  local_28 = local_ac;\n  if (local_44 == *(int **)(param_1 + 0x128)) {\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }\n  else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }\n  piVar20 = *(int **)(param_1 + 0x124);\n  if (piVar20 != local_44) {\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }\nLAB_00113d4d:\n  if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }\n  return local_24;\n}" (type_identifier "longlong") (function_declarator "FUN_00113020(uint param_1,int param_2,int param_3,int *param_4)" (identifier "FUN_00113020") (parameter_list "(uint param_1,int param_2,int param_3,int *param_4)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  uint uVar3;\n  int *piVar5;\n  longlong lVar6;\n  ulonglong uVar7;\n  ulonglong uVar8;\n  ulonglong uVar9;\n  char cVar10;\n  int iVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  uint uVar16;\n  uint extraout_EDX;\n  byte bVar17;\n  int iVar18;\n  undefined **ppuVar19;\n  int *piVar20;\n  uint uVar21;\n  undefined **ppuVar22;\n  byte bVar23;\n  uint uVar24;\n  uint uVar25;\n  uint uVar26;\n  uint uVar27;\n  bool bVar28;\n  longlong lVar29;\n  ulonglong uVar30;\n  longlong lVar31;\n  longlong lVar32;\n  undefined8 uVar33;\n  uint local_dc;\n  uint local_d8;\n  undefined *local_c4;\n  undefined *local_c0;\n  int local_ac;\n  undefined *local_84;\n  undefined *local_80;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_54;\n  uint local_50;\n  int local_4c;\n  int *local_44;\n  int local_40;\n  char local_2d;\n  undefined4 local_2c;\n  int local_28;\n  undefined8 local_24;\n  uint uVar4;\n  \n  iVar12 = *(int *)(param_1 + 0x124);\n  iVar18 = *(int *)(param_1 + 0x128);\n  iVar11 = iVar18 - iVar12;\n  if (iVar11 < 0x7ffffffd) {\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }\n                    \n  FUN_0011df20(iVar12,iVar18,param_1);\n  iVar11 = 0;\nLAB_001130c6:\n  ppuVar19 = &__DT_PLTGOT;\n  FUN_002481e0(iVar11,&DAT_00315a23);\n  iVar12 = *(int *)(DAT_004144e8 + 8);\n  ppuVar22 = &__DT_PLTGOT;\n  if (iVar12 == 0) goto LAB_0011413b;\n  if (*(char *)(iVar12 + 0x41b8) == '\0') {\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }\n  else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }\n  local_24._0_4_ = (undefined *)0x0;\n  local_24._4_4_ = (undefined *)0x0;\n  if ((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }\n  else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }\n  cVar1 = *(char *)(iVar12 + 0x91d);\n  local_ac = *param_4;\n  local_44 = *(int **)(param_1 + 0x124);\n  local_28 = local_ac;\n  if (local_44 == *(int **)(param_1 + 0x128)) {\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }\n  else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }\n  piVar20 = *(int **)(param_1 + 0x124);\n  if (piVar20 != local_44) {\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }\nLAB_00113d4d:\n  if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }\n  return local_24;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "longlong lVar6;" (type_identifier "longlong") (identifier "lVar6") (; ";")) (declaration "ulonglong uVar7;" (type_identifier "ulonglong") (identifier "uVar7") (; ";")) (declaration "ulonglong uVar8;" (type_identifier "ulonglong") (identifier "uVar8") (; ";")) (declaration "ulonglong uVar9;" (type_identifier "ulonglong") (identifier "uVar9") (; ";")) (declaration "char cVar10;" (primitive_type "char") (identifier "cVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined *puVar15;" (type_identifier "undefined") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint extraout_EDX;" (type_identifier "uint") (identifier "extraout_EDX") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "undefined **ppuVar19;" (type_identifier "undefined") (pointer_declarator "**ppuVar19" (* "*") (pointer_declarator "*ppuVar19" (* "*") (identifier "ppuVar19"))) (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "undefined **ppuVar22;" (type_identifier "undefined") (pointer_declarator "**ppuVar22" (* "*") (pointer_declarator "*ppuVar22" (* "*") (identifier "ppuVar22"))) (; ";")) (declaration "byte bVar23;" (type_identifier "byte") (identifier "bVar23") (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "uint uVar25;" (type_identifier "uint") (identifier "uVar25") (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "bool bVar28;" (primitive_type "bool") (identifier "bVar28") (; ";")) (declaration "longlong lVar29;" (type_identifier "longlong") (identifier "lVar29") (; ";")) (declaration "ulonglong uVar30;" (type_identifier "ulonglong") (identifier "uVar30") (; ";")) (declaration "longlong lVar31;" (type_identifier "longlong") (identifier "lVar31") (; ";")) (declaration "longlong lVar32;" (type_identifier "longlong") (identifier "lVar32") (; ";")) (declaration "undefined8 uVar33;" (type_identifier "undefined8") (identifier "uVar33") (; ";")) (declaration "uint local_dc;" (type_identifier "uint") (identifier "local_dc") (; ";")) (declaration "uint local_d8;" (type_identifier "uint") (identifier "local_d8") (; ";")) (declaration "undefined *local_c4;" (type_identifier "undefined") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4")) (; ";")) (declaration "undefined *local_c0;" (type_identifier "undefined") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0")) (; ";")) (declaration "int local_ac;" (primitive_type "int") (identifier "local_ac") (; ";")) (declaration "undefined *local_84;" (type_identifier "undefined") (pointer_declarator "*local_84" (* "*") (identifier "local_84")) (; ";")) (declaration "undefined *local_80;" (type_identifier "undefined") (pointer_declarator "*local_80" (* "*") (identifier "local_80")) (; ";")) (declaration "uint local_74;" (type_identifier "uint") (identifier "local_74") (; ";")) (declaration "uint local_70;" (type_identifier "uint") (identifier "local_70") (; ";")) (declaration "uint local_6c;" (type_identifier "uint") (identifier "local_6c") (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "int *local_44;" (primitive_type "int") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "char local_2d;" (primitive_type "char") (identifier "local_2d") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "undefined8 local_24;" (type_identifier "undefined8") (identifier "local_24") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (expression_statement "iVar12 = *(int *)(param_1 + 0x124);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x124)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(param_1 + 0x124)" (* "*") (cast_expression "(int *)(param_1 + 0x124)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (expression_statement "iVar18 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x128)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 0x128)" (* "*") (cast_expression "(int *)(param_1 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) (; ";")) (expression_statement "iVar11 = iVar18 - iVar12;" (assignment_expression "iVar11 = iVar18 - iVar12" (identifier "iVar11") (= "=") (binary_expression "iVar18 - iVar12" (identifier "iVar18") (- "-") (identifier "iVar12"))) (; ";")) (if_statement "if (iVar11 < 0x7ffffffd) {\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }\n  else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }" (if "if") (parenthesized_expression "(iVar11 < 0x7ffffffd)" (( "(") (binary_expression "iVar11 < 0x7ffffffd" (identifier "iVar11") (< "<") (number_literal "0x7ffffffd")) () ")")) (compound_statement "{\n    if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }\n  }" ({ "{") (if_statement "if (0 < iVar11) {\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }" (if "if") (parenthesized_expression "(0 < iVar11)" (( "(") (binary_expression "0 < iVar11" (number_literal "0") (< "<") (identifier "iVar11")) () ")")) (compound_statement "{\n      local_44 = (int *)(iVar11 >> 2);\n      goto LAB_00113091;\n    }" ({ "{") (expression_statement "local_44 = (int *)(iVar11 >> 2);" (assignment_expression "local_44 = (int *)(iVar11 >> 2)" (identifier "local_44") (= "=") (cast_expression "(int *)(iVar11 >> 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 >> 2)" (( "(") (binary_expression "iVar11 >> 2" (identifier "iVar11") (>> ">>") (number_literal "2")) () ")")))) (; ";")) (goto_statement "goto LAB_00113091;" (goto "goto") (statement_identifier "LAB_00113091") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }" (else "else") (compound_statement "{\n    local_44 = (int *)0x1fffffff;\nLAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);\n  }" ({ "{") (expression_statement "local_44 = (int *)0x1fffffff;" (assignment_expression "local_44 = (int *)0x1fffffff" (identifier "local_44") (= "=") (cast_expression "(int *)0x1fffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1fffffff"))) (; ";")) (labeled_statement "LAB_00113091:\n    do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);" (statement_identifier "LAB_00113091") (: ":") (do_statement "do {\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    } while (local_44 != (int *)0x0);" (do "do") (compound_statement "{\n      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);\n      if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }\n      local_44 = (int *)((int)local_44 >> 1);\n    }" ({ "{") (expression_statement "iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);" (assignment_expression "iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23)" (identifier "iVar11") (= "=") (call_expression "FUN_00246610((int)local_44 << 2,&DAT_00315a23)" (identifier "FUN_00246610") (argument_list "((int)local_44 << 2,&DAT_00315a23)" (( "(") (binary_expression "(int)local_44 << 2" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (<< "<<") (number_literal "2")) (, ",") (pointer_expression "&DAT_00315a23" (& "&") (identifier "DAT_00315a23")) () ")")))) (; ";")) (if_statement "if (iVar11 != 0) {\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);\n        goto LAB_001130c6;\n      }" ({ "{") (expression_statement "FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);" (call_expression "FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1)" (identifier "FUN_0011e850") (argument_list "(iVar12,iVar18,iVar11,local_44,param_1)" (( "(") (identifier "iVar12") (, ",") (identifier "iVar18") (, ",") (identifier "iVar11") (, ",") (identifier "local_44") (, ",") (identifier "param_1") () ")"))) (; ";")) (goto_statement "goto LAB_001130c6;" (goto "goto") (statement_identifier "LAB_001130c6") (; ";")) (} "}"))) (expression_statement "local_44 = (int *)((int)local_44 >> 1);" (assignment_expression "local_44 = (int *)((int)local_44 >> 1)" (identifier "local_44") (= "=") (cast_expression "(int *)((int)local_44 >> 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_44 >> 1)" (( "(") (binary_expression "(int)local_44 >> 1" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (>> ">>") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_44 != (int *)0x0)" (( "(") (binary_expression "local_44 != (int *)0x0" (identifier "local_44") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";"))) (} "}")))) (expression_statement "FUN_0011df20(iVar12,iVar18,param_1);" (call_expression "FUN_0011df20(iVar12,iVar18,param_1)" (identifier "FUN_0011df20") (argument_list "(iVar12,iVar18,param_1)" (( "(") (identifier "iVar12") (, ",") (identifier "iVar18") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_001130c6:\n  ppuVar19 = &__DT_PLTGOT;" (statement_identifier "LAB_001130c6") (: ":") (expression_statement "ppuVar19 = &__DT_PLTGOT;" (assignment_expression "ppuVar19 = &__DT_PLTGOT" (identifier "ppuVar19") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";"))) (expression_statement "FUN_002481e0(iVar11,&DAT_00315a23);" (call_expression "FUN_002481e0(iVar11,&DAT_00315a23)" (identifier "FUN_002481e0") (argument_list "(iVar11,&DAT_00315a23)" (( "(") (identifier "iVar11") (, ",") (pointer_expression "&DAT_00315a23" (& "&") (identifier "DAT_00315a23")) () ")"))) (; ";")) (expression_statement "iVar12 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "ppuVar22 = &__DT_PLTGOT;" (assignment_expression "ppuVar22 = &__DT_PLTGOT" (identifier "ppuVar22") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (if_statement "if (iVar12 == 0) goto LAB_0011413b;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0011413b;" (goto "goto") (statement_identifier "LAB_0011413b") (; ";"))) (if_statement "if (*(char *)(iVar12 + 0x41b8) == '\0') {\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }\n  else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar12 + 0x41b8) == '\0')" (( "(") (binary_expression "*(char *)(iVar12 + 0x41b8) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x41b8)" (* "*") (cast_expression "(char *)(iVar12 + 0x41b8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x41b8)" (( "(") (binary_expression "iVar12 + 0x41b8" (identifier "iVar12") (+ "+") (number_literal "0x41b8")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_c4 = (undefined *)0x0;\n    local_c0 = (undefined *)0x0;\n    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }\n  }" ({ "{") (expression_statement "local_c4 = (undefined *)0x0;" (assignment_expression "local_c4 = (undefined *)0x0" (identifier "local_c4") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_c0 = (undefined *)0x0;" (assignment_expression "local_c0 = (undefined *)0x0" (identifier "local_c0") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }" (if "if") (parenthesized_expression "((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')" (parenthesized_expression "(*(char *)(iVar12 + 0x1a25) == '\0')" (( "(") (binary_expression "*(char *)(iVar12 + 0x1a25) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x1a25)" (* "*") (cast_expression "(char *)(iVar12 + 0x1a25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1a25)" (( "(") (binary_expression "iVar12 + 0x1a25" (identifier "iVar12") (+ "+") (number_literal "0x1a25")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar12 + 0x2931) == '\0')" (( "(") (binary_expression "*(char *)(iVar12 + 0x2931) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x2931)" (* "*") (cast_expression "(char *)(iVar12 + 0x2931)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2931)" (( "(") (binary_expression "iVar12 + 0x2931" (identifier "iVar12") (+ "+") (number_literal "0x2931")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      ppuVar19 = *(undefined ***)(param_2 + 4);\n      local_c0 = ppuVar19[7];\n      puVar15 = *(undefined **)(iVar12 + 0x521c);\n      puVar14 = *(undefined **)(iVar12 + 0x5218);\n      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }\n      local_c4 = ppuVar19[6];\n      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }\n    }" ({ "{") (expression_statement "ppuVar19 = *(undefined ***)(param_2 + 4);" (assignment_expression "ppuVar19 = *(undefined ***)(param_2 + 4)" (identifier "ppuVar19") (= "=") (pointer_expression "*(undefined ***)(param_2 + 4)" (* "*") (cast_expression "(undefined ***)(param_2 + 4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_c0 = ppuVar19[7];" (assignment_expression "local_c0 = ppuVar19[7]" (identifier "local_c0") (= "=") (subscript_expression "ppuVar19[7]" (identifier "ppuVar19") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar15 = *(undefined **)(iVar12 + 0x521c);" (assignment_expression "puVar15 = *(undefined **)(iVar12 + 0x521c)" (identifier "puVar15") (= "=") (pointer_expression "*(undefined **)(iVar12 + 0x521c)" (* "*") (cast_expression "(undefined **)(iVar12 + 0x521c)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x521c)" (( "(") (binary_expression "iVar12 + 0x521c" (identifier "iVar12") (+ "+") (number_literal "0x521c")) () ")"))))) (; ";")) (expression_statement "puVar14 = *(undefined **)(iVar12 + 0x5218);" (assignment_expression "puVar14 = *(undefined **)(iVar12 + 0x5218)" (identifier "puVar14") (= "=") (pointer_expression "*(undefined **)(iVar12 + 0x5218)" (* "*") (cast_expression "(undefined **)(iVar12 + 0x5218)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x5218)" (( "(") (binary_expression "iVar12 + 0x5218" (identifier "iVar12") (+ "+") (number_literal "0x5218")) () ")"))))) (; ";")) (if_statement "if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }" (if "if") (parenthesized_expression "(puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0)" (( "(") (binary_expression "puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0" (binary_expression "puVar15 == (undefined *)0x0" (identifier "puVar15") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (binary_expression "puVar14 == (undefined *)0x0" (identifier "puVar14") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n        puVar14 = ppuVar19[8];\n        puVar15 = ppuVar19[9];\n      }" ({ "{") (expression_statement "puVar14 = ppuVar19[8];" (assignment_expression "puVar14 = ppuVar19[8]" (identifier "puVar14") (= "=") (subscript_expression "ppuVar19[8]" (identifier "ppuVar19") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar15 = ppuVar19[9];" (assignment_expression "puVar15 = ppuVar19[9]" (identifier "puVar15") (= "=") (subscript_expression "ppuVar19[9]" (identifier "ppuVar19") ([ "[") (number_literal "9") (] "]"))) (; ";")) (} "}"))) (expression_statement "local_c4 = ppuVar19[6];" (assignment_expression "local_c4 = ppuVar19[6]" (identifier "local_c4") (= "=") (subscript_expression "ppuVar19[6]" (identifier "ppuVar19") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         ) {\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }" (if "if") (parenthesized_expression "(local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)\n         )" (( "(") (binary_expression "local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)" (binary_expression "local_c0 < puVar15" (identifier "local_c0") (< "<") (identifier "puVar15")) (|| "||") (binary_expression "(uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)" (call_expression "(uint)((int)local_c0 - (int)puVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_c0 - (int)puVar15)" (( "(") (binary_expression "(int)local_c0 - (int)puVar15" (cast_expression "(int)local_c0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c0")) (- "-") (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15"))) () ")"))) (< "<") (call_expression "(uint)(ppuVar19[6] < puVar14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(ppuVar19[6] < puVar14)" (( "(") (binary_expression "ppuVar19[6] < puVar14" (subscript_expression "ppuVar19[6]" (identifier "ppuVar19") ([ "[") (number_literal "6") (] "]")) (< "<") (identifier "puVar14")) () ")"))))) () ")")) (compound_statement "{\n        local_c4 = puVar14;\n        local_c0 = puVar15;\n      }" ({ "{") (expression_statement "local_c4 = puVar14;" (assignment_expression "local_c4 = puVar14" (identifier "local_c4") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "local_c0 = puVar15;" (assignment_expression "local_c0 = puVar15" (identifier "local_c0") (= "=") (identifier "puVar15")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }" (else "else") (compound_statement "{\n    ppuVar19 = &__DT_PLTGOT;\n    local_c4 = *(undefined **)(iVar12 + 0x41bc);\n    local_c0 = *(undefined **)(iVar12 + 0x41c0);\n  }" ({ "{") (expression_statement "ppuVar19 = &__DT_PLTGOT;" (assignment_expression "ppuVar19 = &__DT_PLTGOT" (identifier "ppuVar19") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_c4 = *(undefined **)(iVar12 + 0x41bc);" (assignment_expression "local_c4 = *(undefined **)(iVar12 + 0x41bc)" (identifier "local_c4") (= "=") (pointer_expression "*(undefined **)(iVar12 + 0x41bc)" (* "*") (cast_expression "(undefined **)(iVar12 + 0x41bc)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x41bc)" (( "(") (binary_expression "iVar12 + 0x41bc" (identifier "iVar12") (+ "+") (number_literal "0x41bc")) () ")"))))) (; ";")) (expression_statement "local_c0 = *(undefined **)(iVar12 + 0x41c0);" (assignment_expression "local_c0 = *(undefined **)(iVar12 + 0x41c0)" (identifier "local_c0") (= "=") (pointer_expression "*(undefined **)(iVar12 + 0x41c0)" (* "*") (cast_expression "(undefined **)(iVar12 + 0x41c0)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x41c0)" (( "(") (binary_expression "iVar12 + 0x41c0" (identifier "iVar12") (+ "+") (number_literal "0x41c0")) () ")"))))) (; ";")) (} "}")))) (expression_statement "local_24._0_4_ = (undefined *)0x0;" (assignment_expression "local_24._0_4_ = (undefined *)0x0" (field_expression "local_24._0_4_" (identifier "local_24") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_24._4_4_ = (undefined *)0x0;" (assignment_expression "local_24._4_4_ = (undefined *)0x0" (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }\n  else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }" (if "if") (parenthesized_expression "((param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c)))" (( "(") (binary_expression "(param_3 == 0) &&\n     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))" (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))" (( "(") (comma_expression "local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c)" (assignment_expression "local_44 = *(int **)(param_1 + 0x148)" (identifier "local_44") (= "=") (pointer_expression "*(int **)(param_1 + 0x148)" (* "*") (cast_expression "(int **)(param_1 + 0x148)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x148)" (( "(") (binary_expression "param_1 + 0x148" (identifier "param_1") (+ "+") (number_literal "0x148")) () ")"))))) (, ",") (binary_expression "local_44 != *(undefined4 **)(param_1 + 0x14c)" (identifier "local_44") (!= "!=") (pointer_expression "*(undefined4 **)(param_1 + 0x14c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x14c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x14c)" (( "(") (binary_expression "param_1 + 0x14c" (identifier "param_1") (+ "+") (number_literal "0x14c")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n    do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    iVar12 = *(int *)(DAT_004144e8 + 8);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }\n    ppuVar22 = ppuVar19;\n    if (iVar12 == 0) {\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }\n  }" ({ "{") (do_statement "do {\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);" (do "do") (compound_statement "{\n      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);\n      if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }\n      ppuVar19 = (undefined **)*local_44;\n      bVar2 = *(byte *)(ppuVar19 + 7);\n      if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }\n      ppuVar19[1] = (undefined *)0x0;\n      ppuVar19[2] = (undefined *)0x0;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 1;\n      if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }\n      ppuVar19[5] = (undefined *)local_24;\n      ppuVar19[6] = local_24._4_4_;\n      *(byte *)(ppuVar19 + 7) = bVar2 | 5;\n      if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }\n      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);\n      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];\n      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;\n      local_44 = local_44 + 1;\n    }" ({ "{") (expression_statement "lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);" (assignment_expression "lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44)" (identifier "lVar32") (= "=") (call_expression "(**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44)" (parenthesized_expression "(**(code **)(*(int *)*local_44 + 0xc))" (( "(") (pointer_expression "**(code **)(*(int *)*local_44 + 0xc)" (* "*") (pointer_expression "*(code **)(*(int *)*local_44 + 0xc)" (* "*") (cast_expression "(code **)(*(int *)*local_44 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*local_44 + 0xc)" (( "(") (binary_expression "*(int *)*local_44 + 0xc" (pointer_expression "*(int *)*local_44" (* "*") (cast_expression "(int *)*local_44" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_44" (* "*") (identifier "local_44")))) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "((int *)*local_44)" (( "(") (cast_expression "(int *)*local_44" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) () ")")))) (; ";")) (if_statement "if (lVar32 != 0) {\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }" (if "if") (parenthesized_expression "(lVar32 != 0)" (( "(") (binary_expression "lVar32 != 0" (identifier "lVar32") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);\n        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);\n        local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));\n      }" ({ "{") (expression_statement "lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1);" (assignment_expression "lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1)" (identifier "lVar6") (= "=") (binary_expression "lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1)" (identifier "lVar32") (+ "+") (call_expression "CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1)" (identifier "CONCAT44") (argument_list "(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)\n                                  ,(undefined *)local_24 + -1)" (( "(") (binary_expression "local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)" (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_")) (+ "+") (parenthesized_expression "(((undefined *)local_24 != (undefined *)0x0) - 1)" (( "(") (binary_expression "((undefined *)local_24 != (undefined *)0x0) - 1" (parenthesized_expression "((undefined *)local_24 != (undefined *)0x0)" (( "(") (binary_expression "(undefined *)local_24 != (undefined *)0x0" (cast_expression "(undefined *)local_24" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_24")) (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (- "-") (number_literal "1")) () ")"))) (, ",") (binary_expression "(undefined *)local_24 + -1" (cast_expression "(undefined *)local_24" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_24")) (+ "+") (number_literal "-1")) () ")"))))) (; ";")) (expression_statement "local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);" (assignment_expression "local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6)" (field_expression "local_24._0_4_" (identifier "local_24") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(undefined *)(-(int)lVar32 & (uint)lVar6)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(-(int)lVar32 & (uint)lVar6)" (( "(") (binary_expression "-(int)lVar32 & (uint)lVar6" (unary_expression "-(int)lVar32" (- "-") (cast_expression "(int)lVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar32"))) (& "&") (cast_expression "(uint)lVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar6"))) () ")")))) (; ";")) (expression_statement "local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20));" (assignment_expression "local_24._4_4_ =\n             (undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20))" (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(undefined *)\n             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20))" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20))" (( "(") (binary_expression "-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &\n             (uint)((ulonglong)lVar6 >> 0x20)" (unary_expression "-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0))" (- "-") (parenthesized_expression "((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0))" (( "(") (binary_expression "(int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)" (cast_expression "(int)((ulonglong)lVar32 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar32 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar32 >> 0x20" (cast_expression "(ulonglong)lVar32" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar32")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (call_expression "(uint)((int)lVar32 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)lVar32 != 0)" (( "(") (binary_expression "(int)lVar32 != 0" (cast_expression "(int)lVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar32")) (!= "!=") (number_literal "0")) () ")")))) () ")"))) (& "&") (call_expression "(uint)((ulonglong)lVar6 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar6 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar6")) (>> ">>") (number_literal "0x20")) () ")")))) () ")")))) (; ";")) (} "}"))) (expression_statement "ppuVar19 = (undefined **)*local_44;" (assignment_expression "ppuVar19 = (undefined **)*local_44" (identifier "ppuVar19") (= "=") (cast_expression "(undefined **)*local_44" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*local_44" (* "*") (identifier "local_44")))) (; ";")) (expression_statement "bVar2 = *(byte *)(ppuVar19 + 7);" (assignment_expression "bVar2 = *(byte *)(ppuVar19 + 7)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(ppuVar19 + 7)" (* "*") (cast_expression "(byte *)(ppuVar19 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar19 + 7)" (( "(") (binary_expression "ppuVar19 + 7" (identifier "ppuVar19") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (if_statement "if ((bVar2 & 1) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }" (if "if") (parenthesized_expression "((bVar2 & 1) != 0)" (( "(") (binary_expression "(bVar2 & 1) != 0" (parenthesized_expression "(bVar2 & 1)" (( "(") (binary_expression "bVar2 & 1" (identifier "bVar2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_000da200("../../gold/output.h",0x142,"set_address");\n      }" ({ "{") (expression_statement "FUN_000da200("../../gold/output.h",0x142,"set_address");" (call_expression "FUN_000da200("../../gold/output.h",0x142,"set_address")" (identifier "FUN_000da200") (argument_list "("../../gold/output.h",0x142,"set_address")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x142") (, ",") (string_literal ""set_address"" (" """) (string_content "set_address") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "ppuVar19[1] = (undefined *)0x0;" (assignment_expression "ppuVar19[1] = (undefined *)0x0" (subscript_expression "ppuVar19[1]" (identifier "ppuVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppuVar19[2] = (undefined *)0x0;" (assignment_expression "ppuVar19[2] = (undefined *)0x0" (subscript_expression "ppuVar19[2]" (identifier "ppuVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(byte *)(ppuVar19 + 7) = bVar2 | 1;" (assignment_expression "*(byte *)(ppuVar19 + 7) = bVar2 | 1" (pointer_expression "*(byte *)(ppuVar19 + 7)" (* "*") (cast_expression "(byte *)(ppuVar19 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar19 + 7)" (( "(") (binary_expression "ppuVar19 + 7" (identifier "ppuVar19") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "bVar2 | 1" (identifier "bVar2") (| "|") (number_literal "1"))) (; ";")) (if_statement "if ((bVar2 & 4) != 0) {\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }" (if "if") (parenthesized_expression "((bVar2 & 4) != 0)" (( "(") (binary_expression "(bVar2 & 4) != 0" (parenthesized_expression "(bVar2 & 4)" (( "(") (binary_expression "bVar2 & 4" (identifier "bVar2") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");\n      }" ({ "{") (expression_statement "FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");" (call_expression "FUN_000da200("../../gold/output.h",0x14b,"set_file_offset")" (identifier "FUN_000da200") (argument_list "("../../gold/output.h",0x14b,"set_file_offset")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x14b") (, ",") (string_literal ""set_file_offset"" (" """) (string_content "set_file_offset") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "ppuVar19[5] = (undefined *)local_24;" (assignment_expression "ppuVar19[5] = (undefined *)local_24" (subscript_expression "ppuVar19[5]" (identifier "ppuVar19") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(undefined *)local_24" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_24"))) (; ";")) (expression_statement "ppuVar19[6] = local_24._4_4_;" (assignment_expression "ppuVar19[6] = local_24._4_4_" (subscript_expression "ppuVar19[6]" (identifier "ppuVar19") ([ "[") (number_literal "6") (] "]")) (= "=") (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_"))) (; ";")) (expression_statement "*(byte *)(ppuVar19 + 7) = bVar2 | 5;" (assignment_expression "*(byte *)(ppuVar19 + 7) = bVar2 | 5" (pointer_expression "*(byte *)(ppuVar19 + 7)" (* "*") (cast_expression "(byte *)(ppuVar19 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppuVar19 + 7)" (( "(") (binary_expression "ppuVar19 + 7" (identifier "ppuVar19") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "bVar2 | 5" (identifier "bVar2") (| "|") (number_literal "5"))) (; ";")) (if_statement "if ((bVar2 & 2) == 0) {\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }" (if "if") (parenthesized_expression "((bVar2 & 2) == 0)" (( "(") (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" (( "(") (binary_expression "bVar2 & 2" (identifier "bVar2") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }\n        ppuVar19 = (undefined **)*local_44;\n        if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }\n      }" ({ "{") (expression_statement "(**(code **)(*ppuVar19 + 0x38))(ppuVar19);" (call_expression "(**(code **)(*ppuVar19 + 0x38))(ppuVar19)" (parenthesized_expression "(**(code **)(*ppuVar19 + 0x38))" (( "(") (pointer_expression "**(code **)(*ppuVar19 + 0x38)" (* "*") (pointer_expression "*(code **)(*ppuVar19 + 0x38)" (* "*") (cast_expression "(code **)(*ppuVar19 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*ppuVar19 + 0x38)" (( "(") (binary_expression "*ppuVar19 + 0x38" (pointer_expression "*ppuVar19" (* "*") (identifier "ppuVar19")) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(ppuVar19)" (( "(") (identifier "ppuVar19") () ")"))) (; ";")) (if_statement "if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }" (if "if") (parenthesized_expression "(((uint)ppuVar19[7] & 2) == 0)" (( "(") (binary_expression "((uint)ppuVar19[7] & 2) == 0" (parenthesized_expression "((uint)ppuVar19[7] & 2)" (( "(") (binary_expression "(uint)ppuVar19[7] & 2" (cast_expression "(uint)ppuVar19[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppuVar19[7]" (identifier "ppuVar19") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");\n        }" ({ "{") (expression_statement "FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");" (call_expression "FUN_000da200("../../gold/output.h",0x163,"finalize_data_size")" (identifier "FUN_000da200") (argument_list "("../../gold/output.h",0x163,"finalize_data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x163") (, ",") (string_literal ""finalize_data_size"" (" """) (string_content "finalize_data_size") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "ppuVar19 = (undefined **)*local_44;" (assignment_expression "ppuVar19 = (undefined **)*local_44" (identifier "ppuVar19") (= "=") (cast_expression "(undefined **)*local_44" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*local_44" (* "*") (identifier "local_44")))) (; ";")) (if_statement "if (((uint)ppuVar19[7] & 2) == 0) {\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }" (if "if") (parenthesized_expression "(((uint)ppuVar19[7] & 2) == 0)" (( "(") (binary_expression "((uint)ppuVar19[7] & 2) == 0" (parenthesized_expression "((uint)ppuVar19[7] & 2)" (( "(") (binary_expression "(uint)ppuVar19[7] & 2" (cast_expression "(uint)ppuVar19[7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppuVar19[7]" (identifier "ppuVar19") ([ "[") (number_literal "7") (] "]"))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n          FUN_000da200("../../gold/output.h",0xcf,"data_size");\n        }" ({ "{") (expression_statement "FUN_000da200("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_000da200("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_000da200") (argument_list "("../../gold/output.h",0xcf,"data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xcf") (, ",") (string_literal ""data_size"" (" """) (string_content "data_size") (" """)) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);" (assignment_expression "bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3])" (identifier "bVar28") (= "=") (call_expression "CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3])" (identifier "CARRY4") (argument_list "((uint)(undefined *)local_24,(uint)ppuVar19[3])" (( "(") (cast_expression "(uint)(undefined *)local_24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(undefined *)local_24" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_24"))) (, ",") (cast_expression "(uint)ppuVar19[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppuVar19[3]" (identifier "ppuVar19") ([ "[") (number_literal "3") (] "]"))) () ")")))) (; ";")) (expression_statement "local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];" (assignment_expression "local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3]" (field_expression "local_24._0_4_" (identifier "local_24") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "(undefined *)local_24 + (int)ppuVar19[3]" (cast_expression "(undefined *)local_24" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_24")) (+ "+") (cast_expression "(int)ppuVar19[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppuVar19[3]" (identifier "ppuVar19") ([ "[") (number_literal "3") (] "]"))))) (; ";")) (expression_statement "local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;" (assignment_expression "local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28" (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_")) (= "=") (binary_expression "local_24._4_4_ + (int)ppuVar19[4] + bVar28" (binary_expression "local_24._4_4_ + (int)ppuVar19[4]" (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_")) (+ "+") (cast_expression "(int)ppuVar19[4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppuVar19[4]" (identifier "ppuVar19") ([ "[") (number_literal "4") (] "]")))) (+ "+") (identifier "bVar28"))) (; ";")) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(undefined4 **)(param_1 + 0x14c) != local_44)" (( "(") (binary_expression "*(undefined4 **)(param_1 + 0x14c) != local_44" (pointer_expression "*(undefined4 **)(param_1 + 0x14c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x14c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x14c)" (( "(") (binary_expression "param_1 + 0x14c" (identifier "param_1") (+ "+") (number_literal "0x14c")) () ")")))) (!= "!=") (identifier "local_44")) () ")")) (; ";")) (expression_statement "local_2c = *(undefined4 *)(param_1 + 0x170);" (assignment_expression "local_2c = *(undefined4 *)(param_1 + 0x170)" (identifier "local_2c") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x170)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x170)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x170)" (( "(") (binary_expression "param_1 + 0x170" (identifier "param_1") (+ "+") (number_literal "0x170")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\nLAB_0011314a:\n      local_2c = 0;\n    }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" (* "*") (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0011314a:\n      local_2c = 0;\n    }" ({ "{") (labeled_statement "LAB_0011314a:\n      local_2c = 0;" (statement_identifier "LAB_0011314a") (: ":") (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";"))) (} "}"))) (expression_statement "ppuVar22 = ppuVar19;" (assignment_expression "ppuVar22 = ppuVar19" (identifier "ppuVar22") (= "=") (identifier "ppuVar19")) (; ";")) (if_statement "if (iVar12 == 0) {\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);\n    }" ({ "{") (labeled_statement "LAB_0011413b:\n                    \n      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);" (statement_identifier "LAB_0011413b") (: ":") (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22)" (identifier "FUN_000da200") (argument_list "("../../gold/parameters.h",0x5c,"options",ppuVar22)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "ppuVar22") () ")"))) (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }" (else "else") (compound_statement "{\n    local_2c = *(undefined4 *)(param_1 + 0x170);\n    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;\n  }" ({ "{") (expression_statement "local_2c = *(undefined4 *)(param_1 + 0x170);" (assignment_expression "local_2c = *(undefined4 *)(param_1 + 0x170)" (identifier "local_2c") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x170)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x170)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x170)" (( "(") (binary_expression "param_1 + 0x170" (identifier "param_1") (+ "+") (number_literal "0x170")) () ")"))))) (; ";")) (if_statement "if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;" (if "if") (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" (* "*") (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0011314a;" (goto "goto") (statement_identifier "LAB_0011314a") (; ";"))) (} "}")))) (expression_statement "cVar1 = *(char *)(iVar12 + 0x91d);" (assignment_expression "cVar1 = *(char *)(iVar12 + 0x91d)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(iVar12 + 0x91d)" (* "*") (cast_expression "(char *)(iVar12 + 0x91d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x91d)" (( "(") (binary_expression "iVar12 + 0x91d" (identifier "iVar12") (+ "+") (number_literal "0x91d")) () ")"))))) (; ";")) (expression_statement "local_ac = *param_4;" (assignment_expression "local_ac = *param_4" (identifier "local_ac") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "local_44 = *(int **)(param_1 + 0x124);" (assignment_expression "local_44 = *(int **)(param_1 + 0x124)" (identifier "local_44") (= "=") (pointer_expression "*(int **)(param_1 + 0x124)" (* "*") (cast_expression "(int **)(param_1 + 0x124)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (expression_statement "local_28 = local_ac;" (assignment_expression "local_28 = local_ac" (identifier "local_28") (= "=") (identifier "local_ac")) (; ";")) (if_statement "if (local_44 == *(int **)(param_1 + 0x128)) {\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }\n  else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }" (if "if") (parenthesized_expression "(local_44 == *(int **)(param_1 + 0x128))" (( "(") (binary_expression "local_44 == *(int **)(param_1 + 0x128)" (identifier "local_44") (== "==") (pointer_expression "*(int **)(param_1 + 0x128)" (* "*") (cast_expression "(int **)(param_1 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) () ")")) (compound_statement "{\n    lVar32 = local_24;\n    if (param_3 == 0) goto LAB_00113d4d;\nLAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);\n    local_24._0_4_ = (undefined *)lVar32;\n    iVar12 = *(int *)(param_2 + 4);\n    if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }\n    local_24 = lVar32;\n    local_44 = *(int **)(param_1 + 0x128);\n  }" ({ "{") (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" (identifier "lVar32") (= "=") (identifier "local_24")) (; ";")) (if_statement "if (param_3 == 0) goto LAB_00113d4d;" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00113d4d;" (goto "goto") (statement_identifier "LAB_00113d4d") (; ";"))) (labeled_statement "LAB_00113ce7:\n    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);" (statement_identifier "LAB_00113ce7") (: ":") (expression_statement "local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);" (assignment_expression "local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20)" (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(undefined *)((ulonglong)lVar32 >> 0x20)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)lVar32 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar32 >> 0x20" (cast_expression "(ulonglong)lVar32" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar32")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_24._0_4_ = (undefined *)lVar32;" (assignment_expression "local_24._0_4_ = (undefined *)lVar32" (field_expression "local_24._0_4_" (identifier "local_24") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(undefined *)lVar32" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "lVar32"))) (; ";")) (expression_statement "iVar12 = *(int *)(param_2 + 4);" (assignment_expression "iVar12 = *(int *)(param_2 + 4)" (identifier "iVar12") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar12 + 0x30) != '\0') {\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar12 + 0x30) != '\0')" (( "(") (binary_expression "*(char *)(iVar12 + 0x30) != '\0'" (pointer_expression "*(char *)(iVar12 + 0x30)" (* "*") (cast_expression "(char *)(iVar12 + 0x30)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar18 = *(int *)(DAT_004144e8 + 8);\n      if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }\n      local_40 = *(int *)(iVar18 + 0x521c);\n      local_44 = *(int **)(iVar18 + 0x5218);\n      if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }\n      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;\n      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));\n      if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }\n      piVar20 = *(int **)(param_1 + 0x154);\n      local_24._0_4_ = (undefined *)uVar25;\n      local_24._4_4_ = (undefined *)uVar26;\n      if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }\n      local_44 = *(int **)(param_1 + 0x124);\n      iVar12 = *local_44;\n      while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }\n      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);\n      if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }\n    }" ({ "{") (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar18 == 0) {\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_24 = lVar32;\n                    \n        FUN_00106b00();\n      }" ({ "{") (expression_statement "local_24 = lVar32;" (assignment_expression "local_24 = lVar32" (identifier "local_24") (= "=") (identifier "lVar32")) (; ";")) (expression_statement "FUN_00106b00();" (call_expression "FUN_00106b00()" (identifier "FUN_00106b00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_40 = *(int *)(iVar18 + 0x521c);" (assignment_expression "local_40 = *(int *)(iVar18 + 0x521c)" (identifier "local_40") (= "=") (pointer_expression "*(int *)(iVar18 + 0x521c)" (* "*") (cast_expression "(int *)(iVar18 + 0x521c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x521c)" (( "(") (binary_expression "iVar18 + 0x521c" (identifier "iVar18") (+ "+") (number_literal "0x521c")) () ")"))))) (; ";")) (expression_statement "local_44 = *(int **)(iVar18 + 0x5218);" (assignment_expression "local_44 = *(int **)(iVar18 + 0x5218)" (identifier "local_44") (= "=") (pointer_expression "*(int **)(iVar18 + 0x5218)" (* "*") (cast_expression "(int **)(iVar18 + 0x5218)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 0x5218)" (( "(") (binary_expression "iVar18 + 0x5218" (identifier "iVar18") (+ "+") (number_literal "0x5218")) () ")"))))) (; ";")) (if_statement "if (local_40 == 0 && local_44 == (int *)0x0) {\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }" (if "if") (parenthesized_expression "(local_40 == 0 && local_44 == (int *)0x0)" (( "(") (binary_expression "local_40 == 0 && local_44 == (int *)0x0" (binary_expression "local_40 == 0" (identifier "local_40") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_44 == (int *)0x0" (identifier "local_44") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n        local_40 = *(int *)(iVar12 + 0x24);\n        local_44 = *(int **)(iVar12 + 0x20);\n      }" ({ "{") (expression_statement "local_40 = *(int *)(iVar12 + 0x24);" (assignment_expression "local_40 = *(int *)(iVar12 + 0x24)" (identifier "local_40") (= "=") (pointer_expression "*(int *)(iVar12 + 0x24)" (* "*") (cast_expression "(int *)(iVar12 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "local_44 = *(int **)(iVar12 + 0x20);" (assignment_expression "local_44 = *(int **)(iVar12 + 0x20)" (identifier "local_44") (= "=") (pointer_expression "*(int **)(iVar12 + 0x20)" (* "*") (cast_expression "(int **)(iVar12 + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar25 = (uint)(undefined *)local_24 & -(int)local_44;" (assignment_expression "uVar25 = (uint)(undefined *)local_24 & -(int)local_44" (identifier "uVar25") (= "=") (binary_expression "(uint)(undefined *)local_24 & -(int)local_44" (cast_expression "(uint)(undefined *)local_24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(undefined *)local_24" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_24"))) (& "&") (unary_expression "-(int)local_44" (- "-") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44"))))) (; ";")) (expression_statement "uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));" (assignment_expression "uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0))" (identifier "uVar26") (= "=") (binary_expression "(uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0))" (cast_expression "(uint)local_24._4_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_"))) (& "&") (unary_expression "-(local_40 + (uint)(local_44 != (int *)0x0))" (- "-") (parenthesized_expression "(local_40 + (uint)(local_44 != (int *)0x0))" (( "(") (binary_expression "local_40 + (uint)(local_44 != (int *)0x0)" (identifier "local_40") (+ "+") (call_expression "(uint)(local_44 != (int *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_44 != (int *)0x0)" (( "(") (binary_expression "local_44 != (int *)0x0" (identifier "local_44") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")))) () ")"))))) (; ";")) (if_statement "if (uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }" (if "if") (parenthesized_expression "(uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24))" (( "(") (binary_expression "uVar26 < local_24._4_4_ ||\n          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)" (binary_expression "uVar26 < local_24._4_4_" (identifier "uVar26") (< "<") (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_"))) (|| "||") (binary_expression "uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)" (binary_expression "uVar26 - (int)local_24._4_4_" (identifier "uVar26") (- "-") (cast_expression "(int)local_24._4_4_" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_")))) (< "<") (call_expression "(uint)(uVar25 < (undefined *)local_24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar25 < (undefined *)local_24)" (( "(") (binary_expression "uVar25 < (undefined *)local_24" (identifier "uVar25") (< "<") (cast_expression "(undefined *)local_24" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_24"))) () ")"))))) () ")")) (compound_statement "{\n        bVar28 = CARRY4(uVar25,(uint)local_44);\n        uVar25 = uVar25 + (int)local_44;\n        uVar26 = uVar26 + local_40 + (uint)bVar28;\n      }" ({ "{") (expression_statement "bVar28 = CARRY4(uVar25,(uint)local_44);" (assignment_expression "bVar28 = CARRY4(uVar25,(uint)local_44)" (identifier "bVar28") (= "=") (call_expression "CARRY4(uVar25,(uint)local_44)" (identifier "CARRY4") (argument_list "(uVar25,(uint)local_44)" (( "(") (identifier "uVar25") (, ",") (cast_expression "(uint)local_44" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_44")) () ")")))) (; ";")) (expression_statement "uVar25 = uVar25 + (int)local_44;" (assignment_expression "uVar25 = uVar25 + (int)local_44" (identifier "uVar25") (= "=") (binary_expression "uVar25 + (int)local_44" (identifier "uVar25") (+ "+") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")))) (; ";")) (expression_statement "uVar26 = uVar26 + local_40 + (uint)bVar28;" (assignment_expression "uVar26 = uVar26 + local_40 + (uint)bVar28" (identifier "uVar26") (= "=") (binary_expression "uVar26 + local_40 + (uint)bVar28" (binary_expression "uVar26 + local_40" (identifier "uVar26") (+ "+") (identifier "local_40")) (+ "+") (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")))) (; ";")) (} "}"))) (expression_statement "piVar20 = *(int **)(param_1 + 0x154);" (assignment_expression "piVar20 = *(int **)(param_1 + 0x154)" (identifier "piVar20") (= "=") (pointer_expression "*(int **)(param_1 + 0x154)" (* "*") (cast_expression "(int **)(param_1 + 0x154)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x154)" (( "(") (binary_expression "param_1 + 0x154" (identifier "param_1") (+ "+") (number_literal "0x154")) () ")"))))) (; ";")) (expression_statement "local_24._0_4_ = (undefined *)uVar25;" (assignment_expression "local_24._0_4_ = (undefined *)uVar25" (field_expression "local_24._0_4_" (identifier "local_24") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(undefined *)uVar25" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar25"))) (; ";")) (expression_statement "local_24._4_4_ = (undefined *)uVar26;" (assignment_expression "local_24._4_4_ = (undefined *)uVar26" (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(undefined *)uVar26" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar26"))) (; ";")) (if_statement "if (piVar20 != *(int **)(param_1 + 0x158)) {\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }" (if "if") (parenthesized_expression "(piVar20 != *(int **)(param_1 + 0x158))" (( "(") (binary_expression "piVar20 != *(int **)(param_1 + 0x158)" (identifier "piVar20") (!= "!=") (pointer_expression "*(int **)(param_1 + 0x158)" (* "*") (cast_expression "(int **)(param_1 + 0x158)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x158)" (( "(") (binary_expression "param_1 + 0x158" (identifier "param_1") (+ "+") (number_literal "0x158")) () ")"))))) () ")")) (compound_statement "{\n        do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);\n        if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }\n      }" ({ "{") (do_statement "do {\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        } while (*(int **)(param_1 + 0x158) != piVar20);" (do "do") (compound_statement "{\n          piVar5 = (int *)*piVar20;\n          if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }\n          piVar20 = piVar20 + 1;\n        }" ({ "{") (expression_statement "piVar5 = (int *)*piVar20;" (assignment_expression "piVar5 = (int *)*piVar20" (identifier "piVar5") (= "=") (cast_expression "(int *)*piVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar20" (* "*") (identifier "piVar20")))) (; ";")) (if_statement "if (piVar5 != (int *)0x0) {\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }" (if "if") (parenthesized_expression "(piVar5 != (int *)0x0)" (( "(") (binary_expression "piVar5 != (int *)0x0" (identifier "piVar5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            (**(code **)(*piVar5 + 4))(piVar5);\n            uVar26 = extraout_EDX;\n          }" ({ "{") (expression_statement "(**(code **)(*piVar5 + 4))(piVar5);" (call_expression "(**(code **)(*piVar5 + 4))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 4))" (( "(") (pointer_expression "**(code **)(*piVar5 + 4)" (* "*") (pointer_expression "*(code **)(*piVar5 + 4)" (* "*") (cast_expression "(code **)(*piVar5 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 4)" (( "(") (binary_expression "*piVar5 + 4" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (expression_statement "uVar26 = extraout_EDX;" (assignment_expression "uVar26 = extraout_EDX" (identifier "uVar26") (= "=") (identifier "extraout_EDX")) (; ";")) (} "}"))) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" (identifier "piVar20") (= "=") (binary_expression "piVar20 + 1" (identifier "piVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(param_1 + 0x158) != piVar20)" (( "(") (binary_expression "*(int **)(param_1 + 0x158) != piVar20" (pointer_expression "*(int **)(param_1 + 0x158)" (* "*") (cast_expression "(int **)(param_1 + 0x158)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x158)" (( "(") (binary_expression "param_1 + 0x158" (identifier "param_1") (+ "+") (number_literal "0x158")) () ")")))) (!= "!=") (identifier "piVar20")) () ")")) (; ";")) (if_statement "if (piVar20 != *(int **)(param_1 + 0x154)) {\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }" (if "if") (parenthesized_expression "(piVar20 != *(int **)(param_1 + 0x154))" (( "(") (binary_expression "piVar20 != *(int **)(param_1 + 0x154)" (identifier "piVar20") (!= "!=") (pointer_expression "*(int **)(param_1 + 0x154)" (* "*") (cast_expression "(int **)(param_1 + 0x154)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x154)" (( "(") (binary_expression "param_1 + 0x154" (identifier "param_1") (+ "+") (number_literal "0x154")) () ")"))))) () ")")) (compound_statement "{\n          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);\n          uVar26 = param_1;\n        }" ({ "{") (expression_statement "*(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);" (assignment_expression "*(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154)" (pointer_expression "*(int **)(param_1 + 0x158)" (* "*") (cast_expression "(int **)(param_1 + 0x158)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x158)" (( "(") (binary_expression "param_1 + 0x158" (identifier "param_1") (+ "+") (number_literal "0x158")) () ")")))) (= "=") (pointer_expression "*(int **)(param_1 + 0x154)" (* "*") (cast_expression "(int **)(param_1 + 0x154)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x154)" (( "(") (binary_expression "param_1 + 0x154" (identifier "param_1") (+ "+") (number_literal "0x154")) () ")"))))) (; ";")) (expression_statement "uVar26 = param_1;" (assignment_expression "uVar26 = param_1" (identifier "uVar26") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_44 = *(int **)(param_1 + 0x124);" (assignment_expression "local_44 = *(int **)(param_1 + 0x124)" (identifier "local_44") (= "=") (pointer_expression "*(int **)(param_1 + 0x124)" (* "*") (cast_expression "(int **)(param_1 + 0x124)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" (identifier "iVar12") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (while_statement "while (iVar12 != param_3) {\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }" (while "while") (parenthesized_expression "(iVar12 != param_3)" (( "(") (binary_expression "iVar12 != param_3" (identifier "iVar12") (!= "!=") (identifier "param_3")) () ")")) (compound_statement "{\n        local_44 = local_44 + 1;\n        if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }\n        iVar12 = *local_44;\n      }" ({ "{") (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(int *)(iVar12 + 0x194) == 1) {\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x194) == 1)" (( "(") (binary_expression "*(int *)(iVar12 + 0x194) == 1" (pointer_expression "*(int *)(iVar12 + 0x194)" (* "*") (cast_expression "(int *)(iVar12 + 0x194)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x194)" (( "(") (binary_expression "iVar12 + 0x194" (identifier "iVar12") (+ "+") (number_literal "0x194")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          uVar26 = *(uint *)(iVar12 + 0x15c);\n          iVar18 = *(int *)(iVar12 + 0x160);\n          local_2d = '\0';\n          uVar25 = *(uint *)(iVar12 + 0x16c);\n          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);\n          iVar11 = *(int *)(iVar12 + 0x170);\n          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);\n          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;\n          if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }\n        }" ({ "{") (expression_statement "uVar26 = *(uint *)(iVar12 + 0x15c);" (assignment_expression "uVar26 = *(uint *)(iVar12 + 0x15c)" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x15c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x15c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x15c)" (( "(") (binary_expression "iVar12 + 0x15c" (identifier "iVar12") (+ "+") (number_literal "0x15c")) () ")"))))) (; ";")) (expression_statement "iVar18 = *(int *)(iVar12 + 0x160);" (assignment_expression "iVar18 = *(int *)(iVar12 + 0x160)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(iVar12 + 0x160)" (* "*") (cast_expression "(int *)(iVar12 + 0x160)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x160)" (( "(") (binary_expression "iVar12 + 0x160" (identifier "iVar12") (+ "+") (number_literal "0x160")) () ")"))))) (; ";")) (expression_statement "local_2d = '\0';" (assignment_expression "local_2d = '\0'" (identifier "local_2d") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "uVar25 = *(uint *)(iVar12 + 0x16c);" (assignment_expression "uVar25 = *(uint *)(iVar12 + 0x16c)" (identifier "uVar25") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x16c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x16c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x16c)" (( "(") (binary_expression "iVar12 + 0x16c" (identifier "iVar12") (+ "+") (number_literal "0x16c")) () ")"))))) (; ";")) (expression_statement "uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);" (assignment_expression "uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c)" (identifier "uVar21") (= "=") (binary_expression "uVar26 + *(uint *)(iVar12 + 0x16c)" (identifier "uVar26") (+ "+") (pointer_expression "*(uint *)(iVar12 + 0x16c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x16c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x16c)" (( "(") (binary_expression "iVar12 + 0x16c" (identifier "iVar12") (+ "+") (number_literal "0x16c")) () ")")))))) (; ";")) (expression_statement "iVar11 = *(int *)(iVar12 + 0x170);" (assignment_expression "iVar11 = *(int *)(iVar12 + 0x170)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar12 + 0x170)" (* "*") (cast_expression "(int *)(iVar12 + 0x170)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x170)" (( "(") (binary_expression "iVar12 + 0x170" (identifier "iVar12") (+ "+") (number_literal "0x170")) () ")"))))) (; ";")) (expression_statement "uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28);" (assignment_expression "uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28)" (identifier "uVar33") (= "=") (call_expression "FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28)" (identifier "FUN_001619e0") (argument_list "(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24\n                                ,&local_28)" (( "(") (identifier "iVar12") (, ",") (identifier "param_2") (, ",") (identifier "param_1") (, ",") (number_literal "1") (, ",") (identifier "uVar26") (, ",") (identifier "iVar18") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (pointer_expression "&local_2d" (& "&") (identifier "local_2d")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")")))) (; ";")) (expression_statement "uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21;" (assignment_expression "uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21" (identifier "uVar26") (= "=") (binary_expression "(uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)\n                   | (uint)uVar33 ^ uVar21" (binary_expression "(uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)" (call_expression "(uint)((ulonglong)uVar33 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar33 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar33 >> 0x20" (cast_expression "(ulonglong)uVar33" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar33")) (>> ">>") (number_literal "0x20")) () ")"))) (^ "^") (binary_expression "iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)" (binary_expression "iVar18 + iVar11" (identifier "iVar18") (+ "+") (identifier "iVar11")) (+ "+") (cast_expression "(uint)CARRY4(uVar26,uVar25)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar26,uVar25)" (identifier "CARRY4") (argument_list "(uVar26,uVar25)" (( "(") (identifier "uVar26") (, ",") (identifier "uVar25") () ")")))))) (| "|") (binary_expression "(uint)uVar33 ^ uVar21" (cast_expression "(uint)uVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar33")) (^ "^") (identifier "uVar21")))) (; ";")) (if_statement "if (uVar26 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }" (if "if") (parenthesized_expression "(uVar26 != 0)" (( "(") (binary_expression "uVar26 != 0" (identifier "uVar26") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);\n          }" ({ "{") (expression_statement "FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);" (call_expression "FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21)" (identifier "FUN_000da200") (argument_list "("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21)" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0x1005") (, ",") (string_literal ""set_segment_offsets"" (" """) (string_content "set_segment_offsets") (" """)) (, ",") (identifier "uVar21") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" (identifier "iVar12") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (} "}"))) (expression_statement "lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);" (assignment_expression "lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24)" (identifier "lVar32") (= "=") (call_expression "CONCAT44(local_24._4_4_,(undefined *)local_24)" (identifier "CONCAT44") (argument_list "(local_24._4_4_,(undefined *)local_24)" (( "(") (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_")) (, ",") (cast_expression "(undefined *)local_24" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_24")) () ")")))) (; ";")) (if_statement "if (local_28 != local_ac) {\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }" (if "if") (parenthesized_expression "(local_28 != local_ac)" (( "(") (binary_expression "local_28 != local_ac" (identifier "local_28") (!= "!=") (identifier "local_ac")) () ")")) (compound_statement "{\n                    \n        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);\n      }" ({ "{") (expression_statement "FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);" (call_expression "FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26)" (identifier "FUN_000da200") (argument_list "("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26)" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0x1009") (, ",") (string_literal ""set_segment_offsets"" (" """) (string_content "set_segment_offsets") (" """)) (, ",") (identifier "uVar26") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_24 = lVar32;" (assignment_expression "local_24 = lVar32" (identifier "local_24") (= "=") (identifier "lVar32")) (; ";")) (expression_statement "local_44 = *(int **)(param_1 + 0x128);" (assignment_expression "local_44 = *(int **)(param_1 + 0x128)" (identifier "local_44") (= "=") (pointer_expression "*(int **)(param_1 + 0x128)" (* "*") (cast_expression "(int **)(param_1 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }" (else "else") (compound_statement "{\n    local_4c = 0;\n    uVar30 = CONCAT44(local_c0,local_c4);\n    do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);\n    lVar32 = local_24;\n    if (param_3 != 0) goto LAB_00113ce7;\n  }" ({ "{") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar30 = CONCAT44(local_c0,local_c4);" (assignment_expression "uVar30 = CONCAT44(local_c0,local_c4)" (identifier "uVar30") (= "=") (call_expression "CONCAT44(local_c0,local_c4)" (identifier "CONCAT44") (argument_list "(local_c0,local_c4)" (( "(") (identifier "local_c0") (, ",") (identifier "local_c4") () ")")))) (; ";")) (do_statement "do {\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    } while (*(int **)(param_1 + 0x128) != local_44);" (do "do") (compound_statement "{\n      iVar12 = *local_44;\n      iVar18 = local_4c;\n      if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }\n      local_4c = iVar18;\n      local_44 = local_44 + 1;\n    }" ({ "{") (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" (identifier "iVar12") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (expression_statement "iVar18 = local_4c;" (assignment_expression "iVar18 = local_4c" (identifier "iVar18") (= "=") (identifier "local_4c")) (; ";")) (if_statement "if (*(int *)(iVar12 + 0x194) == 1) {\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x194) == 1)" (( "(") (binary_expression "*(int *)(iVar12 + 0x194) == 1" (pointer_expression "*(int *)(iVar12 + 0x194)" (* "*") (cast_expression "(int *)(iVar12 + 0x194)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x194)" (( "(") (binary_expression "iVar12 + 0x194" (identifier "iVar12") (+ "+") (number_literal "0x194")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);\n        if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }\n        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;\n        iVar18 = *(int *)(DAT_004144e8 + 8);\n        bVar2 = bVar17 & 1;\n        if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }\n        local_54 = *(uint *)(iVar18 + 0x5218);\n        local_50 = *(uint *)(iVar18 + 0x521c);\n        local_6c = *(uint *)(iVar18 + 0x4e70);\n        local_68 = *(uint *)(iVar18 + 0x4e74);\n        if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }\n        lVar6 = CONCAT44(local_50,local_54);\n        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }\n        local_24 = lVar32;\n        if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }\n        local_80 = (undefined *)(uVar9 >> 0x20);\n        local_84 = (undefined *)uVar9;\n        local_70 = (uint)(uVar8 >> 0x20);\n        local_74 = (uint)uVar8;\n        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }\n        local_2d = '\0';\n        iVar12 = *param_4;\n        local_24 = lVar31;\n        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);\n        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }\n        iVar18 = *local_44;\n        if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }\n      }" ({ "{") (expression_statement "cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);" (assignment_expression "cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30)" (identifier "cVar10") (= "=") (pointer_expression "*(char *)(*(int *)(param_2 + 4) + 0x30)" (* "*") (cast_expression "(char *)(*(int *)(param_2 + 4) + 0x30)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 4) + 0x30)" (( "(") (binary_expression "*(int *)(param_2 + 4) + 0x30" (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")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (cVar10 == '\0') {\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }\n        else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }" (if "if") (parenthesized_expression "(cVar10 == '\0')" (( "(") (binary_expression "cVar10 == '\0'" (identifier "cVar10") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }\nLAB_00113530:\n          param_3 = 0;\n        }" ({ "{") (if_statement "if ((iVar12 != param_3) && (param_3 != 0)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }" (if "if") (parenthesized_expression "((iVar12 != param_3) && (param_3 != 0))" (( "(") (binary_expression "(iVar12 != param_3) && (param_3 != 0)" (parenthesized_expression "(iVar12 != param_3)" (( "(") (binary_expression "iVar12 != param_3" (identifier "iVar12") (!= "!=") (identifier "param_3")) () ")")) (&& "&&") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    \n            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");\n          }" ({ "{") (expression_statement "FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");" (call_expression "FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets")" (identifier "FUN_000da200") (argument_list "("../../gold/layout.cc",0xf2b,"set_segment_offsets")" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0xf2b") (, ",") (string_literal ""set_segment_offsets"" (" """) (string_content "set_segment_offsets") (" """)) () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00113530:\n          param_3 = 0;" (statement_identifier "LAB_00113530") (: ":") (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" (identifier "param_3") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }" (else "else") (if_statement "if (iVar12 == param_3) {\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }" (if "if") (parenthesized_expression "(iVar12 == param_3)" (( "(") (binary_expression "iVar12 == param_3" (identifier "iVar12") (== "==") (identifier "param_3")) () ")")) (compound_statement "{\n          if (local_24 == 0) goto LAB_00113530;\n          local_24 = 0;\n          local_ac = *param_4;\n        }" ({ "{") (if_statement "if (local_24 == 0) goto LAB_00113530;" (if "if") (parenthesized_expression "(local_24 == 0)" (( "(") (binary_expression "local_24 == 0" (identifier "local_24") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00113530;" (goto "goto") (statement_identifier "LAB_00113530") (; ";"))) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_ac = *param_4;" (assignment_expression "local_ac = *param_4" (identifier "local_ac") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (} "}"))))) (expression_statement "bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;" (assignment_expression "bVar17 = *(byte *)(iVar12 + 0x19c) >> 1" (identifier "bVar17") (= "=") (binary_expression "*(byte *)(iVar12 + 0x19c) >> 1" (pointer_expression "*(byte *)(iVar12 + 0x19c)" (* "*") (cast_expression "(byte *)(iVar12 + 0x19c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x19c)" (( "(") (binary_expression "iVar12 + 0x19c" (identifier "iVar12") (+ "+") (number_literal "0x19c")) () ")")))) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "bVar2 = bVar17 & 1;" (assignment_expression "bVar2 = bVar17 & 1" (identifier "bVar2") (= "=") (binary_expression "bVar17 & 1" (identifier "bVar17") (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((bVar17 & 1) == 0) {\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }\n        else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }" (if "if") (parenthesized_expression "((bVar17 & 1) == 0)" (( "(") (binary_expression "(bVar17 & 1) == 0" (parenthesized_expression "(bVar17 & 1)" (( "(") (binary_expression "bVar17 & 1" (identifier "bVar17") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          bVar17 = *(byte *)(iVar18 + 0x41b8);\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }\n        }" ({ "{") (if_statement "if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" ({ "{") (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_000da200") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "bVar17 = *(byte *)(iVar18 + 0x41b8);" (assignment_expression "bVar17 = *(byte *)(iVar18 + 0x41b8)" (identifier "bVar17") (= "=") (pointer_expression "*(byte *)(iVar18 + 0x41b8)" (* "*") (cast_expression "(byte *)(iVar18 + 0x41b8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x41b8)" (( "(") (binary_expression "iVar18 + 0x41b8" (identifier "iVar18") (+ "+") (number_literal "0x41b8")) () ")"))))) (; ";")) (expression_statement "uVar7 = uVar30;" (assignment_expression "uVar7 = uVar30" (identifier "uVar7") (= "=") (identifier "uVar30")) (; ";")) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" (identifier "lVar32") (= "=") (identifier "local_24")) (; ";")) (if_statement "if ((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }" (if "if") (parenthesized_expression "((bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0'))))))))" (( "(") (binary_expression "(bVar17 == 0) ||\n             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))" (parenthesized_expression "(bVar17 == 0)" (( "(") (binary_expression "bVar17 == 0" (identifier "bVar17") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))" (( "(") (parenthesized_expression "(bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0'))))))" (( "(") (comma_expression "bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))" (assignment_expression "bVar23 = *(byte *)(iVar18 + 0x253d)" (identifier "bVar23") (= "=") (pointer_expression "*(byte *)(iVar18 + 0x253d)" (* "*") (cast_expression "(byte *)(iVar18 + 0x253d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x253d)" (( "(") (binary_expression "iVar18 + 0x253d" (identifier "iVar18") (+ "+") (number_literal "0x253d")) () ")"))))) (, ",") (binary_expression "*(byte *)(iVar18 + 0x253d) == 0 &&\n              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))" (binary_expression "*(byte *)(iVar18 + 0x253d) == 0" (pointer_expression "*(byte *)(iVar18 + 0x253d)" (* "*") (cast_expression "(byte *)(iVar18 + 0x253d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x253d)" (( "(") (binary_expression "iVar18 + 0x253d" (identifier "iVar18") (+ "+") (number_literal "0x253d")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))" (( "(") (parenthesized_expression "((*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0'))))" (( "(") (binary_expression "(*(uint *)(iVar12 + 0x198) & 2) != 0 ||\n               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))" (binary_expression "(*(uint *)(iVar12 + 0x198) & 2) != 0" (parenthesized_expression "(*(uint *)(iVar12 + 0x198) & 2)" (( "(") (binary_expression "*(uint *)(iVar12 + 0x198) & 2" (pointer_expression "*(uint *)(iVar12 + 0x198)" (* "*") (cast_expression "(uint *)(iVar12 + 0x198)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x198)" (( "(") (binary_expression "iVar12 + 0x198" (identifier "iVar12") (+ "+") (number_literal "0x198")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))" (( "(") (parenthesized_expression "(bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0'))" (( "(") (comma_expression "bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')" (assignment_expression "bVar23 = bVar17" (identifier "bVar23") (= "=") (identifier "bVar17")) (, ",") (binary_expression "(*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')" (binary_expression "(*(uint *)(iVar12 + 0x198) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar12 + 0x198) & 1)" (( "(") (binary_expression "*(uint *)(iVar12 + 0x198) & 1" (pointer_expression "*(uint *)(iVar12 + 0x198)" (* "*") (cast_expression "(uint *)(iVar12 + 0x198)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x198)" (( "(") (binary_expression "iVar12 + 0x198" (identifier "iVar12") (+ "+") (number_literal "0x198")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(cVar10 != '\0')" (( "(") (binary_expression "cVar10 != '\0'" (identifier "cVar10") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) () ")")) () ")"))) () ")")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }\n          }" ({ "{") (if_statement "if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }\n            else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }" (if "if") (parenthesized_expression "((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0))" (( "(") (binary_expression "(*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)" (parenthesized_expression "(*(byte *)(iVar18 + 0x423c) == 0)" (( "(") (binary_expression "*(byte *)(iVar18 + 0x423c) == 0" (pointer_expression "*(byte *)(iVar18 + 0x423c)" (* "*") (cast_expression "(byte *)(iVar18 + 0x423c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x423c)" (( "(") (binary_expression "iVar18 + 0x423c" (identifier "iVar18") (+ "+") (number_literal "0x423c")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(iVar12 + 0x198) & 3) != 0)" (( "(") (binary_expression "(*(byte *)(iVar12 + 0x198) & 3) != 0" (parenthesized_expression "(*(byte *)(iVar12 + 0x198) & 3)" (( "(") (binary_expression "*(byte *)(iVar12 + 0x198) & 3" (pointer_expression "*(byte *)(iVar12 + 0x198)" (* "*") (cast_expression "(byte *)(iVar12 + 0x198)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x198)" (( "(") (binary_expression "iVar12 + 0x198" (identifier "iVar12") (+ "+") (number_literal "0x198")) () ")")))) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              bVar17 = *(byte *)(iVar18 + 0x4170);\n              bVar23 = *(byte *)(iVar18 + 0x4128);\n              if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }\n            }" ({ "{") (expression_statement "bVar17 = *(byte *)(iVar18 + 0x4170);" (assignment_expression "bVar17 = *(byte *)(iVar18 + 0x4170)" (identifier "bVar17") (= "=") (pointer_expression "*(byte *)(iVar18 + 0x4170)" (* "*") (cast_expression "(byte *)(iVar18 + 0x4170)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4170)" (( "(") (binary_expression "iVar18 + 0x4170" (identifier "iVar18") (+ "+") (number_literal "0x4170")) () ")"))))) (; ";")) (expression_statement "bVar23 = *(byte *)(iVar18 + 0x4128);" (assignment_expression "bVar23 = *(byte *)(iVar18 + 0x4128)" (identifier "bVar23") (= "=") (pointer_expression "*(byte *)(iVar18 + 0x4128)" (* "*") (cast_expression "(byte *)(iVar18 + 0x4128)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4128)" (( "(") (binary_expression "iVar18 + 0x4128" (identifier "iVar18") (+ "+") (number_literal "0x4128")) () ")"))))) (; ";")) (if_statement "if (bVar17 == 0) {\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }\n              else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }" (if "if") (parenthesized_expression "(bVar17 == 0)" (( "(") (binary_expression "bVar17 == 0" (identifier "bVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }\n              }" ({ "{") (labeled_statement "LAB_001139b0:\n                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }" (statement_identifier "LAB_001139b0") (: ":") (if_statement "if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }\n                else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }" (if "if") (parenthesized_expression "((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0))" (( "(") (binary_expression "(bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)" (parenthesized_expression "(bVar23 == 0)" (( "(") (binary_expression "bVar23 == 0" (identifier "bVar23") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(*local_44 + 0x198) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(*local_44 + 0x198) & 2) == 0" (parenthesized_expression "(*(byte *)(*local_44 + 0x198) & 2)" (( "(") (binary_expression "*(byte *)(*local_44 + 0x198) & 2" (pointer_expression "*(byte *)(*local_44 + 0x198)" (* "*") (cast_expression "(byte *)(*local_44 + 0x198)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_44 + 0x198)" (( "(") (binary_expression "*local_44 + 0x198" (pointer_expression "*local_44" (* "*") (identifier "local_44")) (+ "+") (number_literal "0x198")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  bVar23 = bVar2;\n                  lVar32 = local_24;\n                }" ({ "{") (labeled_statement "LAB_00113930:\n                  iVar18 = *(int *)(DAT_004144e8 + 8);" (statement_identifier "LAB_00113930") (: ":") (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "bVar23 = bVar2;" (assignment_expression "bVar23 = bVar2" (identifier "bVar23") (= "=") (identifier "bVar2")) (; ";")) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" (identifier "lVar32") (= "=") (identifier "local_24")) (; ";")) (} "}")) (else_clause "else {\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }" (else "else") (compound_statement "{\n                  uVar13 = FUN_0015e510(*local_44);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 != '\0') goto LAB_00113231;\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);\n                  lVar32 = local_24;\n                }" ({ "{") (expression_statement "uVar13 = FUN_0015e510(*local_44);" (assignment_expression "uVar13 = FUN_0015e510(*local_44)" (identifier "uVar13") (= "=") (call_expression "FUN_0015e510(*local_44)" (identifier "FUN_0015e510") (argument_list "(*local_44)" (( "(") (pointer_expression "*local_44" (* "*") (identifier "local_44")) () ")")))) (; ";")) (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((char)uVar13 != '\0') goto LAB_00113231;" (if "if") (parenthesized_expression "((char)uVar13 != '\0')" (( "(") (binary_expression "(char)uVar13 != '\0'" (cast_expression "(char)uVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar13")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00113231;" (goto "goto") (statement_identifier "LAB_00113231") (; ";"))) (if_statement "if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }" ({ "{") (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13)" (identifier "FUN_000da200") (argument_list "("../../gold/parameters.h",0x5c,"options",uVar13)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar7 = *(ulonglong *)(iVar18 + 0x412c);" (assignment_expression "uVar7 = *(ulonglong *)(iVar18 + 0x412c)" (identifier "uVar7") (= "=") (pointer_expression "*(ulonglong *)(iVar18 + 0x412c)" (* "*") (cast_expression "(ulonglong *)(iVar18 + 0x412c)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x412c)" (( "(") (binary_expression "iVar18 + 0x412c" (identifier "iVar18") (+ "+") (number_literal "0x412c")) () ")"))))) (; ";")) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" (identifier "lVar32") (= "=") (identifier "local_24")) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }" (else "else") (compound_statement "{\n                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;\n                if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }\n                bVar23 = bVar17;\n                uVar7 = *(ulonglong *)(iVar18 + 0x4174);\n                lVar32 = local_24;\n              }" ({ "{") (if_statement "if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;" (if "if") (parenthesized_expression "((*(byte *)(iVar12 + 0x198) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(iVar12 + 0x198) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar12 + 0x198) & 2)" (( "(") (binary_expression "*(byte *)(iVar12 + 0x198) & 2" (pointer_expression "*(byte *)(iVar12 + 0x198)" (* "*") (cast_expression "(byte *)(iVar12 + 0x198)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x198)" (( "(") (binary_expression "iVar12 + 0x198" (identifier "iVar12") (+ "+") (number_literal "0x198")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00113930;" (goto "goto") (statement_identifier "LAB_00113930") (; ";"))) (if_statement "if (bVar23 != 0) {\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }" (if "if") (parenthesized_expression "(bVar23 != 0)" (( "(") (binary_expression "bVar23 != 0" (identifier "bVar23") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar13 = FUN_0015e510(iVar12);\n                  iVar18 = *(int *)(DAT_004144e8 + 8);\n                  if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }\n                  if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }\n                }" ({ "{") (expression_statement "uVar13 = FUN_0015e510(iVar12);" (assignment_expression "uVar13 = FUN_0015e510(iVar12)" (identifier "uVar13") (= "=") (call_expression "FUN_0015e510(iVar12)" (identifier "FUN_0015e510") (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")")))) (; ";")) (expression_statement "iVar18 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar18 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((char)uVar13 == '\0') {\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }" (if "if") (parenthesized_expression "((char)uVar13 == '\0')" (( "(") (binary_expression "(char)uVar13 == '\0'" (cast_expression "(char)uVar13" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar13")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }\n                    bVar23 = *(byte *)(iVar18 + 0x4128);\n                    goto LAB_001139b0;\n                  }" ({ "{") (if_statement "if (iVar18 == 0) {\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                      FUN_000da200("../../gold/parameters.h",0x5c,"options");\n                    }" ({ "{") (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_000da200") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "bVar23 = *(byte *)(iVar18 + 0x4128);" (assignment_expression "bVar23 = *(byte *)(iVar18 + 0x4128)" (identifier "bVar23") (= "=") (pointer_expression "*(byte *)(iVar18 + 0x4128)" (* "*") (cast_expression "(byte *)(iVar18 + 0x4128)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4128)" (( "(") (binary_expression "iVar18 + 0x4128" (identifier "iVar18") (+ "+") (number_literal "0x4128")) () ")"))))) (; ";")) (goto_statement "goto LAB_001139b0;" (goto "goto") (statement_identifier "LAB_001139b0") (; ";")) (} "}"))) (if_statement "if (iVar18 == 0) {\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);\n                  }" ({ "{") (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13)" (identifier "FUN_000da200") (argument_list "("../../gold/parameters.h",0x5c,"options",uVar13)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar23 = bVar17;" (assignment_expression "bVar23 = bVar17" (identifier "bVar23") (= "=") (identifier "bVar17")) (; ";")) (expression_statement "uVar7 = *(ulonglong *)(iVar18 + 0x4174);" (assignment_expression "uVar7 = *(ulonglong *)(iVar18 + 0x4174)" (identifier "uVar7") (= "=") (pointer_expression "*(ulonglong *)(iVar18 + 0x4174)" (* "*") (cast_expression "(ulonglong *)(iVar18 + 0x4174)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4174)" (( "(") (binary_expression "iVar18 + 0x4174" (identifier "iVar18") (+ "+") (number_literal "0x4174")) () ")"))))) (; ";")) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" (identifier "lVar32") (= "=") (identifier "local_24")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }" (else "else") (compound_statement "{\n              bVar23 = *(byte *)(iVar18 + 0x423c);\n              uVar7 = *(ulonglong *)(iVar18 + 0x4240);\n            }" ({ "{") (expression_statement "bVar23 = *(byte *)(iVar18 + 0x423c);" (assignment_expression "bVar23 = *(byte *)(iVar18 + 0x423c)" (identifier "bVar23") (= "=") (pointer_expression "*(byte *)(iVar18 + 0x423c)" (* "*") (cast_expression "(byte *)(iVar18 + 0x423c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x423c)" (( "(") (binary_expression "iVar18 + 0x423c" (identifier "iVar18") (+ "+") (number_literal "0x423c")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(ulonglong *)(iVar18 + 0x4240);" (assignment_expression "uVar7 = *(ulonglong *)(iVar18 + 0x4240)" (identifier "uVar7") (= "=") (pointer_expression "*(ulonglong *)(iVar18 + 0x4240)" (* "*") (cast_expression "(ulonglong *)(iVar18 + 0x4240)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4240)" (( "(") (binary_expression "iVar18 + 0x4240" (identifier "iVar18") (+ "+") (number_literal "0x4240")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }" (else "else") (compound_statement "{\n          uVar30 = *(ulonglong *)(iVar12 + 0x164);\nLAB_00113231:\n          bVar23 = bVar2;\n          uVar7 = uVar30;\n          lVar32 = local_24;\n          if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n        }" ({ "{") (expression_statement "uVar30 = *(ulonglong *)(iVar12 + 0x164);" (assignment_expression "uVar30 = *(ulonglong *)(iVar12 + 0x164)" (identifier "uVar30") (= "=") (pointer_expression "*(ulonglong *)(iVar12 + 0x164)" (* "*") (cast_expression "(ulonglong *)(iVar12 + 0x164)" (( "(") (type_descriptor "ulonglong *" (type_identifier "ulonglong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x164)" (( "(") (binary_expression "iVar12 + 0x164" (identifier "iVar12") (+ "+") (number_literal "0x164")) () ")"))))) (; ";")) (labeled_statement "LAB_00113231:\n          bVar23 = bVar2;" (statement_identifier "LAB_00113231") (: ":") (expression_statement "bVar23 = bVar2;" (assignment_expression "bVar23 = bVar2" (identifier "bVar23") (= "=") (identifier "bVar2")) (; ";"))) (expression_statement "uVar7 = uVar30;" (assignment_expression "uVar7 = uVar30" (identifier "uVar7") (= "=") (identifier "uVar30")) (; ";")) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" (identifier "lVar32") (= "=") (identifier "local_24")) (; ";")) (if_statement "if (iVar18 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" ({ "{") (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_000da200") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_54 = *(uint *)(iVar18 + 0x5218);" (assignment_expression "local_54 = *(uint *)(iVar18 + 0x5218)" (identifier "local_54") (= "=") (pointer_expression "*(uint *)(iVar18 + 0x5218)" (* "*") (cast_expression "(uint *)(iVar18 + 0x5218)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x5218)" (( "(") (binary_expression "iVar18 + 0x5218" (identifier "iVar18") (+ "+") (number_literal "0x5218")) () ")"))))) (; ";")) (expression_statement "local_50 = *(uint *)(iVar18 + 0x521c);" (assignment_expression "local_50 = *(uint *)(iVar18 + 0x521c)" (identifier "local_50") (= "=") (pointer_expression "*(uint *)(iVar18 + 0x521c)" (* "*") (cast_expression "(uint *)(iVar18 + 0x521c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x521c)" (( "(") (binary_expression "iVar18 + 0x521c" (identifier "iVar18") (+ "+") (number_literal "0x521c")) () ")"))))) (; ";")) (expression_statement "local_6c = *(uint *)(iVar18 + 0x4e70);" (assignment_expression "local_6c = *(uint *)(iVar18 + 0x4e70)" (identifier "local_6c") (= "=") (pointer_expression "*(uint *)(iVar18 + 0x4e70)" (* "*") (cast_expression "(uint *)(iVar18 + 0x4e70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4e70)" (( "(") (binary_expression "iVar18 + 0x4e70" (identifier "iVar18") (+ "+") (number_literal "0x4e70")) () ")"))))) (; ";")) (expression_statement "local_68 = *(uint *)(iVar18 + 0x4e74);" (assignment_expression "local_68 = *(uint *)(iVar18 + 0x4e74)" (identifier "local_68") (= "=") (pointer_expression "*(uint *)(iVar18 + 0x4e74)" (* "*") (cast_expression "(uint *)(iVar18 + 0x4e74)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4e74)" (( "(") (binary_expression "iVar18 + 0x4e74" (identifier "iVar18") (+ "+") (number_literal "0x4e74")) () ")"))))) (; ";")) (if_statement "if (local_50 == 0 && local_54 == 0) {\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }\n        else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }" (if "if") (parenthesized_expression "(local_50 == 0 && local_54 == 0)" (( "(") (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" (identifier "local_50") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_54 == 0" (identifier "local_54") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n          iVar12 = *(int *)(param_2 + 4);\n          local_54 = *(uint *)(iVar12 + 0x20);\n          local_50 = *(uint *)(iVar12 + 0x24);\n          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;\nLAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);\n          local_68 = *(uint *)(iVar12 + 0x2c);\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }\n        }" ({ "{") (expression_statement "iVar12 = *(int *)(param_2 + 4);" (assignment_expression "iVar12 = *(int *)(param_2 + 4)" (identifier "iVar12") (= "=") (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 "local_54 = *(uint *)(iVar12 + 0x20);" (assignment_expression "local_54 = *(uint *)(iVar12 + 0x20)" (identifier "local_54") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x20)" (* "*") (cast_expression "(uint *)(iVar12 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "local_50 = *(uint *)(iVar12 + 0x24);" (assignment_expression "local_50 = *(uint *)(iVar12 + 0x24)" (identifier "local_50") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x24)" (* "*") (cast_expression "(uint *)(iVar12 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;" (if "if") (parenthesized_expression "(local_68 != 0 || local_6c != 0)" (( "(") (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" (identifier "local_68") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_6c != 0" (identifier "local_6c") (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_001135dc;" (goto "goto") (statement_identifier "LAB_001135dc") (; ";"))) (labeled_statement "LAB_00113289:\n          local_6c = *(uint *)(iVar12 + 0x28);" (statement_identifier "LAB_00113289") (: ":") (expression_statement "local_6c = *(uint *)(iVar12 + 0x28);" (assignment_expression "local_6c = *(uint *)(iVar12 + 0x28)" (identifier "local_6c") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x28)" (* "*") (cast_expression "(uint *)(iVar12 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x28)" (( "(") (binary_expression "iVar12 + 0x28" (identifier "iVar12") (+ "+") (number_literal "0x28")) () ")"))))) (; ";"))) (expression_statement "local_68 = *(uint *)(iVar12 + 0x2c);" (assignment_expression "local_68 = *(uint *)(iVar12 + 0x2c)" (identifier "local_68") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2c)" (( "(") (binary_expression "iVar12 + 0x2c" (identifier "iVar12") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (if_statement "if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }" (if "if") (parenthesized_expression "(local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))" (( "(") (binary_expression "local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 < local_68" (identifier "local_50") (< "<") (identifier "local_68")) (|| "||") (binary_expression "local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 - local_68" (identifier "local_50") (- "-") (identifier "local_68")) (< "<") (call_expression "(uint)(local_54 < local_6c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 < local_6c)" (( "(") (binary_expression "local_54 < local_6c" (identifier "local_54") (< "<") (identifier "local_6c")) () ")"))))) () ")")) (compound_statement "{\nLAB_001132a7:\n            local_6c = local_54;\n            local_68 = local_50;\n          }" ({ "{") (labeled_statement "LAB_001132a7:\n            local_6c = local_54;" (statement_identifier "LAB_001132a7") (: ":") (expression_statement "local_6c = local_54;" (assignment_expression "local_6c = local_54" (identifier "local_6c") (= "=") (identifier "local_54")) (; ";"))) (expression_statement "local_68 = local_50;" (assignment_expression "local_68 = local_50" (identifier "local_68") (= "=") (identifier "local_50")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }" (else "else") (compound_statement "{\n          if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }\nLAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;\n        }" ({ "{") (if_statement "if (local_68 == 0 && local_6c == 0) {\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }" (if "if") (parenthesized_expression "(local_68 == 0 && local_6c == 0)" (( "(") (binary_expression "local_68 == 0 && local_6c == 0" (binary_expression "local_68 == 0" (identifier "local_68") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_6c == 0" (identifier "local_6c") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n            iVar12 = *(int *)(param_2 + 4);\n            goto LAB_00113289;\n          }" ({ "{") (expression_statement "iVar12 = *(int *)(param_2 + 4);" (assignment_expression "iVar12 = *(int *)(param_2 + 4)" (identifier "iVar12") (= "=") (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")) () ")"))))) (; ";")) (goto_statement "goto LAB_00113289;" (goto "goto") (statement_identifier "LAB_00113289") (; ";")) (} "}"))) (labeled_statement "LAB_001135dc:\n          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;" (statement_identifier "LAB_001135dc") (: ":") (if_statement "if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))\n          goto LAB_001132a7;" (if "if") (parenthesized_expression "(local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))" (( "(") (binary_expression "local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 < local_68" (identifier "local_50") (< "<") (identifier "local_68")) (|| "||") (binary_expression "local_50 - local_68 < (uint)(local_54 < local_6c)" (binary_expression "local_50 - local_68" (identifier "local_50") (- "-") (identifier "local_68")) (< "<") (call_expression "(uint)(local_54 < local_6c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 < local_6c)" (( "(") (binary_expression "local_54 < local_6c" (identifier "local_54") (< "<") (identifier "local_6c")) () ")"))))) () ")")) (goto_statement "goto LAB_001132a7;" (goto "goto") (statement_identifier "LAB_001132a7") (; ";")))) (} "}")))) (expression_statement "lVar6 = CONCAT44(local_50,local_54);" (assignment_expression "lVar6 = CONCAT44(local_50,local_54)" (identifier "lVar6") (= "=") (call_expression "CONCAT44(local_50,local_54)" (identifier "CONCAT44") (argument_list "(local_50,local_54)" (( "(") (identifier "local_50") (, ",") (identifier "local_54") () ")")))) (; ";")) (if_statement "if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }" (if "if") (parenthesized_expression "(((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54)))" (( "(") (binary_expression "((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&\n           (iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))" (parenthesized_expression "((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')" (parenthesized_expression "(*(char *)(iVar18 + 0x24c1) == '\0')" (( "(") (binary_expression "*(char *)(iVar18 + 0x24c1) == '\0'" (pointer_expression "*(char *)(iVar18 + 0x24c1)" (* "*") (cast_expression "(char *)(iVar18 + 0x24c1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x24c1)" (( "(") (binary_expression "iVar18 + 0x24c1" (identifier "iVar18") (+ "+") (number_literal "0x24c1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar18 + 0x253d) == '\0')" (( "(") (binary_expression "*(char *)(iVar18 + 0x253d) == '\0'" (pointer_expression "*(char *)(iVar18 + 0x253d)" (* "*") (cast_expression "(char *)(iVar18 + 0x253d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x253d)" (( "(") (binary_expression "iVar18 + 0x253d" (identifier "iVar18") (+ "+") (number_literal "0x253d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))" (( "(") (comma_expression "iVar12 = *local_44,\n           *(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54)" (assignment_expression "iVar12 = *local_44" (identifier "iVar12") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (, ",") (binary_expression "*(uint *)(iVar12 + 0x180) < local_50 ||\n           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54)" (binary_expression "*(uint *)(iVar12 + 0x180) < local_50" (pointer_expression "*(uint *)(iVar12 + 0x180)" (* "*") (cast_expression "(uint *)(iVar12 + 0x180)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x180)" (( "(") (binary_expression "iVar12 + 0x180" (identifier "iVar12") (+ "+") (number_literal "0x180")) () ")")))) (< "<") (identifier "local_50")) (|| "||") (binary_expression "*(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54)" (binary_expression "*(uint *)(iVar12 + 0x180) - local_50" (pointer_expression "*(uint *)(iVar12 + 0x180)" (* "*") (cast_expression "(uint *)(iVar12 + 0x180)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x180)" (( "(") (binary_expression "iVar12 + 0x180" (identifier "iVar12") (+ "+") (number_literal "0x180")) () ")")))) (- "-") (identifier "local_50")) (< "<") (call_expression "(uint)(*(uint *)(iVar12 + 0x17c) < local_54)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(iVar12 + 0x17c) < local_54)" (( "(") (binary_expression "*(uint *)(iVar12 + 0x17c) < local_54" (pointer_expression "*(uint *)(iVar12 + 0x17c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x17c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x17c)" (( "(") (binary_expression "iVar12 + 0x17c" (identifier "iVar12") (+ "+") (number_literal "0x17c")) () ")")))) (< "<") (identifier "local_54")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n          *(uint *)(iVar12 + 0x17c) = local_54;\n          *(uint *)(iVar12 + 0x180) = local_50;\n        }" ({ "{") (expression_statement "*(uint *)(iVar12 + 0x17c) = local_54;" (assignment_expression "*(uint *)(iVar12 + 0x17c) = local_54" (pointer_expression "*(uint *)(iVar12 + 0x17c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x17c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x17c)" (( "(") (binary_expression "iVar12 + 0x17c" (identifier "iVar12") (+ "+") (number_literal "0x17c")) () ")")))) (= "=") (identifier "local_54")) (; ";")) (expression_statement "*(uint *)(iVar12 + 0x180) = local_50;" (assignment_expression "*(uint *)(iVar12 + 0x180) = local_50" (pointer_expression "*(uint *)(iVar12 + 0x180)" (* "*") (cast_expression "(uint *)(iVar12 + 0x180)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x180)" (( "(") (binary_expression "iVar12 + 0x180" (identifier "iVar12") (+ "+") (number_literal "0x180")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (} "}"))) (expression_statement "local_24 = lVar32;" (assignment_expression "local_24 = lVar32" (identifier "local_24") (= "=") (identifier "lVar32")) (; ";")) (if_statement "if (bVar23 == 0) {\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }\n        else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }" (if "if") (parenthesized_expression "(bVar23 == 0)" (( "(") (binary_expression "bVar23 == 0" (identifier "bVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          lVar31 = FUN_0015e5e0(*local_44);\n          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);\n          uVar25 = (uint)lVar31;\n          uVar26 = uVar25 | uVar21;\n          if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }\n          local_84 = (undefined *)uVar9;\n          local_80 = (undefined *)(uVar9 >> 0x20);\n          uVar8 = uVar9;\n          if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }\n          if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }\n          if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }\n          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;\n          if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }\n          iVar18 = param_3;\n          uVar9 = uVar8;\n          if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }\n        }" ({ "{") (expression_statement "lVar31 = FUN_0015e5e0(*local_44);" (assignment_expression "lVar31 = FUN_0015e5e0(*local_44)" (identifier "lVar31") (= "=") (call_expression "FUN_0015e5e0(*local_44)" (identifier "FUN_0015e5e0") (argument_list "(*local_44)" (( "(") (pointer_expression "*local_44" (* "*") (identifier "local_44")) () ")")))) (; ";")) (expression_statement "uVar21 = (uint)((ulonglong)lVar31 >> 0x20);" (assignment_expression "uVar21 = (uint)((ulonglong)lVar31 >> 0x20)" (identifier "uVar21") (= "=") (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar31 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar31")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar25 = (uint)lVar31;" (assignment_expression "uVar25 = (uint)lVar31" (identifier "uVar25") (= "=") (cast_expression "(uint)lVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar31"))) (; ";")) (expression_statement "uVar26 = uVar25 | uVar21;" (assignment_expression "uVar26 = uVar25 | uVar21" (identifier "uVar26") (= "=") (binary_expression "uVar25 | uVar21" (identifier "uVar25") (| "|") (identifier "uVar21"))) (; ";")) (if_statement "if ((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }\n          else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }" (if "if") (parenthesized_expression "((uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21))" (( "(") (binary_expression "(uVar26 == 0) ||\n             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)" (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)" (( "(") (binary_expression "uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21" (binary_expression "uVar21 <= local_50" (identifier "uVar21") (<= "<=") (identifier "local_50")) (&& "&&") (binary_expression "(uint)(local_54 < uVar25) <= local_50 - uVar21" (call_expression "(uint)(local_54 < uVar25)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 < uVar25)" (( "(") (binary_expression "local_54 < uVar25" (identifier "local_54") (< "<") (identifier "uVar25")) () ")"))) (<= "<=") (binary_expression "local_50 - uVar21" (identifier "local_50") (- "-") (identifier "uVar21")))) () ")"))) () ")")) (compound_statement "{\n            iVar12 = *local_44;\n            uVar9 = uVar7;\n          }" ({ "{") (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" (identifier "iVar12") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (expression_statement "uVar9 = uVar7;" (assignment_expression "uVar9 = uVar7" (identifier "uVar9") (= "=") (identifier "uVar7")) (; ";")) (} "}")) (else_clause "else {\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }" (else "else") (compound_statement "{\n            lVar31 = lVar31 + (uVar7 - 1);\n            uVar26 = (uint)lVar31 & -uVar25;\n            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);\n            iVar12 = *local_44;\n          }" ({ "{") (expression_statement "lVar31 = lVar31 + (uVar7 - 1);" (assignment_expression "lVar31 = lVar31 + (uVar7 - 1)" (identifier "lVar31") (= "=") (binary_expression "lVar31 + (uVar7 - 1)" (identifier "lVar31") (+ "+") (parenthesized_expression "(uVar7 - 1)" (( "(") (binary_expression "uVar7 - 1" (identifier "uVar7") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar26 = (uint)lVar31 & -uVar25;" (assignment_expression "uVar26 = (uint)lVar31 & -uVar25" (identifier "uVar26") (= "=") (binary_expression "(uint)lVar31 & -uVar25" (cast_expression "(uint)lVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar31")) (& "&") (unary_expression "-uVar25" (- "-") (identifier "uVar25")))) (; ";")) (expression_statement "uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);" (assignment_expression "uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26)" (identifier "uVar9") (= "=") (call_expression "CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26)" (identifier "CONCAT44") (argument_list "((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26)" (( "(") (binary_expression "(uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0))" (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar31 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar31")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (unary_expression "-(uVar21 + (uVar25 != 0))" (- "-") (parenthesized_expression "(uVar21 + (uVar25 != 0))" (( "(") (binary_expression "uVar21 + (uVar25 != 0)" (identifier "uVar21") (+ "+") (parenthesized_expression "(uVar25 != 0)" (( "(") (binary_expression "uVar25 != 0" (identifier "uVar25") (!= "!=") (number_literal "0")) () ")"))) () ")")))) (, ",") (identifier "uVar26") () ")")))) (; ";")) (expression_statement "iVar12 = *local_44;" (assignment_expression "iVar12 = *local_44" (identifier "iVar12") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (} "}")))) (expression_statement "local_84 = (undefined *)uVar9;" (assignment_expression "local_84 = (undefined *)uVar9" (identifier "local_84") (= "=") (cast_expression "(undefined *)uVar9" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar9"))) (; ";")) (expression_statement "local_80 = (undefined *)(uVar9 >> 0x20);" (assignment_expression "local_80 = (undefined *)(uVar9 >> 0x20)" (identifier "local_80") (= "=") (cast_expression "(undefined *)(uVar9 >> 0x20)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 >> 0x20)" (( "(") (binary_expression "uVar9 >> 0x20" (identifier "uVar9") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" (identifier "uVar8") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (iVar12 != param_3) {\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }" (if "if") (parenthesized_expression "(iVar12 != param_3)" (( "(") (binary_expression "iVar12 != param_3" (identifier "iVar12") (!= "!=") (identifier "param_3")) () ")")) (compound_statement "{\n            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);\n            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }\n            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);\n            goto LAB_00113314;\n          }" ({ "{") (expression_statement "uVar26 = (local_50 - 1) + (uint)(local_54 != 0);" (assignment_expression "uVar26 = (local_50 - 1) + (uint)(local_54 != 0)" (identifier "uVar26") (= "=") (binary_expression "(local_50 - 1) + (uint)(local_54 != 0)" (parenthesized_expression "(local_50 - 1)" (( "(") (binary_expression "local_50 - 1" (identifier "local_50") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 != 0)" (( "(") (binary_expression "local_54 != 0" (identifier "local_54") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (if_statement "if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {\n              uVar8 = uVar9 + lVar6;\n            }" (if "if") (parenthesized_expression "(((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0)" (( "(") (binary_expression "((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0" (binary_expression "((uint)local_80 & uVar26) != 0" (parenthesized_expression "((uint)local_80 & uVar26)" (( "(") (binary_expression "(uint)local_80 & uVar26" (cast_expression "(uint)local_80" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_80")) (& "&") (identifier "uVar26")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "((uint)local_84 & local_54 - 1) != 0" (parenthesized_expression "((uint)local_84 & local_54 - 1)" (( "(") (binary_expression "(uint)local_84 & local_54 - 1" (cast_expression "(uint)local_84" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_84")) (& "&") (binary_expression "local_54 - 1" (identifier "local_54") (- "-") (number_literal "1"))) () ")")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n              uVar8 = uVar9 + lVar6;\n            }" ({ "{") (expression_statement "uVar8 = uVar9 + lVar6;" (assignment_expression "uVar8 = uVar9 + lVar6" (identifier "uVar8") (= "=") (binary_expression "uVar9 + lVar6" (identifier "uVar9") (+ "+") (identifier "lVar6"))) (; ";")) (} "}"))) (expression_statement "local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1);" (assignment_expression "local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1)" (identifier "local_24") (= "=") (binary_expression "lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1)" (identifier "lVar32") (+ "+") (call_expression "CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1)" (identifier "CONCAT44") (argument_list "((uint)(uVar8 - uVar7 >> 0x20) & uVar26,\n                                         (uint)(uVar8 - uVar7) & local_54 - 1)" (( "(") (binary_expression "(uint)(uVar8 - uVar7 >> 0x20) & uVar26" (call_expression "(uint)(uVar8 - uVar7 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar8 - uVar7 >> 0x20)" (( "(") (binary_expression "uVar8 - uVar7 >> 0x20" (binary_expression "uVar8 - uVar7" (identifier "uVar8") (- "-") (identifier "uVar7")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (identifier "uVar26")) (, ",") (binary_expression "(uint)(uVar8 - uVar7) & local_54 - 1" (call_expression "(uint)(uVar8 - uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar8 - uVar7)" (( "(") (binary_expression "uVar8 - uVar7" (identifier "uVar8") (- "-") (identifier "uVar7")) () ")"))) (& "&") (binary_expression "local_54 - 1" (identifier "local_54") (- "-") (number_literal "1"))) () ")"))))) (; ";")) (goto_statement "goto LAB_00113314;" (goto "goto") (statement_identifier "LAB_00113314") (; ";")) (} "}"))) (if_statement "if (lVar32 != 0) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }" (if "if") (parenthesized_expression "(lVar32 != 0)" (( "(") (binary_expression "lVar32 != 0" (identifier "lVar32") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);\n          }" ({ "{") (expression_statement "FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);" (call_expression "FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26)" (identifier "FUN_000da200") (argument_list "("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26)" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0xf6e") (, ",") (string_literal ""set_segment_offsets"" (" """) (string_content "set_segment_offsets") (" """)) (, ",") (identifier "uVar26") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar12 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);\n          }" ({ "{") (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options",0);" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options",0)" (identifier "FUN_000da200") (argument_list "("../../gold/parameters.h",0x5c,"options",0)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar12 + 0x3344) == '\0') {\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }\n          else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }" (if "if") (parenthesized_expression "(*(char *)(iVar12 + 0x3344) == '\0')" (( "(") (binary_expression "*(char *)(iVar12 + 0x3344) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x3344)" (* "*") (cast_expression "(char *)(iVar12 + 0x3344)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3344)" (( "(") (binary_expression "iVar12 + 0x3344" (identifier "iVar12") (+ "+") (number_literal "0x3344")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);\n            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);\n          }" ({ "{") (expression_statement "iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);" (assignment_expression "iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(*(int *)(param_2 + 4) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_2 + 4) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 4) + 0x38)" (( "(") (binary_expression "*(int *)(param_2 + 4) + 0x38" (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")) () ")")))) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);" (assignment_expression "uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34)" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)(*(int *)(param_2 + 4) + 0x34)" (* "*") (cast_expression "(uint *)(*(int *)(param_2 + 4) + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 4) + 0x34)" (( "(") (binary_expression "*(int *)(param_2 + 4) + 0x34" (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")) () ")")))) (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }" (else "else") (compound_statement "{\n            uVar26 = *(uint *)(iVar12 + 0x3348);\n            iVar18 = *(int *)(iVar12 + 0x334c);\n          }" ({ "{") (expression_statement "uVar26 = *(uint *)(iVar12 + 0x3348);" (assignment_expression "uVar26 = *(uint *)(iVar12 + 0x3348)" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x3348)" (* "*") (cast_expression "(uint *)(iVar12 + 0x3348)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x3348)" (( "(") (binary_expression "iVar12 + 0x3348" (identifier "iVar12") (+ "+") (number_literal "0x3348")) () ")"))))) (; ";")) (expression_statement "iVar18 = *(int *)(iVar12 + 0x334c);" (assignment_expression "iVar18 = *(int *)(iVar12 + 0x334c)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(iVar12 + 0x334c)" (* "*") (cast_expression "(int *)(iVar12 + 0x334c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x334c)" (( "(") (binary_expression "iVar12 + 0x334c" (identifier "iVar12") (+ "+") (number_literal "0x334c")) () ")"))))) (; ";")) (} "}")))) (expression_statement "puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;" (assignment_expression "puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18" (identifier "puVar15") (= "=") (binary_expression "local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18" (binary_expression "local_c0 + (uint)CARRY4(uVar26,(uint)local_c4)" (identifier "local_c0") (+ "+") (cast_expression "(uint)CARRY4(uVar26,(uint)local_c4)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar26,(uint)local_c4)" (identifier "CARRY4") (argument_list "(uVar26,(uint)local_c4)" (( "(") (identifier "uVar26") (, ",") (cast_expression "(uint)local_c4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c4")) () ")"))))) (+ "+") (identifier "iVar18"))) (; ";")) (if_statement "if (local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }" (if "if") (parenthesized_expression "(local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26))" (( "(") (binary_expression "local_80 < puVar15 ||\n              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)" (binary_expression "local_80 < puVar15" (identifier "local_80") (< "<") (identifier "puVar15")) (|| "||") (binary_expression "(uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)" (call_expression "(uint)((int)local_80 - (int)puVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_80 - (int)puVar15)" (( "(") (binary_expression "(int)local_80 - (int)puVar15" (cast_expression "(int)local_80" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_80")) (- "-") (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15"))) () ")"))) (< "<") (call_expression "(uint)(local_84 < local_c4 + uVar26)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_84 < local_c4 + uVar26)" (( "(") (binary_expression "local_84 < local_c4 + uVar26" (identifier "local_84") (< "<") (binary_expression "local_c4 + uVar26" (identifier "local_c4") (+ "+") (identifier "uVar26"))) () ")"))))) () ")")) (compound_statement "{\n            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);\n          }" ({ "{") (expression_statement "uVar8 = CONCAT44(puVar15,local_c4 + uVar26);" (assignment_expression "uVar8 = CONCAT44(puVar15,local_c4 + uVar26)" (identifier "uVar8") (= "=") (call_expression "CONCAT44(puVar15,local_c4 + uVar26)" (identifier "CONCAT44") (argument_list "(puVar15,local_c4 + uVar26)" (( "(") (identifier "puVar15") (, ",") (binary_expression "local_c4 + uVar26" (identifier "local_c4") (+ "+") (identifier "uVar26")) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar18 = param_3;" (assignment_expression "iVar18 = param_3" (identifier "iVar18") (= "=") (identifier "param_3")) (; ";")) (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" (identifier "uVar9") (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (local_50 != 0 || local_54 != 0) {\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }" (if "if") (parenthesized_expression "(local_50 != 0 || local_54 != 0)" (( "(") (binary_expression "local_50 != 0 || local_54 != 0" (binary_expression "local_50 != 0" (identifier "local_50") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_54 != 0" (identifier "local_54") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);\n            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);\n            uVar9 = uVar8;\n          }" ({ "{") (expression_statement "lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);" (assignment_expression "lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" (identifier "lVar31") (= "=") (binary_expression "uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" (identifier "uVar8") (+ "+") (call_expression "CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" (identifier "CONCAT44") (argument_list "((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1)" (( "(") (binary_expression "(local_50 - 1) + (uint)(local_54 != 0)" (parenthesized_expression "(local_50 - 1)" (( "(") (binary_expression "local_50 - 1" (identifier "local_50") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 != 0)" (( "(") (binary_expression "local_54 != 0" (identifier "local_54") (!= "!=") (number_literal "0")) () ")")))) (, ",") (binary_expression "local_54 - 1" (identifier "local_54") (- "-") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54);" (assignment_expression "uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54)" (identifier "uVar8") (= "=") (call_expression "CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54)" (identifier "CONCAT44") (argument_list "((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),\n                             (uint)lVar31 & -local_54)" (( "(") (binary_expression "(uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0))" (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar31 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar31")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (unary_expression "-(local_50 + (local_54 != 0))" (- "-") (parenthesized_expression "(local_50 + (local_54 != 0))" (( "(") (binary_expression "local_50 + (local_54 != 0)" (identifier "local_50") (+ "+") (parenthesized_expression "(local_54 != 0)" (( "(") (binary_expression "local_54 != 0" (identifier "local_54") (!= "!=") (number_literal "0")) () ")"))) () ")")))) (, ",") (binary_expression "(uint)lVar31 & -local_54" (cast_expression "(uint)lVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar31")) (& "&") (unary_expression "-local_54" (- "-") (identifier "local_54"))) () ")")))) (; ";")) (expression_statement "uVar9 = uVar8;" (assignment_expression "uVar9 = uVar8" (identifier "uVar9") (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }" (else "else") (compound_statement "{\n          uVar9 = 0;\n          uVar8 = uVar7;\nLAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }\n          iVar18 = *local_44;\n        }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" (identifier "uVar8") (= "=") (identifier "uVar7")) (; ";")) (labeled_statement "LAB_00113314:\n          iVar12 = *(int *)(DAT_004144e8 + 8);" (statement_identifier "LAB_00113314") (: ":") (expression_statement "iVar12 = *(int *)(DAT_004144e8 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_004144e8 + 8)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(DAT_004144e8 + 8)" (* "*") (cast_expression "(int *)(DAT_004144e8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_004144e8 + 8)" (( "(") (binary_expression "DAT_004144e8 + 8" (identifier "DAT_004144e8") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (if_statement "if (iVar12 == 0) {\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_000da200("../../gold/parameters.h",0x5c,"options");\n          }" ({ "{") (expression_statement "FUN_000da200("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_000da200("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_000da200") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar18 = *local_44;" (assignment_expression "iVar18 = *local_44" (identifier "iVar18") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (} "}")))) (expression_statement "local_80 = (undefined *)(uVar9 >> 0x20);" (assignment_expression "local_80 = (undefined *)(uVar9 >> 0x20)" (identifier "local_80") (= "=") (cast_expression "(undefined *)(uVar9 >> 0x20)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 >> 0x20)" (( "(") (binary_expression "uVar9 >> 0x20" (identifier "uVar9") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_84 = (undefined *)uVar9;" (assignment_expression "local_84 = (undefined *)uVar9" (identifier "local_84") (= "=") (cast_expression "(undefined *)uVar9" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar9"))) (; ";")) (expression_statement "local_70 = (uint)(uVar8 >> 0x20);" (assignment_expression "local_70 = (uint)(uVar8 >> 0x20)" (identifier "local_70") (= "=") (call_expression "(uint)(uVar8 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar8 >> 0x20)" (( "(") (binary_expression "uVar8 >> 0x20" (identifier "uVar8") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_74 = (uint)uVar8;" (assignment_expression "local_74 = (uint)uVar8" (identifier "local_74") (= "=") (cast_expression "(uint)uVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar8"))) (; ";")) (if_statement "if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }\n        else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }" (if "if") (parenthesized_expression "((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0'))" (( "(") (binary_expression "(*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')" (parenthesized_expression "(*(char *)(iVar12 + 0x24c1) == '\0')" (( "(") (binary_expression "*(char *)(iVar12 + 0x24c1) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x24c1)" (* "*") (cast_expression "(char *)(iVar12 + 0x24c1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24c1)" (( "(") (binary_expression "iVar12 + 0x24c1" (identifier "iVar12") (+ "+") (number_literal "0x24c1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar12 + 0x253d) == '\0')" (( "(") (binary_expression "*(char *)(iVar12 + 0x253d) == '\0'" (pointer_expression "*(char *)(iVar12 + 0x253d)" (* "*") (cast_expression "(char *)(iVar12 + 0x253d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x253d)" (( "(") (binary_expression "iVar12 + 0x253d" (identifier "iVar12") (+ "+") (number_literal "0x253d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          lVar29 = FUN_0015e5e0(iVar18);\n          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);\n          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }\n          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;\n          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);\n          lVar31 = CONCAT44(uVar25,uVar26);\n          if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }\n        }" ({ "{") (expression_statement "lVar29 = FUN_0015e5e0(iVar18);" (assignment_expression "lVar29 = FUN_0015e5e0(iVar18)" (identifier "lVar29") (= "=") (call_expression "FUN_0015e5e0(iVar18)" (identifier "FUN_0015e5e0") (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")")))) (; ";")) (expression_statement "uVar26 = (uint)((ulonglong)lVar29 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar29 >> 0x20)" (identifier "uVar26") (= "=") (call_expression "(uint)((ulonglong)lVar29 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar29 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar29 >> 0x20" (cast_expression "(ulonglong)lVar29" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar29")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {\n            lVar29 = lVar6;\n          }" (if "if") (parenthesized_expression "(uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54))" (( "(") (binary_expression "uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)" (binary_expression "uVar26 < local_50" (identifier "uVar26") (< "<") (identifier "local_50")) (|| "||") (binary_expression "uVar26 - local_50 < (uint)((uint)lVar29 < local_54)" (binary_expression "uVar26 - local_50" (identifier "uVar26") (- "-") (identifier "local_50")) (< "<") (call_expression "(uint)((uint)lVar29 < local_54)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)lVar29 < local_54)" (( "(") (binary_expression "(uint)lVar29 < local_54" (cast_expression "(uint)lVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar29")) (< "<") (identifier "local_54")) () ")"))))) () ")")) (compound_statement "{\n            lVar29 = lVar6;\n          }" ({ "{") (expression_statement "lVar29 = lVar6;" (assignment_expression "lVar29 = lVar6" (identifier "lVar29") (= "=") (identifier "lVar6")) (; ";")) (} "}"))) (expression_statement "uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;" (assignment_expression "uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70" (identifier "uVar25") (= "=") (binary_expression "(uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |\n                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70" (binary_expression "(uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20)" (cast_expression "(uint)local_24._4_4_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_"))) (& "&") (unary_expression "-(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20)" (- "-") (cast_expression "(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(lVar29 + 0xffffffff) >> 0x20)" (( "(") (binary_expression "(ulonglong)(lVar29 + 0xffffffff) >> 0x20" (call_expression "(ulonglong)(lVar29 + 0xffffffff)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(lVar29 + 0xffffffff)" (( "(") (binary_expression "lVar29 + 0xffffffff" (identifier "lVar29") (+ "+") (number_literal "0xffffffff")) () ")"))) (>> ">>") (number_literal "0x20")) () ")"))))) (| "|") (binary_expression "(int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70" (binary_expression "(int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0)" (binary_expression "(int)((ulonglong)lVar29 >> 0x20) + -1" (cast_expression "(int)((ulonglong)lVar29 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar29 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar29 >> 0x20" (cast_expression "(ulonglong)lVar29" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar29")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (number_literal "-1")) (+ "+") (call_expression "(uint)((int)lVar29 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)lVar29 != 0)" (( "(") (binary_expression "(int)lVar29 != 0" (cast_expression "(int)lVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar29")) (!= "!=") (number_literal "0")) () ")")))) (& "&") (identifier "local_70")))) (; ";")) (expression_statement "uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff);" (assignment_expression "uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff)" (identifier "uVar26") (= "=") (binary_expression "(uint)(undefined *)local_24 & -(int)lVar29 |\n                   local_74 & (uint)(lVar29 + 0xffffffff)" (binary_expression "(uint)(undefined *)local_24 & -(int)lVar29" (cast_expression "(uint)(undefined *)local_24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(undefined *)local_24" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_24"))) (& "&") (unary_expression "-(int)lVar29" (- "-") (cast_expression "(int)lVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar29")))) (| "|") (binary_expression "local_74 & (uint)(lVar29 + 0xffffffff)" (identifier "local_74") (& "&") (call_expression "(uint)(lVar29 + 0xffffffff)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(lVar29 + 0xffffffff)" (( "(") (binary_expression "lVar29 + 0xffffffff" (identifier "lVar29") (+ "+") (number_literal "0xffffffff")) () ")")))))) (; ";")) (expression_statement "lVar31 = CONCAT44(uVar25,uVar26);" (assignment_expression "lVar31 = CONCAT44(uVar25,uVar26)" (identifier "lVar31") (= "=") (call_expression "CONCAT44(uVar25,uVar26)" (identifier "CONCAT44") (argument_list "(uVar25,uVar26)" (( "(") (identifier "uVar25") (, ",") (identifier "uVar26") () ")")))) (; ";")) (if_statement "if (uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {\n            lVar31 = lVar29 + lVar31;\n          }" (if "if") (parenthesized_expression "(uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24))" (( "(") (binary_expression "uVar25 < local_24._4_4_ ||\n              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)" (binary_expression "uVar25 < local_24._4_4_" (identifier "uVar25") (< "<") (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_"))) (|| "||") (binary_expression "uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)" (binary_expression "uVar25 - (int)local_24._4_4_" (identifier "uVar25") (- "-") (cast_expression "(int)local_24._4_4_" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_")))) (< "<") (call_expression "(uint)(uVar26 < (undefined *)local_24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar26 < (undefined *)local_24)" (( "(") (binary_expression "uVar26 < (undefined *)local_24" (identifier "uVar26") (< "<") (cast_expression "(undefined *)local_24" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_24"))) () ")"))))) () ")")) (compound_statement "{\n            lVar31 = lVar29 + lVar31;\n          }" ({ "{") (expression_statement "lVar31 = lVar29 + lVar31;" (assignment_expression "lVar31 = lVar29 + lVar31" (identifier "lVar31") (= "=") (binary_expression "lVar29 + lVar31" (identifier "lVar29") (+ "+") (identifier "lVar31"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }" (else "else") (compound_statement "{\n          lVar29 = FUN_0015e5e0(iVar18);\n          lVar31 = local_24;\n          if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }\n        }" ({ "{") (expression_statement "lVar29 = FUN_0015e5e0(iVar18);" (assignment_expression "lVar29 = FUN_0015e5e0(iVar18)" (identifier "lVar29") (= "=") (call_expression "FUN_0015e5e0(iVar18)" (identifier "FUN_0015e5e0") (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")")))) (; ";")) (expression_statement "lVar31 = local_24;" (assignment_expression "lVar31 = local_24" (identifier "lVar31") (= "=") (identifier "local_24")) (; ";")) (if_statement "if (lVar29 != 0) {\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }" (if "if") (parenthesized_expression "(lVar29 != 0)" (( "(") (binary_expression "lVar29 != 0" (identifier "lVar29") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            lVar31 = lVar29 + local_24 + -1;\n            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);\n          }" ({ "{") (expression_statement "lVar31 = lVar29 + local_24 + -1;" (assignment_expression "lVar31 = lVar29 + local_24 + -1" (identifier "lVar31") (= "=") (binary_expression "lVar29 + local_24 + -1" (binary_expression "lVar29 + local_24" (identifier "lVar29") (+ "+") (identifier "local_24")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29);" (assignment_expression "lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29)" (identifier "lVar31") (= "=") (call_expression "CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29)" (identifier "CONCAT44") (argument_list "((uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),\n                              (uint)lVar31 & -(int)lVar29)" (( "(") (binary_expression "(uint)((ulonglong)lVar31 >> 0x20) &\n                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0))" (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar31 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar31")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (unary_expression "-((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0))" (- "-") (parenthesized_expression "((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0))" (( "(") (binary_expression "(int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)" (cast_expression "(int)((ulonglong)lVar29 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar29 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar29 >> 0x20" (cast_expression "(ulonglong)lVar29" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar29")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (call_expression "(uint)((int)lVar29 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)lVar29 != 0)" (( "(") (binary_expression "(int)lVar29 != 0" (cast_expression "(int)lVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar29")) (!= "!=") (number_literal "0")) () ")")))) () ")")))) (, ",") (binary_expression "(uint)lVar31 & -(int)lVar29" (cast_expression "(uint)lVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar31")) (& "&") (unary_expression "-(int)lVar29" (- "-") (cast_expression "(int)lVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar29")))) () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_2d = '\0';" (assignment_expression "local_2d = '\0'" (identifier "local_2d") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "iVar12 = *param_4;" (assignment_expression "iVar12 = *param_4" (identifier "iVar12") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "local_24 = lVar31;" (assignment_expression "local_24 = lVar31" (identifier "local_24") (= "=") (identifier "lVar31")) (; ";")) (expression_statement "uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4);" (assignment_expression "uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4)" (identifier "uVar30") (= "=") (call_expression "FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4)" (identifier "FUN_001619e0") (argument_list "(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,\n                              param_4)" (( "(") (pointer_expression "*local_44" (* "*") (identifier "local_44")) (, ",") (identifier "param_2") (, ",") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "uVar8") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (pointer_expression "&local_2d" (& "&") (identifier "local_2d")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9))" (( "(") (binary_expression "((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)" (parenthesized_expression "((bVar23 == 0) && (local_2d != '\x01'))" (( "(") (binary_expression "(bVar23 == 0) && (local_2d != '\x01')" (parenthesized_expression "(bVar23 == 0)" (( "(") (binary_expression "bVar23 == 0" (identifier "bVar23") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_2d != '\x01')" (( "(") (binary_expression "local_2d != '\x01'" (identifier "local_2d") (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar8 != uVar9)" (( "(") (binary_expression "uVar8 != uVar9" (identifier "uVar8") (!= "!=") (identifier "uVar9")) () ")"))) () ")")) (compound_statement "{\n          cVar10 = FUN_001a5170(DAT_004144e8);\n          if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "cVar10 = FUN_001a5170(DAT_004144e8);" (assignment_expression "cVar10 = FUN_001a5170(DAT_004144e8)" (identifier "cVar10") (= "=") (call_expression "FUN_001a5170(DAT_004144e8)" (identifier "FUN_001a5170") (argument_list "(DAT_004144e8)" (( "(") (identifier "DAT_004144e8") () ")")))) (; ";")) (if_statement "if (cVar10 == '\0') {\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }" (if "if") (parenthesized_expression "(cVar10 == '\0')" (( "(") (binary_expression "cVar10 == '\0'" (identifier "cVar10") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            uVar26 = local_6c - 1;\n            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);\n            uVar25 = local_6c - (uVar26 & (uint)local_84);\n            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));\n            uVar16 = uVar26 & (uint)uVar30;\n            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;\n            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }\n          }" ({ "{") (expression_statement "uVar26 = local_6c - 1;" (assignment_expression "uVar26 = local_6c - 1" (identifier "uVar26") (= "=") (binary_expression "local_6c - 1" (identifier "local_6c") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar21 = (local_68 - 1) + (uint)(local_6c != 0);" (assignment_expression "uVar21 = (local_68 - 1) + (uint)(local_6c != 0)" (identifier "uVar21") (= "=") (binary_expression "(local_68 - 1) + (uint)(local_6c != 0)" (parenthesized_expression "(local_68 - 1)" (( "(") (binary_expression "local_68 - 1" (identifier "local_68") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(local_6c != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_6c != 0)" (( "(") (binary_expression "local_6c != 0" (identifier "local_6c") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "uVar25 = local_6c - (uVar26 & (uint)local_84);" (assignment_expression "uVar25 = local_6c - (uVar26 & (uint)local_84)" (identifier "uVar25") (= "=") (binary_expression "local_6c - (uVar26 & (uint)local_84)" (identifier "local_6c") (- "-") (parenthesized_expression "(uVar26 & (uint)local_84)" (( "(") (binary_expression "uVar26 & (uint)local_84" (identifier "uVar26") (& "&") (cast_expression "(uint)local_84" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_84"))) () ")")))) (; ";")) (expression_statement "iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84));" (assignment_expression "iVar18 = (local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84))" (identifier "iVar18") (= "=") (binary_expression "(local_68 - (uVar21 & (uint)local_80)) -\n                     (uint)(local_6c < (uVar26 & (uint)local_84))" (parenthesized_expression "(local_68 - (uVar21 & (uint)local_80))" (( "(") (binary_expression "local_68 - (uVar21 & (uint)local_80)" (identifier "local_68") (- "-") (parenthesized_expression "(uVar21 & (uint)local_80)" (( "(") (binary_expression "uVar21 & (uint)local_80" (identifier "uVar21") (& "&") (cast_expression "(uint)local_80" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_80"))) () ")"))) () ")")) (- "-") (call_expression "(uint)(local_6c < (uVar26 & (uint)local_84))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_6c < (uVar26 & (uint)local_84))" (( "(") (binary_expression "local_6c < (uVar26 & (uint)local_84)" (identifier "local_6c") (< "<") (parenthesized_expression "(uVar26 & (uint)local_84)" (( "(") (binary_expression "uVar26 & (uint)local_84" (identifier "uVar26") (& "&") (cast_expression "(uint)local_84" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_84"))) () ")"))) () ")"))))) (; ";")) (expression_statement "uVar16 = uVar26 & (uint)uVar30;" (assignment_expression "uVar16 = uVar26 & (uint)uVar30" (identifier "uVar16") (= "=") (binary_expression "uVar26 & (uint)uVar30" (identifier "uVar26") (& "&") (cast_expression "(uint)uVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar30")))) (; ";")) (expression_statement "uVar24 = (uint)(uVar30 >> 0x20) & uVar21;" (assignment_expression "uVar24 = (uint)(uVar30 >> 0x20) & uVar21" (identifier "uVar24") (= "=") (binary_expression "(uint)(uVar30 >> 0x20) & uVar21" (call_expression "(uint)(uVar30 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar30 >> 0x20)" (( "(") (binary_expression "uVar30 >> 0x20" (identifier "uVar30") (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (identifier "uVar21"))) (; ";")) (if_statement "if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }" (if "if") (parenthesized_expression "((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0))" (( "(") (binary_expression "(uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)" (parenthesized_expression "(uVar25 != 0 || iVar18 != 0)" (( "(") (binary_expression "uVar25 != 0 || iVar18 != 0" (binary_expression "uVar25 != 0" (identifier "uVar25") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(uVar16 != 0 || uVar24 != 0)" (( "(") (binary_expression "uVar16 != 0 || uVar24 != 0" (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar24 != 0" (identifier "uVar24") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              uVar27 = -(local_68 + (local_6c != 0));\n              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }\n            }" ({ "{") (expression_statement "uVar27 = -(local_68 + (local_6c != 0));" (assignment_expression "uVar27 = -(local_68 + (local_6c != 0))" (identifier "uVar27") (= "=") (unary_expression "-(local_68 + (local_6c != 0))" (- "-") (parenthesized_expression "(local_68 + (local_6c != 0))" (( "(") (binary_expression "local_68 + (local_6c != 0)" (identifier "local_68") (+ "+") (parenthesized_expression "(local_6c != 0)" (( "(") (binary_expression "local_6c != 0" (identifier "local_6c") (!= "!=") (number_literal "0")) () ")"))) () ")")))) (; ";")) (if_statement "if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }" (if "if") (parenthesized_expression "((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24))" (( "(") (binary_expression "(((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&\n                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)" (parenthesized_expression "(((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0)" (( "(") (binary_expression "((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||\n                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0" (binary_expression "((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0" (parenthesized_expression "((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27)" (( "(") (binary_expression "(uint)((uVar30 ^ uVar9) >> 0x20) & uVar27" (call_expression "(uint)((uVar30 ^ uVar9) >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar30 ^ uVar9) >> 0x20)" (( "(") (binary_expression "(uVar30 ^ uVar9) >> 0x20" (parenthesized_expression "(uVar30 ^ uVar9)" (( "(") (binary_expression "uVar30 ^ uVar9" (identifier "uVar30") (^ "^") (identifier "uVar9")) () ")")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (identifier "uVar27")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "((uint)(uVar30 ^ uVar9) & -local_6c) != 0" (parenthesized_expression "((uint)(uVar30 ^ uVar9) & -local_6c)" (( "(") (binary_expression "(uint)(uVar30 ^ uVar9) & -local_6c" (call_expression "(uint)(uVar30 ^ uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar30 ^ uVar9)" (( "(") (binary_expression "uVar30 ^ uVar9" (identifier "uVar30") (^ "^") (identifier "uVar9")) () ")"))) (& "&") (unary_expression "-local_6c" (- "-") (identifier "local_6c"))) () ")")) (!= "!=") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)" (( "(") (comma_expression "uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),\n                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24" (assignment_expression "uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16)" (identifier "uVar24") (= "=") (binary_expression "iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16)" (binary_expression "iVar18 + uVar24" (identifier "iVar18") (+ "+") (identifier "uVar24")) (+ "+") (cast_expression "(uint)CARRY4(uVar25,uVar16)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar25,uVar16)" (identifier "CARRY4") (argument_list "(uVar25,uVar16)" (( "(") (identifier "uVar25") (, ",") (identifier "uVar16") () ")")))))) (, ",") (binary_expression "uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24" (binary_expression "uVar24 <= local_68" (identifier "uVar24") (<= "<=") (identifier "local_68")) (&& "&&") (binary_expression "(uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24" (call_expression "(uint)(local_6c < uVar25 + uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_6c < uVar25 + uVar16)" (( "(") (binary_expression "local_6c < uVar25 + uVar16" (identifier "local_6c") (< "<") (binary_expression "uVar25 + uVar16" (identifier "uVar25") (+ "+") (identifier "uVar16"))) () ")"))) (<= "<=") (binary_expression "local_68 - uVar24" (identifier "local_68") (- "-") (identifier "uVar24"))))) () ")"))) () ")")) (compound_statement "{\n                *param_4 = iVar12;\n                if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }\n                lVar31 = FUN_0015e5e0(*local_44);\n                if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }\n                local_80 = (undefined *)(uVar9 >> 0x20);\n                local_84 = (undefined *)uVar9;\n                uVar26 = local_54 - 1;\n                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);\n                local_6c = (uint)local_84 & uVar26;\n                local_74 = (uint)local_80 & uVar25;\n                if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }\n                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));\n                uVar26 = (uint)lVar32;\n                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);\n                local_dc = local_6c | -local_54 & uVar26;\n                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;\n                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }\n                local_24._0_4_ = (undefined *)local_dc;\n                local_24._4_4_ = (undefined *)local_d8;\n                local_2c = *(undefined4 *)(param_1 + 0x170);\n                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }\n                local_2d = '\0';\n                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);\n              }" ({ "{") (expression_statement "*param_4 = iVar12;" (assignment_expression "*param_4 = iVar12" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "iVar12")) (; ";")) (if_statement "if (local_68 != 0 || local_6c != 0) {\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }" (if "if") (parenthesized_expression "(local_68 != 0 || local_6c != 0)" (( "(") (binary_expression "local_68 != 0 || local_6c != 0" (binary_expression "local_68 != 0" (identifier "local_68") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_6c != 0" (identifier "local_6c") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);\n                }" ({ "{") (expression_statement "lVar31 = uVar9 + CONCAT44(uVar21,uVar26);" (assignment_expression "lVar31 = uVar9 + CONCAT44(uVar21,uVar26)" (identifier "lVar31") (= "=") (binary_expression "uVar9 + CONCAT44(uVar21,uVar26)" (identifier "uVar9") (+ "+") (call_expression "CONCAT44(uVar21,uVar26)" (identifier "CONCAT44") (argument_list "(uVar21,uVar26)" (( "(") (identifier "uVar21") (, ",") (identifier "uVar26") () ")"))))) (; ";")) (expression_statement "uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31);" (assignment_expression "uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31)" (identifier "uVar9") (= "=") (call_expression "CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31)" (identifier "CONCAT44") (argument_list "((uint)((ulonglong)lVar31 >> 0x20) & uVar27,\n                                   -local_6c & (uint)lVar31)" (( "(") (binary_expression "(uint)((ulonglong)lVar31 >> 0x20) & uVar27" (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar31 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar31")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (identifier "uVar27")) (, ",") (binary_expression "-local_6c & (uint)lVar31" (unary_expression "-local_6c" (- "-") (identifier "local_6c")) (& "&") (cast_expression "(uint)lVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar31"))) () ")")))) (; ";")) (} "}"))) (expression_statement "lVar31 = FUN_0015e5e0(*local_44);" (assignment_expression "lVar31 = FUN_0015e5e0(*local_44)" (identifier "lVar31") (= "=") (call_expression "FUN_0015e5e0(*local_44)" (identifier "FUN_0015e5e0") (argument_list "(*local_44)" (( "(") (pointer_expression "*local_44" (* "*") (identifier "local_44")) () ")")))) (; ";")) (if_statement "if (lVar31 != 0) {\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }" (if "if") (parenthesized_expression "(lVar31 != 0)" (( "(") (binary_expression "lVar31 != 0" (identifier "lVar31") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  lVar29 = lVar31 + uVar9 + -1;\n                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);\n                }" ({ "{") (expression_statement "lVar29 = lVar31 + uVar9 + -1;" (assignment_expression "lVar29 = lVar31 + uVar9 + -1" (identifier "lVar29") (= "=") (binary_expression "lVar31 + uVar9 + -1" (binary_expression "lVar31 + uVar9" (identifier "lVar31") (+ "+") (identifier "uVar9")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31);" (assignment_expression "uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31)" (identifier "uVar9") (= "=") (call_expression "CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31)" (identifier "CONCAT44") (argument_list "((uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),\n                                   (uint)lVar29 & -(int)lVar31)" (( "(") (binary_expression "(uint)((ulonglong)lVar29 >> 0x20) &\n                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (call_expression "(uint)((ulonglong)lVar29 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar29 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar29 >> 0x20" (cast_expression "(ulonglong)lVar29" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar29")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (unary_expression "-((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (- "-") (parenthesized_expression "((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0))" (( "(") (binary_expression "(int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)" (cast_expression "(int)((ulonglong)lVar31 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar31 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar31")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (call_expression "(uint)((int)lVar31 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)lVar31 != 0)" (( "(") (binary_expression "(int)lVar31 != 0" (cast_expression "(int)lVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar31")) (!= "!=") (number_literal "0")) () ")")))) () ")")))) (, ",") (binary_expression "(uint)lVar29 & -(int)lVar31" (cast_expression "(uint)lVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar29")) (& "&") (unary_expression "-(int)lVar31" (- "-") (cast_expression "(int)lVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar31")))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_80 = (undefined *)(uVar9 >> 0x20);" (assignment_expression "local_80 = (undefined *)(uVar9 >> 0x20)" (identifier "local_80") (= "=") (cast_expression "(undefined *)(uVar9 >> 0x20)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 >> 0x20)" (( "(") (binary_expression "uVar9 >> 0x20" (identifier "uVar9") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_84 = (undefined *)uVar9;" (assignment_expression "local_84 = (undefined *)uVar9" (identifier "local_84") (= "=") (cast_expression "(undefined *)uVar9" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar9"))) (; ";")) (expression_statement "uVar26 = local_54 - 1;" (assignment_expression "uVar26 = local_54 - 1" (identifier "uVar26") (= "=") (binary_expression "local_54 - 1" (identifier "local_54") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar25 = (local_50 - 1) + (uint)(local_54 != 0);" (assignment_expression "uVar25 = (local_50 - 1) + (uint)(local_54 != 0)" (identifier "uVar25") (= "=") (binary_expression "(local_50 - 1) + (uint)(local_54 != 0)" (parenthesized_expression "(local_50 - 1)" (( "(") (binary_expression "local_50 - 1" (identifier "local_50") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(local_54 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 != 0)" (( "(") (binary_expression "local_54 != 0" (identifier "local_54") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "local_6c = (uint)local_84 & uVar26;" (assignment_expression "local_6c = (uint)local_84 & uVar26" (identifier "local_6c") (= "=") (binary_expression "(uint)local_84 & uVar26" (cast_expression "(uint)local_84" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_84")) (& "&") (identifier "uVar26"))) (; ";")) (expression_statement "local_74 = (uint)local_80 & uVar25;" (assignment_expression "local_74 = (uint)local_80 & uVar25" (identifier "local_74") (= "=") (binary_expression "(uint)local_80 & uVar25" (cast_expression "(uint)local_80" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_80")) (& "&") (identifier "uVar25"))) (; ";")) (if_statement "if (local_6c != 0 || local_74 != 0) {\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }" (if "if") (parenthesized_expression "(local_6c != 0 || local_74 != 0)" (( "(") (binary_expression "local_6c != 0 || local_74 != 0" (binary_expression "local_6c != 0" (identifier "local_6c") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_74 != 0" (identifier "local_74") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n                  lVar31 = uVar9 + lVar6;\n                  uVar9 = uVar9 + lVar6;\n                  local_6c = uVar26 & (uint)lVar31;\n                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);\n                }" ({ "{") (expression_statement "lVar31 = uVar9 + lVar6;" (assignment_expression "lVar31 = uVar9 + lVar6" (identifier "lVar31") (= "=") (binary_expression "uVar9 + lVar6" (identifier "uVar9") (+ "+") (identifier "lVar6"))) (; ";")) (expression_statement "uVar9 = uVar9 + lVar6;" (assignment_expression "uVar9 = uVar9 + lVar6" (identifier "uVar9") (= "=") (binary_expression "uVar9 + lVar6" (identifier "uVar9") (+ "+") (identifier "lVar6"))) (; ";")) (expression_statement "local_6c = uVar26 & (uint)lVar31;" (assignment_expression "local_6c = uVar26 & (uint)lVar31" (identifier "local_6c") (= "=") (binary_expression "uVar26 & (uint)lVar31" (identifier "uVar26") (& "&") (cast_expression "(uint)lVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar31")))) (; ";")) (expression_statement "local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);" (assignment_expression "local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20)" (identifier "local_74") (= "=") (binary_expression "uVar25 & (uint)((ulonglong)lVar31 >> 0x20)" (identifier "uVar25") (& "&") (call_expression "(uint)((ulonglong)lVar31 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar31 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar31 >> 0x20" (cast_expression "(ulonglong)lVar31" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar31")) (>> ">>") (number_literal "0x20")) () ")"))))) (; ";")) (} "}"))) (expression_statement "lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7));" (assignment_expression "lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7))" (identifier "lVar32") (= "=") (binary_expression "lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7))" (identifier "lVar32") (+ "+") (call_expression "CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7))" (identifier "CONCAT44") (argument_list "(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),\n                                           uVar26 & (uint)(uVar9 - uVar7))" (( "(") (binary_expression "uVar25 & (uint)(uVar9 - uVar7 >> 0x20)" (identifier "uVar25") (& "&") (call_expression "(uint)(uVar9 - uVar7 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 - uVar7 >> 0x20)" (( "(") (binary_expression "uVar9 - uVar7 >> 0x20" (binary_expression "uVar9 - uVar7" (identifier "uVar9") (- "-") (identifier "uVar7")) (>> ">>") (number_literal "0x20")) () ")")))) (, ",") (binary_expression "uVar26 & (uint)(uVar9 - uVar7)" (identifier "uVar26") (& "&") (call_expression "(uint)(uVar9 - uVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 - uVar7)" (( "(") (binary_expression "uVar9 - uVar7" (identifier "uVar9") (- "-") (identifier "uVar7")) () ")")))) () ")"))))) (; ";")) (expression_statement "uVar26 = (uint)lVar32;" (assignment_expression "uVar26 = (uint)lVar32" (identifier "uVar26") (= "=") (cast_expression "(uint)lVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar32"))) (; ";")) (expression_statement "uVar25 = (uint)((ulonglong)lVar32 >> 0x20);" (assignment_expression "uVar25 = (uint)((ulonglong)lVar32 >> 0x20)" (identifier "uVar25") (= "=") (call_expression "(uint)((ulonglong)lVar32 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar32 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar32 >> 0x20" (cast_expression "(ulonglong)lVar32" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar32")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_dc = local_6c | -local_54 & uVar26;" (assignment_expression "local_dc = local_6c | -local_54 & uVar26" (identifier "local_dc") (= "=") (binary_expression "local_6c | -local_54 & uVar26" (identifier "local_6c") (| "|") (binary_expression "-local_54 & uVar26" (unary_expression "-local_54" (- "-") (identifier "local_54")) (& "&") (identifier "uVar26")))) (; ";")) (expression_statement "local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;" (assignment_expression "local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25" (identifier "local_d8") (= "=") (binary_expression "local_74 | -(local_50 + (local_54 != 0)) & uVar25" (identifier "local_74") (| "|") (binary_expression "-(local_50 + (local_54 != 0)) & uVar25" (unary_expression "-(local_50 + (local_54 != 0))" (- "-") (parenthesized_expression "(local_50 + (local_54 != 0))" (( "(") (binary_expression "local_50 + (local_54 != 0)" (identifier "local_50") (+ "+") (parenthesized_expression "(local_54 != 0)" (( "(") (binary_expression "local_54 != 0" (identifier "local_54") (!= "!=") (number_literal "0")) () ")"))) () ")"))) (& "&") (identifier "uVar25")))) (; ";")) (if_statement "if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }" (if "if") (parenthesized_expression "(local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26))" (( "(") (binary_expression "local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)" (binary_expression "local_d8 < uVar25" (identifier "local_d8") (< "<") (identifier "uVar25")) (|| "||") (binary_expression "local_d8 - uVar25 < (uint)(local_dc < uVar26)" (binary_expression "local_d8 - uVar25" (identifier "local_d8") (- "-") (identifier "uVar25")) (< "<") (call_expression "(uint)(local_dc < uVar26)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_dc < uVar26)" (( "(") (binary_expression "local_dc < uVar26" (identifier "local_dc") (< "<") (identifier "uVar26")) () ")"))))) () ")")) (compound_statement "{\n                  bVar28 = CARRY4(local_dc,local_54);\n                  local_dc = local_dc + local_54;\n                  local_d8 = local_d8 + local_50 + (uint)bVar28;\n                }" ({ "{") (expression_statement "bVar28 = CARRY4(local_dc,local_54);" (assignment_expression "bVar28 = CARRY4(local_dc,local_54)" (identifier "bVar28") (= "=") (call_expression "CARRY4(local_dc,local_54)" (identifier "CARRY4") (argument_list "(local_dc,local_54)" (( "(") (identifier "local_dc") (, ",") (identifier "local_54") () ")")))) (; ";")) (expression_statement "local_dc = local_dc + local_54;" (assignment_expression "local_dc = local_dc + local_54" (identifier "local_dc") (= "=") (binary_expression "local_dc + local_54" (identifier "local_dc") (+ "+") (identifier "local_54"))) (; ";")) (expression_statement "local_d8 = local_d8 + local_50 + (uint)bVar28;" (assignment_expression "local_d8 = local_d8 + local_50 + (uint)bVar28" (identifier "local_d8") (= "=") (binary_expression "local_d8 + local_50 + (uint)bVar28" (binary_expression "local_d8 + local_50" (identifier "local_d8") (+ "+") (identifier "local_50")) (+ "+") (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")))) (; ";")) (} "}"))) (expression_statement "local_24._0_4_ = (undefined *)local_dc;" (assignment_expression "local_24._0_4_ = (undefined *)local_dc" (field_expression "local_24._0_4_" (identifier "local_24") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(undefined *)local_dc" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_dc"))) (; ";")) (expression_statement "local_24._4_4_ = (undefined *)local_d8;" (assignment_expression "local_24._4_4_ = (undefined *)local_d8" (field_expression "local_24._4_4_" (identifier "local_24") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(undefined *)local_d8" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_d8"))) (; ";")) (expression_statement "local_2c = *(undefined4 *)(param_1 + 0x170);" (assignment_expression "local_2c = *(undefined4 *)(param_1 + 0x170)" (identifier "local_2c") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x170)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x170)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x170)" (( "(") (binary_expression "param_1 + 0x170" (identifier "param_1") (+ "+") (number_literal "0x170")) () ")"))))) (; ";")) (if_statement "if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {\n                  local_2c = 0;\n                }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" (* "*") (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  local_2c = 0;\n                }" ({ "{") (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "local_2d = '\0';" (assignment_expression "local_2d = '\0'" (identifier "local_2d") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4);" (assignment_expression "uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4)" (identifier "uVar30") (= "=") (call_expression "FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4)" (identifier "FUN_001619e0") (argument_list "(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,\n                                      &local_24,param_4)" (( "(") (pointer_expression "*local_44" (* "*") (identifier "local_44")) (, ",") (identifier "param_2") (, ",") (identifier "param_1") (, ",") (number_literal "1") (, ",") (identifier "uVar9") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (pointer_expression "&local_2d" (& "&") (identifier "local_2d")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (identifier "param_4") () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "iVar18 = *local_44;" (assignment_expression "iVar18 = *local_44" (identifier "iVar18") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (if_statement "if ((local_4c != 0) && (cVar1 != '\0')) {\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }" (if "if") (parenthesized_expression "((local_4c != 0) && (cVar1 != '\0'))" (( "(") (binary_expression "(local_4c != 0) && (cVar1 != '\0')" (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          uVar26 = *(uint *)(local_4c + 0x168);\n          uVar25 = *(uint *)(iVar18 + 0x164);\n          uVar21 = *(uint *)(iVar18 + 0x168);\n          uVar16 = *(uint *)(local_4c + 0x164);\n          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }\n          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);\n          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));\n          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }\n        }" ({ "{") (expression_statement "uVar26 = *(uint *)(local_4c + 0x168);" (assignment_expression "uVar26 = *(uint *)(local_4c + 0x168)" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)(local_4c + 0x168)" (* "*") (cast_expression "(uint *)(local_4c + 0x168)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x168)" (( "(") (binary_expression "local_4c + 0x168" (identifier "local_4c") (+ "+") (number_literal "0x168")) () ")"))))) (; ";")) (expression_statement "uVar25 = *(uint *)(iVar18 + 0x164);" (assignment_expression "uVar25 = *(uint *)(iVar18 + 0x164)" (identifier "uVar25") (= "=") (pointer_expression "*(uint *)(iVar18 + 0x164)" (* "*") (cast_expression "(uint *)(iVar18 + 0x164)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x164)" (( "(") (binary_expression "iVar18 + 0x164" (identifier "iVar18") (+ "+") (number_literal "0x164")) () ")"))))) (; ";")) (expression_statement "uVar21 = *(uint *)(iVar18 + 0x168);" (assignment_expression "uVar21 = *(uint *)(iVar18 + 0x168)" (identifier "uVar21") (= "=") (pointer_expression "*(uint *)(iVar18 + 0x168)" (* "*") (cast_expression "(uint *)(iVar18 + 0x168)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x168)" (( "(") (binary_expression "iVar18 + 0x168" (identifier "iVar18") (+ "+") (number_literal "0x168")) () ")"))))) (; ";")) (expression_statement "uVar16 = *(uint *)(local_4c + 0x164);" (assignment_expression "uVar16 = *(uint *)(local_4c + 0x164)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(local_4c + 0x164)" (* "*") (cast_expression "(uint *)(local_4c + 0x164)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x164)" (( "(") (binary_expression "local_4c + 0x164" (identifier "local_4c") (+ "+") (number_literal "0x164")) () ")"))))) (; ";")) (if_statement "if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }" (if "if") (parenthesized_expression "(uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16))" (( "(") (binary_expression "uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)" (binary_expression "uVar21 < uVar26" (identifier "uVar21") (< "<") (identifier "uVar26")) (|| "||") (binary_expression "uVar21 - uVar26 < (uint)(uVar25 < uVar16)" (binary_expression "uVar21 - uVar26" (identifier "uVar21") (- "-") (identifier "uVar26")) (< "<") (call_expression "(uint)(uVar25 < uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar25 < uVar16)" (( "(") (binary_expression "uVar25 < uVar16" (identifier "uVar25") (< "<") (identifier "uVar16")) () ")"))))) () ")")) (compound_statement "{\n                    \n            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");\n          }" ({ "{") (expression_statement "FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");" (call_expression "FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets")" (identifier "FUN_000da200") (argument_list "("../../gold/layout.cc",0xfd9,"set_segment_offsets")" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0xfd9") (, ",") (string_literal ""set_segment_offsets"" (" """) (string_content "set_segment_offsets") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);" (assignment_expression "uVar24 = uVar16 + *(uint *)(local_4c + 0x16c)" (identifier "uVar24") (= "=") (binary_expression "uVar16 + *(uint *)(local_4c + 0x16c)" (identifier "uVar16") (+ "+") (pointer_expression "*(uint *)(local_4c + 0x16c)" (* "*") (cast_expression "(uint *)(local_4c + 0x16c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x16c)" (( "(") (binary_expression "local_4c + 0x16c" (identifier "local_4c") (+ "+") (number_literal "0x16c")) () ")")))))) (; ";")) (expression_statement "uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));" (assignment_expression "uVar27 = uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c))" (identifier "uVar27") (= "=") (binary_expression "uVar26 + *(int *)(local_4c + 0x170) +\n                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c))" (binary_expression "uVar26 + *(int *)(local_4c + 0x170)" (identifier "uVar26") (+ "+") (pointer_expression "*(int *)(local_4c + 0x170)" (* "*") (cast_expression "(int *)(local_4c + 0x170)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x170)" (( "(") (binary_expression "local_4c + 0x170" (identifier "local_4c") (+ "+") (number_literal "0x170")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar16,*(uint *)(local_4c + 0x16c))" (identifier "CARRY4") (argument_list "(uVar16,*(uint *)(local_4c + 0x16c))" (( "(") (identifier "uVar16") (, ",") (pointer_expression "*(uint *)(local_4c + 0x16c)" (* "*") (cast_expression "(uint *)(local_4c + 0x16c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x16c)" (( "(") (binary_expression "local_4c + 0x16c" (identifier "local_4c") (+ "+") (number_literal "0x16c")) () ")")))) () ")")))))) (; ";")) (if_statement "if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }" (if "if") (parenthesized_expression "(uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24))" (( "(") (binary_expression "uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)" (binary_expression "uVar21 < uVar27" (identifier "uVar21") (< "<") (identifier "uVar27")) (|| "||") (binary_expression "uVar21 - uVar27 < (uint)(uVar25 < uVar24)" (binary_expression "uVar21 - uVar27" (identifier "uVar21") (- "-") (identifier "uVar27")) (< "<") (call_expression "(uint)(uVar25 < uVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar25 < uVar24)" (( "(") (binary_expression "uVar25 < uVar24" (identifier "uVar25") (< "<") (identifier "uVar24")) () ")"))))) () ")")) (compound_statement "{\n            uVar3 = *(uint *)(iVar18 + 0x16c);\n            uVar4 = *(uint *)(iVar18 + 0x16c);\n            iVar12 = *(int *)(iVar18 + 0x170);\n            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");\n            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));\n            iVar18 = *local_44;\n          }" ({ "{") (expression_statement "uVar3 = *(uint *)(iVar18 + 0x16c);" (assignment_expression "uVar3 = *(uint *)(iVar18 + 0x16c)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(iVar18 + 0x16c)" (* "*") (cast_expression "(uint *)(iVar18 + 0x16c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x16c)" (( "(") (binary_expression "iVar18 + 0x16c" (identifier "iVar18") (+ "+") (number_literal "0x16c")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(uint *)(iVar18 + 0x16c);" (assignment_expression "uVar4 = *(uint *)(iVar18 + 0x16c)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(iVar18 + 0x16c)" (* "*") (cast_expression "(uint *)(iVar18 + 0x16c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x16c)" (( "(") (binary_expression "iVar18 + 0x16c" (identifier "iVar18") (+ "+") (number_literal "0x16c")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(iVar18 + 0x170);" (assignment_expression "iVar12 = *(int *)(iVar18 + 0x170)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar18 + 0x170)" (* "*") (cast_expression "(int *)(iVar18 + 0x170)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x170)" (( "(") (binary_expression "iVar18 + 0x170" (identifier "iVar18") (+ "+") (number_literal "0x170")) () ")"))))) (; ";")) (expression_statement "uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");" (assignment_expression "uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]")" (identifier "uVar13") (= "=") (call_expression "gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]")" (identifier "gettext") (argument_list "("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]")" (( "(") (string_literal ""load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"" (" """) (string_content "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]") (" """)) () ")")))) (; ";")) (expression_statement "FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));" (call_expression "FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3))" (identifier "FUN_000d1330") (argument_list "(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,\n                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3))" (( "(") (identifier "uVar13") (, ",") (identifier "uVar16") (, ",") (identifier "uVar26") (, ",") (identifier "uVar24") (, ",") (identifier "uVar27") (, ",") (identifier "uVar25") (, ",") (identifier "uVar21") (, ",") (binary_expression "uVar25 + uVar4" (identifier "uVar25") (+ "+") (identifier "uVar4")) (, ",") (binary_expression "uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3)" (binary_expression "uVar21 + iVar12" (identifier "uVar21") (+ "+") (identifier "iVar12")) (+ "+") (cast_expression "(uint)CARRY4(uVar25,uVar3)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar25,uVar3)" (identifier "CARRY4") (argument_list "(uVar25,uVar3)" (( "(") (identifier "uVar25") (, ",") (identifier "uVar3") () ")"))))) () ")"))) (; ";")) (expression_statement "iVar18 = *local_44;" (assignment_expression "iVar18 = *local_44" (identifier "iVar18") (= "=") (pointer_expression "*local_44" (* "*") (identifier "local_44"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "local_4c = iVar18;" (assignment_expression "local_4c = iVar18" (identifier "local_4c") (= "=") (identifier "iVar18")) (; ";")) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(param_1 + 0x128) != local_44)" (( "(") (binary_expression "*(int **)(param_1 + 0x128) != local_44" (pointer_expression "*(int **)(param_1 + 0x128)" (* "*") (cast_expression "(int **)(param_1 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (identifier "local_44")) () ")")) (; ";")) (expression_statement "lVar32 = local_24;" (assignment_expression "lVar32 = local_24" (identifier "lVar32") (= "=") (identifier "local_24")) (; ";")) (if_statement "if (param_3 != 0) goto LAB_00113ce7;" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00113ce7;" (goto "goto") (statement_identifier "LAB_00113ce7") (; ";"))) (} "}")))) (expression_statement "piVar20 = *(int **)(param_1 + 0x124);" (assignment_expression "piVar20 = *(int **)(param_1 + 0x124)" (identifier "piVar20") (= "=") (pointer_expression "*(int **)(param_1 + 0x124)" (* "*") (cast_expression "(int **)(param_1 + 0x124)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (if_statement "if (piVar20 != local_44) {\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }" (if "if") (parenthesized_expression "(piVar20 != local_44)" (( "(") (binary_expression "piVar20 != local_44" (identifier "piVar20") (!= "!=") (identifier "local_44")) () ")")) (compound_statement "{\n    do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);\n  }" ({ "{") (do_statement "do {\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    } while (*(int **)(param_1 + 0x128) != piVar20);" (do "do") (compound_statement "{\n      iVar12 = *(int *)(*piVar20 + 0x194);\n      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }\n      piVar20 = piVar20 + 1;\n    }" ({ "{") (expression_statement "iVar12 = *(int *)(*piVar20 + 0x194);" (assignment_expression "iVar12 = *(int *)(*piVar20 + 0x194)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(*piVar20 + 0x194)" (* "*") (cast_expression "(int *)(*piVar20 + 0x194)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar20 + 0x194)" (( "(") (binary_expression "*piVar20 + 0x194" (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (+ "+") (number_literal "0x194")) () ")"))))) (; ";")) (if_statement "if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }" (if "if") (parenthesized_expression "((iVar12 != 1) && (iVar12 != 0x6474e551))" (( "(") (binary_expression "(iVar12 != 1) && (iVar12 != 0x6474e551)" (parenthesized_expression "(iVar12 != 1)" (( "(") (binary_expression "iVar12 != 1" (identifier "iVar12") (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(iVar12 != 0x6474e551)" (( "(") (binary_expression "iVar12 != 0x6474e551" (identifier "iVar12") (!= "!=") (number_literal "0x6474e551")) () ")"))) () ")")) (compound_statement "{\n        uVar13 = 0;\n        if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }\n        FUN_0015f160(*piVar20,uVar13);\n      }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar12 == 0x6474e552) {\n          uVar13 = local_2c;\n        }" (if "if") (parenthesized_expression "(iVar12 == 0x6474e552)" (( "(") (binary_expression "iVar12 == 0x6474e552" (identifier "iVar12") (== "==") (number_literal "0x6474e552")) () ")")) (compound_statement "{\n          uVar13 = local_2c;\n        }" ({ "{") (expression_statement "uVar13 = local_2c;" (assignment_expression "uVar13 = local_2c" (identifier "uVar13") (= "=") (identifier "local_2c")) (; ";")) (} "}"))) (expression_statement "FUN_0015f160(*piVar20,uVar13);" (call_expression "FUN_0015f160(*piVar20,uVar13)" (identifier "FUN_0015f160") (argument_list "(*piVar20,uVar13)" (( "(") (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" (identifier "piVar20") (= "=") (binary_expression "piVar20 + 1" (identifier "piVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(param_1 + 0x128) != piVar20)" (( "(") (binary_expression "*(int **)(param_1 + 0x128) != piVar20" (pointer_expression "*(int **)(param_1 + 0x128)" (* "*") (cast_expression "(int **)(param_1 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (identifier "piVar20")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00113d4d:\n  if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }" (statement_identifier "LAB_00113d4d") (: ":") (if_statement "if (*(int *)(param_1 + 0x164) != 0) {\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x164) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x164) != 0" (pointer_expression "*(int *)(param_1 + 0x164)" (* "*") (cast_expression "(int *)(param_1 + 0x164)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x164)" (( "(") (binary_expression "param_1 + 0x164" (identifier "param_1") (+ "+") (number_literal "0x164")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0015f8f0(*(int *)(param_1 + 0x164));\n  }" ({ "{") (expression_statement "FUN_0015f8f0(*(int *)(param_1 + 0x164));" (call_expression "FUN_0015f8f0(*(int *)(param_1 + 0x164))" (identifier "FUN_0015f8f0") (argument_list "(*(int *)(param_1 + 0x164))" (( "(") (pointer_expression "*(int *)(param_1 + 0x164)" (* "*") (cast_expression "(int *)(param_1 + 0x164)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x164)" (( "(") (binary_expression "param_1 + 0x164" (identifier "param_1") (+ "+") (number_literal "0x164")) () ")")))) () ")"))) (; ";")) (} "}")))) (return_statement "return local_24;" (return "return") (identifier "local_24") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: off_t set_segment_offsets(Layout * this, Target * target,
   Output_segment * load_seg, uint * pshndx) */

type_1 __thiscall
var_2::type_2::function_1(type_2 *var_12,type_3 *target,type_4 *var_22,type_5 *pshndx)

{
  type_6 var_25;
  var_1<var_2::type_4**,var_3::vector<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>var_4>
  var_5;
  var_1<var_2::type_4**,var_3::vector<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>var_4>
  var_6;
  type_4 *pOVar2;
  type_7 var_73;
  type_8 var_31;
  int var_36;
  type_9 var_58;
  uint64_t var_55;
  type_9 var_54;
  type_9 var_53;
  uint64_t var_50;
  bool var_42;
  bool var_39;
  int var_7;
  type_4 **var_9;
  type_10 *var_17;
  type_4 *var_32;
  char *format;
  type_5 var_62;
  type_5 var_61;
  type_5 var_65;
  int var_23;
  type_6 var_41;
  type_11 *pTVar20;
  type_12 *var_30;
  type_8 var_29;
  type_5 var_63;
  type_5 var_18;
  type_5 var_19;
  type_5 var_64;
  type_8 var_72;
  bool var_69;
  uint64_t var_49;
  uint64_t var_34;
  type_3 *in_stack_ffffff14;
  type_5 var_67;
  type_5 var_66;
  type_5 var_21;
  type_5 var_20;
  type_5 var_38;
  type_5 var_52;
  type_5 var_51;
  type_5 var_57;
  type_5 var_56;
  type_5 var_47;
  type_5 var_46;
  type_5 var_45;
  type_5 var_44;
  type_4 *var_68;
  type_8 var_13;
  int var_28;
  bool var_59;
  type_5 increase_relro;
  type_5 var_37;
  type_1 var_40;
  
  var_5._M_current =
       (var_12->segment_list_).
       super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>._M_impl.
       _M_start;
  var_6._M_current =
       (var_12->segment_list_).
       super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>._M_impl.
       _M_finish;
  var_7 = (int)var_6._M_current - (int)var_5._M_current;
  if (var_7 < 0x7ffffffd) {
    if (0 < var_7) {
      var_13 = (type_8)(var_7 >> 2);
      goto LAB_00113091;
    }
  }
  else {
    var_13 = (type_8)0x1fffffff;
LAB_00113091:
    do {
      var_9 = (type_4 **)var_8((int)var_13 << 2,(type_13 *)&var_14::nothrow);
      if (var_9 != (type_4 **)0x0) {
                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */
        var_14::
        __stable_sort_adaptive<__gnu_cxx::var_1<var_2::type_4**,var_3::vector<var_2::type_4*>var_4>,_gold::type_4**,_int,var_15::__ops::var_11<var_2::Layout::var_10>var_4>
                  (var_5,var_6,var_9,(int)var_13,
                   (var_11<var_2::type_2::var_10>)var_12);
        goto LAB_001130c6;
      }
      var_13 = (type_8)((int)var_13 >> 1);
    } while (var_13 != (type_8)0x0);
  }
                    /* try { // try from 0011347c to 00113480 has its CatchHandler @ 0011423e */
  var_14::
  __inplace_stable_sort<__gnu_cxx::var_1<var_2::type_4**,var_3::vector<var_2::type_4*>var_4>,var_15::__ops::var_11<var_2::type_2::var_10>var_4>
            (var_5,var_6,(var_11<var_2::type_2::var_10>)var_12);
  var_9 = (type_4 **)0x0;
LAB_001130c6:
  var_16(var_9,(type_13 *)&var_14::nothrow);
  var_17 = parameters->options_;
  if (var_17 == (type_10 *)0x0) goto LAB_0011413b;
  if ((var_17->Ttext_).user_set_via_option == false) {
    var_21 = 0;
    var_20 = 0;
    if (((var_17->shared_).value == false) && ((var_17->pie_).value == false)) {
      pTVar20 = target->pti_;
      var_21 = (type_5)pTVar20->default_text_segment_address;
      var_20 = *(type_5 *)((int)&pTVar20->default_text_segment_address + 4);
      var_18 = *(type_5 *)((int)&(var_17->max_page_size_).value + 4);
      var_19 = (type_5)(var_17->max_page_size_).value;
      if (var_18 == 0 && var_19 == 0) {
        var_19 = (type_5)pTVar20->var_27;
        var_18 = *(type_5 *)((int)&pTVar20->var_27 + 4);
      }
      if (var_20 < var_18 || var_20 - var_18 < (type_5)(var_21 < var_19)) {
        var_21 = var_19;
        var_20 = var_18;
      }
    }
  }
  else {
    var_21 = (type_5)(var_17->Ttext_).value;
    var_20 = *(type_5 *)((int)&(var_17->Ttext_).value + 4);
  }
  var_40._0_4_ = 0;
  var_40._4_4_ = 0;
  if ((var_22 == (type_4 *)0x0) &&
     (var_13 = (type_8)(var_12->special_output_list_).
                          super__Vector_base<var_2::type_12*,var_3::allocator<var_2::type_12*>var_4>
                          ._M_impl._M_start,
     var_13 !=
     (type_8)(var_12->special_output_list_).
              super__Vector_base<var_2::type_12*,var_3::allocator<var_2::type_12*>var_4>._M_impl.
              _M_finish)) {
    do {
      var_18 = (*((type_12 *)*var_13)->_vptr_Output_data[3])((type_12 *)*var_13);
      if (var_23 != 0 || var_18 != 0) {
        var_69 = (type_5)var_40 != 0;
        var_19 = (type_5)var_40 - 1;
        var_40._0_4_ = -var_18 & var_19 + var_18;
        var_40._4_4_ = -(var_23 + (type_5)(var_18 != 0)) &
                    (var_40._4_4_ - 1) + (type_5)var_69 + var_23 + (type_5)var_24(var_19,var_18);
      }
      var_30 = (type_12 *)*var_13;
      var_25 = var_30->field_0x1c;
      if ((var_25 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
        var_26("../../gold/output.h",0x142,"set_address");
      }
      *(type_14 *)&var_30->address_ = 0;
      *(type_14 *)((int)&var_30->address_ + 4) = 0;
      var_30->field_0x1c = var_25 | 1;
      if ((var_25 & 4) != 0) {
                    /* WARNING: Subroutine does not return */
        var_26("../../gold/output.h",0x14b,"set_file_offset");
      }
      *(type_5 *)&var_30->offset_ = (type_5)var_40;
      *(type_5 *)((int)&var_30->offset_ + 4) = var_40._4_4_;
      var_30->field_0x1c = var_25 | 5;
      if ((var_25 & 2) == 0) {
        (*var_30->_vptr_Output_data[0xe])(var_30);
        if ((var_30->field_0x1c & 2) == 0) {
                    /* WARNING: Subroutine does not return */
          var_26("../../gold/output.h",0x163,"finalize_data_size");
        }
        var_30 = (type_12 *)*var_13;
        if ((var_30->field_0x1c & 2) == 0) {
                    /* WARNING: Subroutine does not return */
          var_26("../../gold/output.h",0xcf,"data_size");
        }
      }
      var_69 = var_24((type_5)var_40,(type_5)var_30->data_size_);
      var_40._0_4_ = (type_5)var_40 + (int)var_30->data_size_;
      var_40._4_4_ = var_40._4_4_ + *(int *)((int)&var_30->data_size_ + 4) + (type_5)var_69;
      var_13 = var_13 + 1;
    } while ((type_8)(var_12->special_output_list_).
                      super__Vector_base<var_2::type_12*,var_3::allocator<var_2::type_12*>var_4>.
                      _M_impl._M_finish != var_13);
    increase_relro = var_12->increase_relro_;
    var_17 = parameters->options_;
    if ((var_12->script_options_->script_sections_).saw_sections_clause_ != false) {
LAB_0011314a:
      increase_relro = 0;
    }
    if (var_17 == (type_10 *)0x0) {
LAB_0011413b:
                    /* WARNING: Subroutine does not return */
      var_26("../../gold/parameters.h",0x5c,"options");
    }
  }
  else {
    increase_relro = var_12->increase_relro_;
    if ((var_12->script_options_->script_sections_).saw_sections_clause_ != false) goto LAB_0011314a;
  }
  var_69 = (var_17->check_sections_).value;
  var_38 = *pshndx;
  var_13 = (var_12->segment_list_).
             super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>.
             _M_impl._M_start;
  var_37 = var_38;
  if (var_13 ==
      (var_12->segment_list_).
      super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>._M_impl.
      _M_finish) {
    var_54 = var_40;
    if (var_22 == (type_4 *)0x0) goto LAB_00113d4d;
LAB_00113ce7:
    var_40._4_4_ = (type_5)((type_15)var_54 >> 0x20);
    var_40._0_4_ = (type_5)var_54;
    pTVar20 = target->pti_;
    if (pTVar20->isolate_execinstr != false) {
      var_17 = parameters->options_;
      if (var_17 == (type_10 *)0x0) {
        var_40 = var_54;
                    /* WARNING: Subroutine does not return */
        Target::var_27(in_stack_ffffff14);
      }
      var_28 = *(int *)((int)&(var_17->max_page_size_).value + 4);
      var_13 = (type_8)(var_17->max_page_size_).value;
      if (var_28 == 0 && var_13 == (type_8)0x0) {
        var_28 = *(int *)((int)&pTVar20->var_27 + 4);
        var_13 = (type_8)pTVar20->var_27;
      }
      var_18 = (type_5)var_40 & -(int)var_13;
      var_19 = var_40._4_4_ & -(var_28 + (type_5)(var_13 != (type_8)0x0));
      if (var_19 < var_40._4_4_ || var_19 - var_40._4_4_ < (type_5)(var_18 < (type_5)var_40)) {
        var_69 = var_24(var_18,(type_5)var_13);
        var_18 = var_18 + (int)var_13;
        var_19 = var_19 + var_28 + (type_5)var_69;
      }
      var_29 = (var_12->relax_output_list_).
                 super__Vector_base<var_2::type_12*,var_3::allocator<var_2::type_12*>var_4>._M_impl
                 ._M_start;
      var_40._0_4_ = var_18;
      var_40._4_4_ = var_19;
      if (var_29 !=
          (var_12->relax_output_list_).
          super__Vector_base<var_2::type_12*,var_3::allocator<var_2::type_12*>var_4>._M_impl.
          _M_finish) {
        do {
          var_30 = *var_29;
          if (var_30 != (type_12 *)0x0) {
            (*var_30->_vptr_Output_data[1])(var_30);
          }
          var_29 = var_29 + 1;
        } while ((var_12->relax_output_list_).
                 super__Vector_base<var_2::type_12*,var_3::allocator<var_2::type_12*>var_4>._M_impl
                 ._M_finish != var_29);
        var_31 = (var_12->relax_output_list_).
                  super__Vector_base<var_2::type_12*,var_3::allocator<var_2::type_12*>var_4>.
                  _M_impl._M_start;
        if (var_29 != var_31) {
          (var_12->relax_output_list_).
          super__Vector_base<var_2::type_12*,var_3::allocator<var_2::type_12*>var_4>._M_impl.
          _M_finish = var_31;
        }
      }
      var_13 = (var_12->segment_list_).
                 super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>.
                 _M_impl._M_start;
      var_32 = *var_13;
      while (var_32 != var_22) {
        var_13 = var_13 + 1;
        if (var_32->type_ == 1) {
          var_18 = (type_5)var_32->vaddr_;
          var_7 = *(int *)((int)&var_32->vaddr_ + 4);
          var_59 = false;
          var_49 = var_32->memsz_;
          var_50 = var_32->memsz_;
          var_36 = *(int *)((int)&var_32->memsz_ + 4);
          var_34 = type_4::var_33
                             (var_32,target,var_12,true,var_32->vaddr_,&increase_relro,&var_59,
                              &var_40,&var_37);
          if (var_34 != var_35(var_7 + var_36 + (type_5)var_24(var_18,(type_5)var_49),
                                 var_18 + (int)var_50)) {
                    /* WARNING: Subroutine does not return */
            var_26("../../gold/layout.cc",0x1005,"set_segment_offsets");
          }
        }
        var_32 = *var_13;
      }
      var_54 = var_35(var_40._4_4_,(type_5)var_40);
      if (var_37 != var_38) {
                    /* WARNING: Subroutine does not return */
        var_26("../../gold/layout.cc",0x1009,"set_segment_offsets");
      }
    }
    var_40 = var_54;
    var_13 = (var_12->segment_list_).
               super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>.
               _M_impl._M_finish;
  }
  else {
    var_68 = (type_4 *)0x0;
    var_49 = var_35(var_20,var_21);
    do {
      var_32 = *var_13;
      pOVar2 = var_68;
      if (var_32->type_ == 1) {
        var_39 = target->pti_->isolate_execinstr;
        if (var_39 == false) {
          if ((var_32 != var_22) && (var_22 != (type_4 *)0x0)) {
                    /* WARNING: Subroutine does not return */
            var_26("../../gold/layout.cc",0xf2b,"set_segment_offsets");
          }
LAB_00113530:
          var_22 = (type_4 *)0x0;
        }
        else if (var_32 == var_22) {
          if (var_40 == 0) goto LAB_00113530;
          var_40 = 0;
          var_38 = *pshndx;
        }
        var_41 = (type_6)var_32->field_0x19c >> 1;
        var_17 = parameters->options_;
        var_25 = var_41 & 1;
        if ((var_41 & 1) == 0) {
          if (var_17 == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_26("../../gold/parameters.h",0x5c,"options");
          }
          var_42 = (var_17->Ttext_).user_set_via_option;
          var_50 = var_49;
          var_54 = var_40;
          if ((var_42 == false) ||
             ((var_41 = (var_17->omagic_).value, (bool)var_41 == false &&
              (((var_32->flags_ & 2) != 0 ||
               ((var_41 = var_42, (var_32->flags_ & 1) == 0 && (var_39 != false)))))))) {
            var_41 = (var_17->Trodata_segment_).user_set_via_option;
            if (((bool)var_41 == false) || ((var_32->flags_ & 3) != 0)) {
              var_39 = (var_17->Tdata_).user_set_via_option;
              var_41 = (var_17->Tbss_).user_set_via_option;
              if (var_39 == false) {
LAB_001139b0:
                if ((var_41 == 0) || (((*var_13)->flags_ & 2) == 0)) {
LAB_00113930:
                  var_17 = parameters->options_;
                  var_54 = var_40;
                  var_41 = var_25;
                }
                else {
                  var_39 = type_4::var_43(*var_13);
                  var_17 = parameters->options_;
                  if (var_39) goto LAB_00113231;
                  if (var_17 == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
                    var_26("../../gold/parameters.h",0x5c,"options");
                  }
                  var_50 = (var_17->Tbss_).value;
                  var_54 = var_40;
                }
              }
              else {
                if ((var_32->flags_ & 2) == 0) goto LAB_00113930;
                if ((bool)var_41 != false) {
                  var_42 = type_4::var_43(var_32);
                  var_17 = parameters->options_;
                  if (!var_42) {
                    if (var_17 == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
                      var_26("../../gold/parameters.h",0x5c,"options");
                    }
                    var_41 = (var_17->Tbss_).user_set_via_option;
                    goto LAB_001139b0;
                  }
                  if (var_17 == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
                    var_26("../../gold/parameters.h",0x5c,"options");
                  }
                }
                var_50 = (var_17->Tdata_).value;
                var_54 = var_40;
                var_41 = var_39;
              }
            }
            else {
              var_50 = (var_17->Trodata_segment_).value;
            }
          }
        }
        else {
          var_49 = var_32->paddr_;
LAB_00113231:
          var_50 = var_49;
          var_54 = var_40;
          var_41 = var_25;
          if (var_17 == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_26("../../gold/parameters.h",0x5c,"options");
          }
        }
        var_45 = (type_5)(var_17->max_page_size_).value;
        var_44 = *(type_5 *)((int)&(var_17->max_page_size_).value + 4);
        var_47 = (type_5)(var_17->common_page_size_).value;
        var_46 = *(type_5 *)((int)&(var_17->common_page_size_).value + 4);
        if (var_44 == 0 && var_45 == 0) {
          pTVar20 = target->pti_;
          var_45 = (type_5)pTVar20->var_27;
          var_44 = *(type_5 *)((int)&pTVar20->var_27 + 4);
          if (var_46 == 0 && var_47 == 0) goto LAB_00113289;
LAB_001135dc:
          if (var_44 < var_46 || var_44 - var_46 < (type_5)(var_45 < var_47)) {
LAB_001132a7:
            var_47 = var_45;
            var_46 = var_44;
          }
        }
        else {
          if (var_46 != 0 || var_47 != 0) goto LAB_001135dc;
          pTVar20 = target->pti_;
LAB_00113289:
          var_47 = (type_5)pTVar20->common_pagesize;
          var_46 = *(type_5 *)((int)&pTVar20->common_pagesize + 4);
          if (var_44 < var_46 || var_44 - var_46 < (type_5)(var_45 < var_47))
          goto LAB_001132a7;
        }
        var_53 = var_35(var_44,var_45);
        if ((((var_17->nmagic_).value == false) && ((var_17->omagic_).value == false)) &&
           (var_32 = *var_13, var_18 = *(type_5 *)((int)&var_32->min_p_align_ + 4),
           var_18 < var_44 || var_18 - var_44 < (type_5)((type_5)var_32->min_p_align_ < var_45)))
        {
          *(type_5 *)&var_32->min_p_align_ = var_45;
          *(type_5 *)((int)&var_32->min_p_align_ + 4) = var_44;
        }
        var_40 = var_54;
        if (var_41 == 0) {
          var_49 = type_4::var_48(*var_13);
          var_19 = (type_5)(var_49 >> 0x20);
          var_18 = (type_5)var_49;
          if ((var_49 == 0) ||
             (var_19 <= var_44 && (type_5)(var_45 < var_18) <= var_44 - var_19)) {
            var_32 = *var_13;
            var_34 = var_50;
          }
          else {
            var_58 = var_49 + (var_50 - 1);
            var_34 = var_35((type_5)((type_15)var_58 >> 0x20) & -(var_19 + (var_18 != 0)),
                              (type_5)var_58 & -var_18);
            var_32 = *var_13;
          }
          var_52 = (type_5)var_34;
          var_51 = (type_5)(var_34 >> 0x20);
          var_55 = var_34;
          if (var_32 != var_22) {
            var_18 = (var_44 - 1) + (type_5)(var_45 != 0);
            if ((var_51 & var_18) != 0 || (var_52 & var_45 - 1) != 0) {
              var_55 = var_34 + var_53;
            }
            var_40 = var_54 + var_35((type_5)(var_55 - var_50 >> 0x20) & var_18,
                                   (type_5)(var_55 - var_50) & var_45 - 1);
            goto LAB_00113314;
          }
          if (var_54 != 0) {
                    /* WARNING: Subroutine does not return */
            var_26("../../gold/layout.cc",0xf6e,"set_segment_offsets");
          }
          var_17 = parameters->options_;
          if (var_17 == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_26("../../gold/parameters.h",0x5c,"options");
          }
          if ((var_17->rosegment_gap_).user_set_via_option == false) {
            var_7 = *(int *)((int)&target->pti_->rosegment_gap + 4);
            var_18 = (type_5)target->pti_->rosegment_gap;
          }
          else {
            var_18 = (type_5)(var_17->rosegment_gap_).value;
            var_7 = *(int *)((int)&(var_17->rosegment_gap_).value + 4);
          }
          var_19 = var_7 + var_20 + (type_5)var_24(var_18,var_21);
          if (var_51 < var_19 || var_51 - var_19 < (type_5)(var_52 < var_18 + var_21)) {
            var_55 = var_35(var_19,var_18 + var_21);
          }
          var_32 = var_22;
          var_34 = var_55;
          if (var_44 != 0 || var_45 != 0) {
            var_58 = var_55 + var_35((var_44 - 1) + (type_5)(var_45 != 0),var_45 - 1);
            var_55 = var_35((type_5)((type_15)var_58 >> 0x20) & -(var_44 + (var_45 != 0)),
                             (type_5)var_58 & -var_45);
            var_34 = var_55;
          }
        }
        else {
          var_34 = 0;
          var_55 = var_50;
LAB_00113314:
          var_17 = parameters->options_;
          if (var_17 == (type_10 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_26("../../gold/parameters.h",0x5c,"options");
          }
          var_32 = *var_13;
        }
        var_51 = (type_5)(var_34 >> 0x20);
        var_52 = (type_5)var_34;
        var_56 = (type_5)(var_55 >> 0x20);
        var_57 = (type_5)var_55;
        if (((var_17->nmagic_).value == false) && ((var_17->omagic_).value == false)) {
          var_49 = type_4::var_48(var_32);
          var_18 = (type_5)(var_49 >> 0x20);
          if (var_18 < var_44 || var_18 - var_44 < (type_5)((type_5)var_49 < var_45)) {
            var_49 = var_35(var_44,var_45);
          }
          var_19 = var_40._4_4_ & -(int)(var_49 + 0xffffffff >> 0x20) |
                   (int)(var_49 >> 0x20) + -1 + (type_5)((int)var_49 != 0) & var_56;
          var_18 = (type_5)var_40 & -(int)var_49 | var_57 & (type_5)(var_49 + 0xffffffff);
          var_58 = var_35(var_19,var_18);
          if (var_19 < var_40._4_4_ || var_19 - var_40._4_4_ < (type_5)(var_18 < (type_5)var_40)) {
            var_58 = var_49 + var_58;
          }
        }
        else {
          var_49 = type_4::var_48(var_32);
          var_58 = var_40;
          if (var_49 != 0) {
            var_58 = var_49 + var_40 + -1;
            var_58 = var_35((type_5)((type_15)var_58 >> 0x20) &
                             -((int)(var_49 >> 0x20) + (type_5)((int)var_49 != 0)),
                             (type_5)var_58 & -(int)var_49);
          }
        }
        var_59 = false;
        var_18 = *pshndx;
        var_40 = var_58;
        var_49 = type_4::var_33
                           (*var_13,target,var_12,false,var_55,&increase_relro,&var_59,&var_40,pshndx
                           );
        if (((var_41 == 0) && (var_59 != true)) && (var_55 != var_34)) {
          var_39 = Parameters::var_60(parameters);
          if (!var_39) {
            var_19 = var_47 - 1;
            var_61 = (var_46 - 1) + (type_5)(var_47 != 0);
            var_62 = var_47 - (var_19 & var_52);
            var_7 = (var_46 - (var_61 & var_51)) - (type_5)(var_47 < (var_19 & var_52));
            var_63 = var_19 & (type_5)var_49;
            var_64 = (type_5)(var_49 >> 0x20) & var_61;
            if ((var_62 != 0 || var_7 != 0) && (var_63 != 0 || var_64 != 0)) {
              var_65 = -(var_46 + (var_47 != 0));
              if ((((type_5)((var_49 ^ var_34) >> 0x20) & var_65) != 0 ||
                   ((type_5)(var_49 ^ var_34) & -var_47) != 0) &&
                 (var_64 = var_7 + var_64 + (type_5)var_24(var_62,var_63),
                 var_64 <= var_46 && (type_5)(var_47 < var_62 + var_63) <= var_46 - var_64)) {
                *pshndx = var_18;
                if (var_46 != 0 || var_47 != 0) {
                  var_58 = var_34 + var_35(var_61,var_19);
                  var_34 = var_35((type_5)((type_15)var_58 >> 0x20) & var_65,
                                    -var_47 & (type_5)var_58);
                }
                var_49 = type_4::var_48(*var_13);
                if (var_49 != 0) {
                  var_58 = var_49 + var_34 + -1;
                  var_34 = var_35((type_5)((type_15)var_58 >> 0x20) &
                                    -((int)(var_49 >> 0x20) + (type_5)((int)var_49 != 0)),
                                    (type_5)var_58 & -(int)var_49);
                }
                var_51 = (type_5)(var_34 >> 0x20);
                var_52 = (type_5)var_34;
                var_18 = var_45 - 1;
                var_19 = (var_44 - 1) + (type_5)(var_45 != 0);
                var_47 = var_52 & var_18;
                var_57 = var_51 & var_19;
                if (var_47 != 0 || var_57 != 0) {
                  var_58 = var_34 + var_53;
                  var_34 = var_34 + var_53;
                  var_47 = var_18 & (type_5)var_58;
                  var_57 = var_19 & (type_5)((type_15)var_58 >> 0x20);
                }
                var_54 = var_54 + var_35(var_19 & (type_5)(var_34 - var_50 >> 0x20),
                                         var_18 & (type_5)(var_34 - var_50));
                var_18 = (type_5)var_54;
                var_19 = (type_5)((type_15)var_54 >> 0x20);
                var_67 = var_47 | -var_45 & var_18;
                var_66 = var_57 | -(var_44 + (var_45 != 0)) & var_19;
                if (var_66 < var_19 || var_66 - var_19 < (type_5)(var_67 < var_18)) {
                  var_39 = var_24(var_67,var_45);
                  var_67 = var_67 + var_45;
                  var_66 = var_66 + var_44 + (type_5)var_39;
                }
                var_40._0_4_ = var_67;
                var_40._4_4_ = var_66;
                increase_relro = var_12->increase_relro_;
                if ((var_12->script_options_->script_sections_).saw_sections_clause_ != false) {
                  increase_relro = 0;
                }
                var_59 = false;
                var_49 = type_4::var_33
                                   (*var_13,target,var_12,true,var_34,&increase_relro,&var_59,
                                    &var_40,pshndx);
              }
            }
          }
        }
        pOVar2 = *var_13;
        if ((var_68 != (type_4 *)0x0) && (var_69 != false)) {
          var_18 = *(type_5 *)((int)&var_68->paddr_ + 4);
          var_19 = (type_5)pOVar2->paddr_;
          var_62 = *(type_5 *)((int)&pOVar2->paddr_ + 4);
          var_61 = (type_5)var_68->paddr_;
          if (var_62 < var_18 || var_62 - var_18 < (type_5)(var_19 < var_61)) {
                    /* WARNING: Subroutine does not return */
            var_26("../../gold/layout.cc",0xfd9,"set_segment_offsets");
          }
          var_63 = var_61 + (int)var_68->memsz_;
          var_64 = var_18 + *(int *)((int)&var_68->memsz_ + 4) +
                   (type_5)var_24(var_61,(type_5)var_68->memsz_);
          if (var_62 < var_64 || var_62 - var_64 < (type_5)(var_19 < var_63)) {
            var_50 = pOVar2->memsz_;
            var_34 = pOVar2->memsz_;
            var_7 = *(int *)((int)&pOVar2->memsz_ + 4);
            format = (char *)var_70(
                                    "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"
                                    );
            var_71(format,var_61,var_18,var_63,var_64,var_19,var_62,var_19 + (int)var_34,
                       var_62 + var_7 + (type_5)var_24(var_19,(type_5)var_50));
            pOVar2 = *var_13;
          }
        }
      }
      var_68 = pOVar2;
      var_13 = var_13 + 1;
    } while ((var_12->segment_list_).
             super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>.
             _M_impl._M_finish != var_13);
    var_54 = var_40;
    if (var_22 != (type_4 *)0x0) goto LAB_00113ce7;
  }
  var_72 = (var_12->segment_list_).
             super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>.
             _M_impl._M_start;
  if (var_72 != var_13) {
    do {
      var_73 = (*var_72)->type_;
      if ((var_73 != 1) && (var_73 != 0x6474e551)) {
        var_18 = 0;
        if (var_73 == 0x6474e552) {
          var_18 = increase_relro;
        }
        Output_segment::var_74(*var_72,var_18);
      }
      var_72 = var_72 + 1;
    } while ((var_12->segment_list_).
             super__Vector_base<var_2::type_4*,var_3::allocator<var_2::type_4*>var_4>.
             _M_impl._M_finish != var_72);
  }
LAB_00113d4d:
  if (var_12->tls_segment_ != (type_4 *)0x0) {
    Output_segment::var_75(var_12->tls_segment_);
  }
  return var_40;
}


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

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

longlong MASKED(uint param_1,int param_2,int param_3,int *param_4)

{
  char cVar1;
  byte bVar2;
  uint uVar3;
  int *piVar5;
  longlong lVar6;
  ulonglong uVar7;
  ulonglong uVar8;
  ulonglong uVar9;
  char cVar10;
  int iVar11;
  int iVar12;
  undefined4 uVar13;
  undefined *puVar14;
  undefined *puVar15;
  uint uVar16;
  uint extraout_EDX;
  byte bVar17;
  int iVar18;
  undefined **ppuVar19;
  int *piVar20;
  uint uVar21;
  undefined **ppuVar22;
  byte bVar23;
  uint uVar24;
  uint uVar25;
  uint uVar26;
  uint uVar27;
  bool bVar28;
  longlong lVar29;
  ulonglong uVar30;
  longlong lVar31;
  longlong lVar32;
  undefined8 uVar33;
  uint local_dc;
  uint local_d8;
  undefined *local_c4;
  undefined *local_c0;
  int local_ac;
  undefined *local_84;
  undefined *local_80;
  uint local_74;
  uint local_70;
  uint local_6c;
  uint local_68;
  uint local_54;
  uint local_50;
  int local_4c;
  int *local_44;
  int local_40;
  char local_2d;
  undefined4 local_2c;
  int local_28;
  undefined8 local_24;
  uint uVar4;
  
  iVar12 = *(int *)(param_1 + 0x124);
  iVar18 = *(int *)(param_1 + 0x128);
  iVar11 = iVar18 - iVar12;
  if (iVar11 < 0x7ffffffd) {
    if (0 < iVar11) {
      local_44 = (int *)(iVar11 >> 2);
      goto LAB_00113091;
    }
  }
  else {
    local_44 = (int *)0x1fffffff;
LAB_00113091:
    do {
      iVar11 = FUN_00246610((int)local_44 << 2,&DAT_00315a23);
      if (iVar11 != 0) {
                    /* try { // try from 001130be to 001130c2 has its CatchHandler @ 00114246 */
        FUN_0011e850(iVar12,iVar18,iVar11,local_44,param_1);
        goto LAB_001130c6;
      }
      local_44 = (int *)((int)local_44 >> 1);
    } while (local_44 != (int *)0x0);
  }
                    /* try { // try from 0011347c to 00113480 has its CatchHandler @ 0011423e */
  FUN_0011df20(iVar12,iVar18,param_1);
  iVar11 = 0;
LAB_001130c6:
  ppuVar19 = &__DT_PLTGOT;
  FUN_002481e0(iVar11,&DAT_00315a23);
  iVar12 = *(int *)(DAT_004144e8 + 8);
  ppuVar22 = &__DT_PLTGOT;
  if (iVar12 == 0) goto LAB_0011413b;
  if (*(char *)(iVar12 + 0x41b8) == '\0') {
    local_c4 = (undefined *)0x0;
    local_c0 = (undefined *)0x0;
    if ((*(char *)(iVar12 + 0x1a25) == '\0') && (*(char *)(iVar12 + 0x2931) == '\0')) {
      ppuVar19 = *(undefined ***)(param_2 + 4);
      local_c0 = ppuVar19[7];
      puVar15 = *(undefined **)(iVar12 + 0x521c);
      puVar14 = *(undefined **)(iVar12 + 0x5218);
      if (puVar15 == (undefined *)0x0 && puVar14 == (undefined *)0x0) {
        puVar14 = ppuVar19[8];
        puVar15 = ppuVar19[9];
      }
      local_c4 = ppuVar19[6];
      if (local_c0 < puVar15 || (uint)((int)local_c0 - (int)puVar15) < (uint)(ppuVar19[6] < puVar14)
         ) {
        local_c4 = puVar14;
        local_c0 = puVar15;
      }
    }
  }
  else {
    ppuVar19 = &__DT_PLTGOT;
    local_c4 = *(undefined **)(iVar12 + 0x41bc);
    local_c0 = *(undefined **)(iVar12 + 0x41c0);
  }
  local_24._0_4_ = (undefined *)0x0;
  local_24._4_4_ = (undefined *)0x0;
  if ((param_3 == 0) &&
     (local_44 = *(int **)(param_1 + 0x148), local_44 != *(undefined4 **)(param_1 + 0x14c))) {
    do {
      lVar32 = (**(code **)(*(int *)*local_44 + 0xc))((int *)*local_44);
      if (lVar32 != 0) {
        lVar6 = lVar32 + CONCAT44(local_24._4_4_ + (((undefined *)local_24 != (undefined *)0x0) - 1)
                                  ,(undefined *)local_24 + -1);
        local_24._0_4_ = (undefined *)(-(int)lVar32 & (uint)lVar6);
        local_24._4_4_ =
             (undefined *)
             (-((int)((ulonglong)lVar32 >> 0x20) + (uint)((int)lVar32 != 0)) &
             (uint)((ulonglong)lVar6 >> 0x20));
      }
      ppuVar19 = (undefined **)*local_44;
      bVar2 = *(byte *)(ppuVar19 + 7);
      if ((bVar2 & 1) != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/output.h",0x142,"set_address");
      }
      ppuVar19[1] = (undefined *)0x0;
      ppuVar19[2] = (undefined *)0x0;
      *(byte *)(ppuVar19 + 7) = bVar2 | 1;
      if ((bVar2 & 4) != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/output.h",0x14b,"set_file_offset");
      }
      ppuVar19[5] = (undefined *)local_24;
      ppuVar19[6] = local_24._4_4_;
      *(byte *)(ppuVar19 + 7) = bVar2 | 5;
      if ((bVar2 & 2) == 0) {
        (**(code **)(*ppuVar19 + 0x38))(ppuVar19);
        if (((uint)ppuVar19[7] & 2) == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_000da200("../../gold/output.h",0x163,"finalize_data_size");
        }
        ppuVar19 = (undefined **)*local_44;
        if (((uint)ppuVar19[7] & 2) == 0) {
                    /* WARNING: Subroutine does not return */
          FUN_000da200("../../gold/output.h",0xcf,"data_size");
        }
      }
      bVar28 = CARRY4((uint)(undefined *)local_24,(uint)ppuVar19[3]);
      local_24._0_4_ = (undefined *)local_24 + (int)ppuVar19[3];
      local_24._4_4_ = local_24._4_4_ + (int)ppuVar19[4] + bVar28;
      local_44 = local_44 + 1;
    } while (*(undefined4 **)(param_1 + 0x14c) != local_44);
    local_2c = *(undefined4 *)(param_1 + 0x170);
    iVar12 = *(int *)(DAT_004144e8 + 8);
    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {
LAB_0011314a:
      local_2c = 0;
    }
    ppuVar22 = ppuVar19;
    if (iVar12 == 0) {
LAB_0011413b:
                    /* WARNING: Subroutine does not return */
      FUN_000da200("../../gold/parameters.h",0x5c,"options",ppuVar22);
    }
  }
  else {
    local_2c = *(undefined4 *)(param_1 + 0x170);
    if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') goto LAB_0011314a;
  }
  cVar1 = *(char *)(iVar12 + 0x91d);
  local_ac = *param_4;
  local_44 = *(int **)(param_1 + 0x124);
  local_28 = local_ac;
  if (local_44 == *(int **)(param_1 + 0x128)) {
    lVar32 = local_24;
    if (param_3 == 0) goto LAB_00113d4d;
LAB_00113ce7:
    local_24._4_4_ = (undefined *)((ulonglong)lVar32 >> 0x20);
    local_24._0_4_ = (undefined *)lVar32;
    iVar12 = *(int *)(param_2 + 4);
    if (*(char *)(iVar12 + 0x30) != '\0') {
      iVar18 = *(int *)(DAT_004144e8 + 8);
      if (iVar18 == 0) {
        local_24 = lVar32;
                    /* WARNING: Subroutine does not return */
        FUN_00106b00();
      }
      local_40 = *(int *)(iVar18 + 0x521c);
      local_44 = *(int **)(iVar18 + 0x5218);
      if (local_40 == 0 && local_44 == (int *)0x0) {
        local_40 = *(int *)(iVar12 + 0x24);
        local_44 = *(int **)(iVar12 + 0x20);
      }
      uVar25 = (uint)(undefined *)local_24 & -(int)local_44;
      uVar26 = (uint)local_24._4_4_ & -(local_40 + (uint)(local_44 != (int *)0x0));
      if (uVar26 < local_24._4_4_ ||
          uVar26 - (int)local_24._4_4_ < (uint)(uVar25 < (undefined *)local_24)) {
        bVar28 = CARRY4(uVar25,(uint)local_44);
        uVar25 = uVar25 + (int)local_44;
        uVar26 = uVar26 + local_40 + (uint)bVar28;
      }
      piVar20 = *(int **)(param_1 + 0x154);
      local_24._0_4_ = (undefined *)uVar25;
      local_24._4_4_ = (undefined *)uVar26;
      if (piVar20 != *(int **)(param_1 + 0x158)) {
        do {
          piVar5 = (int *)*piVar20;
          if (piVar5 != (int *)0x0) {
            (**(code **)(*piVar5 + 4))(piVar5);
            uVar26 = extraout_EDX;
          }
          piVar20 = piVar20 + 1;
        } while (*(int **)(param_1 + 0x158) != piVar20);
        if (piVar20 != *(int **)(param_1 + 0x154)) {
          *(int **)(param_1 + 0x158) = *(int **)(param_1 + 0x154);
          uVar26 = param_1;
        }
      }
      local_44 = *(int **)(param_1 + 0x124);
      iVar12 = *local_44;
      while (iVar12 != param_3) {
        local_44 = local_44 + 1;
        if (*(int *)(iVar12 + 0x194) == 1) {
          uVar26 = *(uint *)(iVar12 + 0x15c);
          iVar18 = *(int *)(iVar12 + 0x160);
          local_2d = '\0';
          uVar25 = *(uint *)(iVar12 + 0x16c);
          uVar21 = uVar26 + *(uint *)(iVar12 + 0x16c);
          iVar11 = *(int *)(iVar12 + 0x170);
          uVar33 = FUN_001619e0(iVar12,param_2,param_1,1,uVar26,iVar18,&local_2c,&local_2d,&local_24
                                ,&local_28);
          uVar26 = (uint)((ulonglong)uVar33 >> 0x20) ^ iVar18 + iVar11 + (uint)CARRY4(uVar26,uVar25)
                   | (uint)uVar33 ^ uVar21;
          if (uVar26 != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/layout.cc",0x1005,"set_segment_offsets",uVar21);
          }
        }
        iVar12 = *local_44;
      }
      lVar32 = CONCAT44(local_24._4_4_,(undefined *)local_24);
      if (local_28 != local_ac) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/layout.cc",0x1009,"set_segment_offsets",uVar26);
      }
    }
    local_24 = lVar32;
    local_44 = *(int **)(param_1 + 0x128);
  }
  else {
    local_4c = 0;
    uVar30 = CONCAT44(local_c0,local_c4);
    do {
      iVar12 = *local_44;
      iVar18 = local_4c;
      if (*(int *)(iVar12 + 0x194) == 1) {
        cVar10 = *(char *)(*(int *)(param_2 + 4) + 0x30);
        if (cVar10 == '\0') {
          if ((iVar12 != param_3) && (param_3 != 0)) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/layout.cc",0xf2b,"set_segment_offsets");
          }
LAB_00113530:
          param_3 = 0;
        }
        else if (iVar12 == param_3) {
          if (local_24 == 0) goto LAB_00113530;
          local_24 = 0;
          local_ac = *param_4;
        }
        bVar17 = *(byte *)(iVar12 + 0x19c) >> 1;
        iVar18 = *(int *)(DAT_004144e8 + 8);
        bVar2 = bVar17 & 1;
        if ((bVar17 & 1) == 0) {
          if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/parameters.h",0x5c,"options");
          }
          bVar17 = *(byte *)(iVar18 + 0x41b8);
          uVar7 = uVar30;
          lVar32 = local_24;
          if ((bVar17 == 0) ||
             ((bVar23 = *(byte *)(iVar18 + 0x253d), *(byte *)(iVar18 + 0x253d) == 0 &&
              (((*(uint *)(iVar12 + 0x198) & 2) != 0 ||
               ((bVar23 = bVar17, (*(uint *)(iVar12 + 0x198) & 1) == 0 && (cVar10 != '\0')))))))) {
            if ((*(byte *)(iVar18 + 0x423c) == 0) || ((*(byte *)(iVar12 + 0x198) & 3) != 0)) {
              bVar17 = *(byte *)(iVar18 + 0x4170);
              bVar23 = *(byte *)(iVar18 + 0x4128);
              if (bVar17 == 0) {
LAB_001139b0:
                if ((bVar23 == 0) || ((*(byte *)(*local_44 + 0x198) & 2) == 0)) {
LAB_00113930:
                  iVar18 = *(int *)(DAT_004144e8 + 8);
                  bVar23 = bVar2;
                  lVar32 = local_24;
                }
                else {
                  uVar13 = FUN_0015e510(*local_44);
                  iVar18 = *(int *)(DAT_004144e8 + 8);
                  if ((char)uVar13 != '\0') goto LAB_00113231;
                  if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);
                  }
                  uVar7 = *(ulonglong *)(iVar18 + 0x412c);
                  lVar32 = local_24;
                }
              }
              else {
                if ((*(byte *)(iVar12 + 0x198) & 2) == 0) goto LAB_00113930;
                if (bVar23 != 0) {
                  uVar13 = FUN_0015e510(iVar12);
                  iVar18 = *(int *)(DAT_004144e8 + 8);
                  if ((char)uVar13 == '\0') {
                    if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
                      FUN_000da200("../../gold/parameters.h",0x5c,"options");
                    }
                    bVar23 = *(byte *)(iVar18 + 0x4128);
                    goto LAB_001139b0;
                  }
                  if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
                    FUN_000da200("../../gold/parameters.h",0x5c,"options",uVar13);
                  }
                }
                bVar23 = bVar17;
                uVar7 = *(ulonglong *)(iVar18 + 0x4174);
                lVar32 = local_24;
              }
            }
            else {
              bVar23 = *(byte *)(iVar18 + 0x423c);
              uVar7 = *(ulonglong *)(iVar18 + 0x4240);
            }
          }
        }
        else {
          uVar30 = *(ulonglong *)(iVar12 + 0x164);
LAB_00113231:
          bVar23 = bVar2;
          uVar7 = uVar30;
          lVar32 = local_24;
          if (iVar18 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/parameters.h",0x5c,"options");
          }
        }
        local_54 = *(uint *)(iVar18 + 0x5218);
        local_50 = *(uint *)(iVar18 + 0x521c);
        local_6c = *(uint *)(iVar18 + 0x4e70);
        local_68 = *(uint *)(iVar18 + 0x4e74);
        if (local_50 == 0 && local_54 == 0) {
          iVar12 = *(int *)(param_2 + 4);
          local_54 = *(uint *)(iVar12 + 0x20);
          local_50 = *(uint *)(iVar12 + 0x24);
          if (local_68 != 0 || local_6c != 0) goto LAB_001135dc;
LAB_00113289:
          local_6c = *(uint *)(iVar12 + 0x28);
          local_68 = *(uint *)(iVar12 + 0x2c);
          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c)) {
LAB_001132a7:
            local_6c = local_54;
            local_68 = local_50;
          }
        }
        else {
          if (local_68 == 0 && local_6c == 0) {
            iVar12 = *(int *)(param_2 + 4);
            goto LAB_00113289;
          }
LAB_001135dc:
          if (local_50 < local_68 || local_50 - local_68 < (uint)(local_54 < local_6c))
          goto LAB_001132a7;
        }
        lVar6 = CONCAT44(local_50,local_54);
        if (((*(char *)(iVar18 + 0x24c1) == '\0') && (*(char *)(iVar18 + 0x253d) == '\0')) &&
           (iVar12 = *local_44,
           *(uint *)(iVar12 + 0x180) < local_50 ||
           *(uint *)(iVar12 + 0x180) - local_50 < (uint)(*(uint *)(iVar12 + 0x17c) < local_54))) {
          *(uint *)(iVar12 + 0x17c) = local_54;
          *(uint *)(iVar12 + 0x180) = local_50;
        }
        local_24 = lVar32;
        if (bVar23 == 0) {
          lVar31 = FUN_0015e5e0(*local_44);
          uVar21 = (uint)((ulonglong)lVar31 >> 0x20);
          uVar25 = (uint)lVar31;
          uVar26 = uVar25 | uVar21;
          if ((uVar26 == 0) ||
             (uVar21 <= local_50 && (uint)(local_54 < uVar25) <= local_50 - uVar21)) {
            iVar12 = *local_44;
            uVar9 = uVar7;
          }
          else {
            lVar31 = lVar31 + (uVar7 - 1);
            uVar26 = (uint)lVar31 & -uVar25;
            uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(uVar21 + (uVar25 != 0)),uVar26);
            iVar12 = *local_44;
          }
          local_84 = (undefined *)uVar9;
          local_80 = (undefined *)(uVar9 >> 0x20);
          uVar8 = uVar9;
          if (iVar12 != param_3) {
            uVar26 = (local_50 - 1) + (uint)(local_54 != 0);
            if (((uint)local_80 & uVar26) != 0 || ((uint)local_84 & local_54 - 1) != 0) {
              uVar8 = uVar9 + lVar6;
            }
            local_24 = lVar32 + CONCAT44((uint)(uVar8 - uVar7 >> 0x20) & uVar26,
                                         (uint)(uVar8 - uVar7) & local_54 - 1);
            goto LAB_00113314;
          }
          if (lVar32 != 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/layout.cc",0xf6e,"set_segment_offsets",uVar26);
          }
          iVar12 = *(int *)(DAT_004144e8 + 8);
          if (iVar12 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/parameters.h",0x5c,"options",0);
          }
          if (*(char *)(iVar12 + 0x3344) == '\0') {
            iVar18 = *(int *)(*(int *)(param_2 + 4) + 0x38);
            uVar26 = *(uint *)(*(int *)(param_2 + 4) + 0x34);
          }
          else {
            uVar26 = *(uint *)(iVar12 + 0x3348);
            iVar18 = *(int *)(iVar12 + 0x334c);
          }
          puVar15 = local_c0 + (uint)CARRY4(uVar26,(uint)local_c4) + iVar18;
          if (local_80 < puVar15 ||
              (uint)((int)local_80 - (int)puVar15) < (uint)(local_84 < local_c4 + uVar26)) {
            uVar8 = CONCAT44(puVar15,local_c4 + uVar26);
          }
          iVar18 = param_3;
          uVar9 = uVar8;
          if (local_50 != 0 || local_54 != 0) {
            lVar31 = uVar8 + CONCAT44((local_50 - 1) + (uint)(local_54 != 0),local_54 - 1);
            uVar8 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & -(local_50 + (local_54 != 0)),
                             (uint)lVar31 & -local_54);
            uVar9 = uVar8;
          }
        }
        else {
          uVar9 = 0;
          uVar8 = uVar7;
LAB_00113314:
          iVar12 = *(int *)(DAT_004144e8 + 8);
          if (iVar12 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/parameters.h",0x5c,"options");
          }
          iVar18 = *local_44;
        }
        local_80 = (undefined *)(uVar9 >> 0x20);
        local_84 = (undefined *)uVar9;
        local_70 = (uint)(uVar8 >> 0x20);
        local_74 = (uint)uVar8;
        if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {
          lVar29 = FUN_0015e5e0(iVar18);
          uVar26 = (uint)((ulonglong)lVar29 >> 0x20);
          if (uVar26 < local_50 || uVar26 - local_50 < (uint)((uint)lVar29 < local_54)) {
            lVar29 = lVar6;
          }
          uVar25 = (uint)local_24._4_4_ & -(int)((ulonglong)(lVar29 + 0xffffffff) >> 0x20) |
                   (int)((ulonglong)lVar29 >> 0x20) + -1 + (uint)((int)lVar29 != 0) & local_70;
          uVar26 = (uint)(undefined *)local_24 & -(int)lVar29 |
                   local_74 & (uint)(lVar29 + 0xffffffff);
          lVar31 = CONCAT44(uVar25,uVar26);
          if (uVar25 < local_24._4_4_ ||
              uVar25 - (int)local_24._4_4_ < (uint)(uVar26 < (undefined *)local_24)) {
            lVar31 = lVar29 + lVar31;
          }
        }
        else {
          lVar29 = FUN_0015e5e0(iVar18);
          lVar31 = local_24;
          if (lVar29 != 0) {
            lVar31 = lVar29 + local_24 + -1;
            lVar31 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) &
                              -((int)((ulonglong)lVar29 >> 0x20) + (uint)((int)lVar29 != 0)),
                              (uint)lVar31 & -(int)lVar29);
          }
        }
        local_2d = '\0';
        iVar12 = *param_4;
        local_24 = lVar31;
        uVar30 = FUN_001619e0(*local_44,param_2,param_1,0,uVar8,&local_2c,&local_2d,&local_24,
                              param_4);
        if (((bVar23 == 0) && (local_2d != '\x01')) && (uVar8 != uVar9)) {
          cVar10 = FUN_001a5170(DAT_004144e8);
          if (cVar10 == '\0') {
            uVar26 = local_6c - 1;
            uVar21 = (local_68 - 1) + (uint)(local_6c != 0);
            uVar25 = local_6c - (uVar26 & (uint)local_84);
            iVar18 = (local_68 - (uVar21 & (uint)local_80)) -
                     (uint)(local_6c < (uVar26 & (uint)local_84));
            uVar16 = uVar26 & (uint)uVar30;
            uVar24 = (uint)(uVar30 >> 0x20) & uVar21;
            if ((uVar25 != 0 || iVar18 != 0) && (uVar16 != 0 || uVar24 != 0)) {
              uVar27 = -(local_68 + (local_6c != 0));
              if ((((uint)((uVar30 ^ uVar9) >> 0x20) & uVar27) != 0 ||
                   ((uint)(uVar30 ^ uVar9) & -local_6c) != 0) &&
                 (uVar24 = iVar18 + uVar24 + (uint)CARRY4(uVar25,uVar16),
                 uVar24 <= local_68 && (uint)(local_6c < uVar25 + uVar16) <= local_68 - uVar24)) {
                *param_4 = iVar12;
                if (local_68 != 0 || local_6c != 0) {
                  lVar31 = uVar9 + CONCAT44(uVar21,uVar26);
                  uVar9 = CONCAT44((uint)((ulonglong)lVar31 >> 0x20) & uVar27,
                                   -local_6c & (uint)lVar31);
                }
                lVar31 = FUN_0015e5e0(*local_44);
                if (lVar31 != 0) {
                  lVar29 = lVar31 + uVar9 + -1;
                  uVar9 = CONCAT44((uint)((ulonglong)lVar29 >> 0x20) &
                                   -((int)((ulonglong)lVar31 >> 0x20) + (uint)((int)lVar31 != 0)),
                                   (uint)lVar29 & -(int)lVar31);
                }
                local_80 = (undefined *)(uVar9 >> 0x20);
                local_84 = (undefined *)uVar9;
                uVar26 = local_54 - 1;
                uVar25 = (local_50 - 1) + (uint)(local_54 != 0);
                local_6c = (uint)local_84 & uVar26;
                local_74 = (uint)local_80 & uVar25;
                if (local_6c != 0 || local_74 != 0) {
                  lVar31 = uVar9 + lVar6;
                  uVar9 = uVar9 + lVar6;
                  local_6c = uVar26 & (uint)lVar31;
                  local_74 = uVar25 & (uint)((ulonglong)lVar31 >> 0x20);
                }
                lVar32 = lVar32 + CONCAT44(uVar25 & (uint)(uVar9 - uVar7 >> 0x20),
                                           uVar26 & (uint)(uVar9 - uVar7));
                uVar26 = (uint)lVar32;
                uVar25 = (uint)((ulonglong)lVar32 >> 0x20);
                local_dc = local_6c | -local_54 & uVar26;
                local_d8 = local_74 | -(local_50 + (local_54 != 0)) & uVar25;
                if (local_d8 < uVar25 || local_d8 - uVar25 < (uint)(local_dc < uVar26)) {
                  bVar28 = CARRY4(local_dc,local_54);
                  local_dc = local_dc + local_54;
                  local_d8 = local_d8 + local_50 + (uint)bVar28;
                }
                local_24._0_4_ = (undefined *)local_dc;
                local_24._4_4_ = (undefined *)local_d8;
                local_2c = *(undefined4 *)(param_1 + 0x170);
                if (*(char *)(*(int *)(param_1 + 4) + 0xac) != '\0') {
                  local_2c = 0;
                }
                local_2d = '\0';
                uVar30 = FUN_001619e0(*local_44,param_2,param_1,1,uVar9,&local_2c,&local_2d,
                                      &local_24,param_4);
              }
            }
          }
        }
        iVar18 = *local_44;
        if ((local_4c != 0) && (cVar1 != '\0')) {
          uVar26 = *(uint *)(local_4c + 0x168);
          uVar25 = *(uint *)(iVar18 + 0x164);
          uVar21 = *(uint *)(iVar18 + 0x168);
          uVar16 = *(uint *)(local_4c + 0x164);
          if (uVar21 < uVar26 || uVar21 - uVar26 < (uint)(uVar25 < uVar16)) {
                    /* WARNING: Subroutine does not return */
            FUN_000da200("../../gold/layout.cc",0xfd9,"set_segment_offsets");
          }
          uVar24 = uVar16 + *(uint *)(local_4c + 0x16c);
          uVar27 = uVar26 + *(int *)(local_4c + 0x170) +
                   (uint)CARRY4(uVar16,*(uint *)(local_4c + 0x16c));
          if (uVar21 < uVar27 || uVar21 - uVar27 < (uint)(uVar25 < uVar24)) {
            uVar3 = *(uint *)(iVar18 + 0x16c);
            uVar4 = *(uint *)(iVar18 + 0x16c);
            iVar12 = *(int *)(iVar18 + 0x170);
            uVar13 = gettext("load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]");
            FUN_000d1330(uVar13,uVar16,uVar26,uVar24,uVar27,uVar25,uVar21,uVar25 + uVar4,
                         uVar21 + iVar12 + (uint)CARRY4(uVar25,uVar3));
            iVar18 = *local_44;
          }
        }
      }
      local_4c = iVar18;
      local_44 = local_44 + 1;
    } while (*(int **)(param_1 + 0x128) != local_44);
    lVar32 = local_24;
    if (param_3 != 0) goto LAB_00113ce7;
  }
  piVar20 = *(int **)(param_1 + 0x124);
  if (piVar20 != local_44) {
    do {
      iVar12 = *(int *)(*piVar20 + 0x194);
      if ((iVar12 != 1) && (iVar12 != 0x6474e551)) {
        uVar13 = 0;
        if (iVar12 == 0x6474e552) {
          uVar13 = local_2c;
        }
        FUN_0015f160(*piVar20,uVar13);
      }
      piVar20 = piVar20 + 1;
    } while (*(int **)(param_1 + 0x128) != piVar20);
  }
LAB_00113d4d:
  if (*(int *)(param_1 + 0x164) != 0) {
    FUN_0015f8f0(*(int *)(param_1 + 0x164));
  }
  return local_24;
}

